Onde o httpd.conf reside no GCE Apache?

3

Eu tenho um aplicativo Django simples que gostaria de enviar para a produção em um Google Compute Engine (GCE) servidor. O servidor GCE está executando o Debian-Wheezy . Instalei o Apache 2, o Django 1.6.2 e mod-wsgi no servidor e configurei uma regra de firewall que abre a porta tcp: 80.

Estou tentando seguir as instruções no link . No entanto, não consegui encontrar o arquivo httpd.conf para modificar.

Perguntas:

  1. Onde posso encontrar esse arquivo httpd.conf para modificar?
  2. Uma vez encontrada, eu apenas a edito conforme mostrado na página da Web e, em seguida, qualquer visita ao endereço IP externo da instância do GCE será direcionada para meu aplicativo Django?

Editar 1:

Na minha raiz eu tenho as seguintes pastas:

bin  boot  build  dev  etc  home  initrd.img  lib  lib64  media  mnt  opt  proc  root  run  sbin  selinux  srv  sys  tmp  usr  var  vmlinuz

Seguindo os conselhos de: link execute o seguinte:

$ ps -ef | grep apache

que retorna

jason@instance-1:/$ ps -ef | grep apache
root     10492     1  0 13:33 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 10495 10492  0 13:33 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 10496 10492  0 13:33 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 10497 10492  0 13:33 ?        00:00:00 /usr/sbin/apache2 -k start
jason    11669 11529  0 16:54 pts/1    00:00:00 grep apache

e depois

$ /usr/sbin/apache2 -V

que retorna

Server version: Apache/2.2.22 (Debian)
Server built:   Feb  1 2014 21:26:17
Server's Module Magic Number: 20---edited-just-in-case
Server loaded:  APR 1.4.6, APR-Util 1.4.1
Compiled using: APR 1.4.6, APR-Util 1.4.1
Architecture:   64-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....

 -D APACHE_MPM_DIR="server/mpm/worker"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

De acordo com o site, o arquivo que estou procurando é o apache2.conf e não o httpd.conf - embora isso contradiga a documentação do Django ...

Editar 2

Para responder @ ls97 question, em / usr / sbin / apache2 é um link simbólico que aponta para

apache2 -> ../lib/apache2/mpm-worker/apache2

Se eu navegar para esse local e executar $ ls -al , obtenho

  total 496
  drwxr-xr-x 2 root root   4096 Apr 18 13:27 .
  drwxr-xr-x 7 root root   4096 Apr 18 13:27 ..
  -rwxr-xr-x 1 root root 497808 Feb  1 21:27 apache2

E o item apache2 neste local não é um diretório.

    
por user714852 18.04.2014 / 16:40

2 respostas

3

apache2.conf geralmente está abaixo de /etc/apache2/ e é o arquivo de configuração principal do apache. Ele carrega httpd.conf , que é onde você deve colocar suas configurações (e não no arquivo principal).

atualização:

Então, no arquivo /etc/apache2/apache2.conf , você certamente tem linhas como essas 2 em algum lugar:

# Include all the user configurations:
Include httpd.conf

O último incluirá o arquivo /etc/apache2/httpd.conf , que provavelmente é um arquivo vazio (ou quase) em uma nova instalação. Se não existir, você pode criar um novo e adicionar:

NameVirtualHost *:80
Listen 80

Você pode adicionar suas configurações globais e configurações de virtualhosts como indicado no tutorial do django. Como eu sei que a parte do virtualhost não está no tutorial do django (porque não é relacionado ao django mas ao apache), aqui está um exemplo inicial de um site de trabalho do django:

<VirtualHost *:80>  # will listen on port 80 - as defined above

    ServerAdmin [email protected]
    ServerName your.site.com     # will serve requests on this url

    DocumentRoot /path/to/your/djangoproject  # like /home/username/projects/myproject


# complete with the rest of the django tutorial configuration under "Serving Files" 
# to serve static files using the same server as I think you have only 1 server available

# close the virtualhost after django tutorial configurations
</VirtualHost>

Você precisa instalar e ativar o módulo wsgi no apache, é claro. Geralmente ele já está lá e você só precisa ativá-lo com: sudo a2enmod wsgi . Não tenho certeza sobre isso, mas suponho que ele esteja habilitado para você pelo GCE com base em sua configuração para python / django.

Tenha cuidado também se você estiver usando o apache antes do 2.4, há uma nota no tutorial do django para alterar Require all granted com Allow from all e selecionar a ordem de permissão.

Acho que essa é a maneira mais simples de fazer isso. Outro método que eu prefiro para vários virtualhosts é usar um diretório chamado sites-available para armazenar um arquivo por vhost e ativá-los seletivamente para sites-enabled . Você pode encontrar exemplos de como fazer isso na documentação do apache, mas trabalhar em httpd.conf também é bom para um pequeno número de sites.

    
por 18.04.2014 / 19:44
1

link

Lembro-me de ler que você corre o risco de perder as alterações no httpd.conf quando o apache é atualizado se você editar o arquivo diretamente, mas isso pode ter sido apenas para os usuários do XAMPP. Eu não consigo encontrar essa fonte novamente. Em qualquer caso, faça um backup do arquivo de configuração antes e depois de editá-lo.

    
por 18.04.2014 / 18:30