6

Я использую сервер Debian, на котором уже установлены Apache, mod_wsgi и несколько виртуальных хостов, успешно работающих на нем.

Я установил свой форум приложение (Джанго OSQA) и следуя инструкциям OSQA, я тогда создал конфигурационный файл Apache , который задает ServerName как новый суб-домен. Я также создал файл .wsgi для приложения и указал на него WSGIScriptAlias . Затем я перезапустил Apache.

Однако, когда я перехожу на новый поддомен, я получаю сообщение об ошибке 404.

Я пропускаю шаг выше? Или достаточно просто создать новый конфигурационный файл Apache на sites-available , чтобы сообщить Apache о новом поддомене?

Если что-то идет не так, как я могу отладить это? ErrorLog и CustomLog указанные в файле конфигурации, являются пустыми. apache2.conf , который, как я полагаю, является конфигурацией для Apache, определяет ErrorLog /var/log/apache2/error.log , но это еще один пустой файл.

2 ответа2

7

Есть много онлайн-ресурсов для Apache. Вы пытались искать в Google, чтобы найти ответы самостоятельно?

Когда я искал Google несколько месяцев назад, я нашел следующую информацию:

ErrorLog     /var/log/apache2/error.log
AccessLog    /var/log/apache2/access.log

start/stop   /etc/init.d/apache2 (start|stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean) 
5

Первый пост не является правильным для всех случаев на Debian. Это зависит от того, как вы установили пакет, будь то через apt или путем компиляции из исходного кода.

Чтобы узнать, где находятся журналы, в соответствии с тем, как Apache говорит, что им было поручено создавать журналы, вам нужно выполнить следующую команду:

/usr/sbin/apachectl -V

некоторые дистрибутивы linux создают символическую ссылку под названием /usr /sbin /apacheVERctl, где VER равен 2 или 1,3 или как угодно. Debian помещает настоящий файл в /usr /sbin /, поэтому попробуйте указанную выше команду, и вы увидите что-то вроде:

/usr/sbin/apachectl -V
Server version: Apache/2.2.3

<removed for brevity>

 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log" <<=== default log files stored in "logs/" which is relative to /usr/local/apache<VER>/logs on this server==>
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Как видите, мои журналы находятся в /usr /local /apache2 /error_log. В зависимости от того, как был скомпилирован сервер, флаг --prefix мог указываться где-то еще. Лучше всего запустить эту команду и найти error_log, используя find.

find / -iname name_of_error_log_file_that_apachectl_spit_out

Возможно, вам придется выполнить поиск / -iname apachectl или различные его перестановки, чтобы найти, где находится бинарный файл. Иногда это называется / usr / sbin / httpd. Просто убедитесь, что вы знаете команду поиска, и вы поймете это.

Поиск в Google не всегда дает правильные ответы, поэтому очень важно прочитать документацию по вашим услугам.

Кроме того, после просмотра документа, если вы просмотрели весь документ, вы уже настроили ведение журнала для пути /nimda, поэтому журналы для nimda идут здесь:

    <cut above config lines>

        CustomLog /var/log/httpd/OSQA/access_log common
        ErrorLog /var/log/httpd/OSQA/error_log
    </VirtualHost>

И для SSL журналы, кажется, идут в то же самое место:

(необязательно) запустить интерфейс администратора по адресу https ServerAdmin forum@example.com DocumentRoot /path /to /osqa-site ServerName example.com SSLEngine на SSLCertificateFile /path/to/ssl-certificate/server.crt SSLCertificateKeyFile /path /to /ssl- Certificate /server.key WSGIScriptAlias / /path/to/osqa-site/osqa.wsgi CustomLog / var / log / httpd / OSQA / access_log common ErrorLog / var / log / httpd / OSQA / error_log DirectoryIndex index.html

пожалуйста, проверьте

/usr/local/apache<VER>/logs 

на сервере может быть даже

/usr/local/httpd/*, /var/log/httpd or /var/log/apache<ver>. 

Разные дистрибутивы Linux имеют разные места, где они хранят логи.

Журналы не всегда находятся в /var /log /apache /* или /var /log /httpd

Иногда они находятся в /var /log /httpd /, иногда люди компилируют Apache из исходного кода, и переменная apache DEFAULT_ERRORLOG устанавливается по-другому, поэтому журнал ошибок находится в одном месте, а access_log - в другом. Иногда файлы тоже имеют разные имена. Иногда люди настраивают разные vhosts для хранения журналов в разных местах, потому что у них есть несколько доменов, и они не хотят, чтобы все другие клиенты на коробке видели журналы для других доменов, потому что это может раскрыть важную информацию. Первый пост не будет работать во всех случаях.

Google не может ответить на каждый вопрос, и сказать кому-то "гугл это" в таком количестве слов не всегда лучший ответ.

Человек может использовать Redhat, который помещает журналы в другое место при установке из распределенного RPM Redhat.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .