Я пытаюсь заставить различные плагины Munin Apachie работать на моем веб-сервере, но у меня возникают проблемы. После запроса Munin проверить доступные плагины два из трех плагинов Apache возвращают ошибку, в которой говорится, что
Статус сервера apache не может быть найден
у меня есть mod_status
включен и т.д., и, насколько я знаю, все настроено правильно.
Я пробовал открыть localhost/server-status
с помощью Lynx
, в этот момент я получаю ошибку 404 и отображается моя страница ошибок Wordpress (та, которую вы получаете, когда пытаетесь получить доступ к несуществующей странице).
Предположительно, это как-то связано с тем, как у меня Apache обслуживает установку Wordpress и т. Д. Веб-сайт живет в /var/www/wordpress
, с index.php
файл на один уровень выше и файл .htaccess изменен в соответствии с инструкциями Wordpress. Он работает нормально, но у меня неприятное ощущение, что когда Munin / Lynx пытается загрузить localhost / server-status, он ищет его в /var/www/
.
Итак, как мне сказать Apache, где на самом деле смотреть при запросе статуса сервера?
Вот мой файл httpd.conf.
ServerName localhost
<VirtualHost *:80>
ServerName oliverhaslam.com
ServerAlias oliverhaslam.com
DocumentRoot /var/www/wordpress/
</VirtualHost>
<VirtualHost *:80>
ServerName ojhaslam.co.uk
ServerAlias ojhaslam.co.uk
DocumentRoot /var/sites/photo365/
</VirtualHost>
<VirtualHost *:80>
ServerName www.ojhaslam.co.uk
ServerAlias www.ojhaslam.co.uk
RedirectMatch permanent /(.*) http://ojhaslam.co.uk/$1
DocumentRoot /var/sites/photo365/
</VirtualHost>
<Location /server-status>
SetHandler server-status
Order deny,allow
Allow from all
</Location>
Если я удалю последнюю часть, я получаю «запрещенную» ошибку вместо ошибки, описанной выше.
Похоже, проблема в моем .htaccess
файл. Удаление этого означает, что серверный статус работает, но, очевидно, ссылки Wordpress - нет. Вот файл:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#Next two don't fix the issue.
#RewriteCond %{REQUEST_URI} !=/server-status
#RewriteRule ^(server-info|server-status) - [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Файл .htaccess Wordpress отправляет все несуществующие файлы и каталоги на обработку Wordpress. Попробуйте также исключить URL-адреса статуса сервера.
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/server-status
RewriteRule . /index.php [L]
Поскольку мне помогли с этим сообщением, и в случае, если вы также не применили ответ становления мудрым, как я сделал изначально, вы должны точно указать условие
RewriteCond %{REQUEST_URI} !=/server-status
перед правилом перезаписи.
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/server-status
RewriteRule . /index.php [L]
Вот почему у Оливера Хаслама до сих пор та же проблема, потому что он поставил
RewriteCond %{REQUEST_URI} !=/server-status
выше других условий.
Надеюсь, это поможет другим людям прийти сюда :)