Где находится httpd.conf в GCE Apache?

7713
user714852

У меня есть простое приложение Django, которое я хотел бы запустить в производство на сервере Google Compute Engine (GCE). Сервер GCE работает под управлением Debian-Wheezy . Я установил Apache 2, Django 1.6.2 и mod-wsgi на сервер и установил правило брандмауэра, которое открывает порт tcp: 80.

Я пытаюсь следовать инструкциям на странице https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/modwsgi/ . Однако мне не удалось найти файл httpd.conf для изменения.

Вопросы:

  1. Где я могу найти этот httpd.conf файл для изменения?
  2. Найдя, могу ли я просто отредактировать его, как показано на веб-странице, и тогда любые посещения внешнего IP-адреса экземпляра GCE будут направлены в мое приложение Django?

Изменить 1:

В моем корне у меня есть следующие папки:

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

Следующие советы от: http://commanigy.com/blog/2011/06/08/finding-apache-configuration-file-httpd-conf-location Я запустил следующее:

$ ps -ef | grep apache 

который возвращается

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 

а потом

$ /usr/sbin/apache2 -V 

который возвращается

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" 

Согласно этому сайту, файл, который я на самом деле ищу, это apache2.conf, а не httpd.conf, хотя это противоречит документации Django ...

Редактировать 2

Чтобы ответить на вопрос @ ls97, в / usr / sbin / apache2 есть символическая ссылка, которая указывает на

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

Если я перейду к этому месту и запусту $, ls -alя получу

 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 

И apache2пункт в этом месте не является каталогом.

3

2 ответа на вопрос

3
laurent

apache2.confобычно находится под /etc/apache2/и является основным файлом конфигурации apache. Он загружает то, httpd.confкуда вы должны поместить свои конфигурации (а не в основной файл).

Обновить:

Итак, в /etc/apache2/apache2.confфайле у вас наверняка есть где-то такие строки:

# Include all the user configurations: Include httpd.conf 

Последний будет включать /etc/apache2/httpd.confфайл, который, вероятно, является пустым файлом (или почти) при новой установке. Если он не существует, вы можете создать новый и добавить:

NameVirtualHost *:80 Listen 80 

Вы можете добавить свои глобальные конфигурации и конфигурации виртуальных хостов туда, как указано в руководстве по django. Как я знаю, часть виртуального хоста не находится в учебнике по django (потому что он не связан с django, но apache), вот начальный пример с рабочего сайта django:

<VirtualHost *:80> # will listen on port 80 - as defined above  ServerAdmin your@email.com 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> 

Вам, конечно, нужно установить и включить модуль wsgi на apache. Обычно это уже есть, и вам нужно только включить его с помощью : sudo a2enmod wsgi. Не уверен насчет этого, но я полагаю, что он включен для вас GCE на основе вашей конфигурации для python / django.

Также будьте осторожны, если вы используете Apache, прежде чем 2.4, есть примечание в Джанго учебника, чтобы изменить Require all grantedс Allow from allи выбрать порядок разрешения.

Я думаю, что это самый простой способ сделать это. Другой метод, который я предпочитаю для нескольких виртуальных хостов, - это использование каталога, sites-availableв котором хранится 1 файл для каждого виртуального хоста, и включается выборочная ссылка на них sites-enabled. Вы можете найти примеры того, как это сделать, в документации по Apache, но httpd.confдля небольшого числа сайтов хорошо работает .

спасибо за ваш вклад - вы четко знаете, о чем говорите, однако я ищу немного больше шаг за шагом user714852 10 лет назад 0
добавлен пример конфигурации виртуального хоста, чтобы запустить файл конфигурации и дополнить его руководством по django. laurent 10 лет назад 0
1
LS97

httpd.conf - это основной файл конфигурации для Apache. Он находится под apache / conf, и вы можете редактировать файл, как показано (я не эксперт, но похоже, что их изменения должны работать).

Я помню, как читал, что вы рискуете потерять изменения в httpd.conf при обновлении apache, если вы редактируете файл напрямую, но это может быть только для пользователей XAMPP. Я не могу найти этот источник снова. В любом случае сделайте резервную копию файла конфигурации до и после его редактирования.

@ user714852 После ваших изменений есть что-нибудь в / usr / sbin / apache2 / conf? LS97 10 лет назад 0
обновленный вопрос. В основном есть файл с именем apache2, хотя это не каталог, поэтому я не могу в него войти. user714852 10 лет назад 0
Хорошо, извините, я не могу больше помочь, но я на незнакомой территории. LS97 10 лет назад 0