¿Dónde reside httpd.conf en GCE Apache?

3

Tengo una aplicación simple de Django que me gustaría llevar a producción en un servidor Google Compute Engine (GCE). El servidor GCE está ejecutando Debian-Wheezy . Instalé Apache 2, Django 1.6.2 y mod-wsgi en el servidor y configuré una regla de firewall que abre el puerto tcp: 80.

Estoy intentando seguir las instrucciones en https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/modwsgi/ . Sin embargo, no he podido encontrar el archivo httpd.conf para modificar.

Preguntas:

  1. ¿Dónde puedo encontrar este archivo httpd.conf para modificar?
  2. Una vez encontrado, ¿lo edito como se muestra en la página web y luego cualquier visita a la dirección IP externa de la instancia de GCE se dirigirá a mi aplicación Django?

Editar 1:

En mi raíz tengo las siguientes carpetas:

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

Consejos de Follwing de: http://commanigy.com/blog/2011/06/08/finding-apache-configuration-file-httpd-conf-location He ejecutado lo siguiente:

$ ps -ef | grep apache

que vuelve

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

y entonces

$ /usr/sbin/apache2 -V

que vuelve

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"

Según ese sitio web, el archivo que realmente estoy buscando es apache2.conf, no httpd.conf, aunque esto contradice la documentación de Django ...

Editar 2

Para responder a la pregunta @ ls97, en / usr / sbin / apache2 hay un enlace simbólico que apunta a

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

Si navego a esta ubicación y ejecuto $ ls -alobtengo

  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

Y el apache2elemento en esta ubicación no es un directorio.

usuario714852
fuente

Respuestas:

3

apache2.confgeneralmente está debajo /etc/apache2/y es el archivo de configuración principal de apache. Se carga, httpd.confque es donde debe colocar sus configuraciones (y no en el archivo principal).

actualizar:

Entonces, en el /etc/apache2/apache2.confarchivo, ciertamente tienes líneas como estas 2 en alguna parte:

# Include all the user configurations:
Include httpd.conf

El último incluirá un /etc/apache2/httpd.confarchivo que probablemente sea un archivo vacío (o casi) en una instalación nueva. Si no existe, puede crear uno nuevo y agregar:

NameVirtualHost *:80
Listen 80

Puede agregar sus configuraciones globales y configuraciones de host virtuales allí como se indica en el tutorial de django. Como sé, la parte de virtualhost no está en el tutorial de django (porque no está relacionado con django sino con apache), aquí hay un ejemplo inicial de un sitio de django en funcionamiento:

<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>

Necesitas instalar y habilitar el módulo wsgi en Apache, por supuesto. Por lo general, ya está ahí y sólo necesita que le permita con: sudo a2enmod wsgi. No estoy seguro de eso, pero supongo que GCE lo habilita para usted en función de su configuración para python / django.

También tenga cuidado si está utilizando Apache 2.4 antes, hay una nota en el tutorial de Django a cambiar Require all grantedcon Allow from ally seleccionar el orden de permiso.

Creo que esta es la forma más sencilla de hacerlo. Otro método que prefiero para múltiples hosts virtuales es usar un directorio llamado sites-availablepara almacenar 1 archivo por vhost y habilitarlos para que se vinculen selectivamente sites-enabled. Puede encontrar ejemplos de cómo hacerlo en la documentación de apache, pero trabajar también httpd.confestá bien para un pequeño número de sitios.

Laurent
fuente
gracias por su contribución: sabe claramente de lo que está hablando, sin embargo, estoy buscando un poco más paso a paso eli5
user714852
agregó un ejemplo de configuración de virtualhost para iniciar su archivo de configuración y completar con el tutorial de django.
Laurent
1

httpd.conf es el archivo de configuración principal para Apache. Está bajo apache / conf y puedes editar el archivo como se muestra (no soy un experto, pero parece que sus ediciones deberían funcionar).

Recuerdo haber leído que corres el riesgo de perder cambios en httpd.conf cuando apache se actualiza si editas el archivo directamente, pero eso puede haber sido solo para usuarios de XAMPP. Parece que no puedo encontrar esta fuente de nuevo. En cualquier caso, haga una copia de seguridad del archivo de configuración antes y después de editarlo.

LS97
fuente
@ user714852 Después de su edición, ¿hay algo en / usr / sbin / apache2 / conf?
LS97
pregunta actualizada Básicamente, hay un archivo llamado apache2, aunque no es un directorio, por lo que no puedo crear un CD.
user714852
OK, lo siento, no puedo ayudar más, pero estoy en un territorio desconocido.
LS97