Вопрос или проблема
Я настроил веб-сервер Apache с пользовательским аккаунтом для управления контентом, создал корневой каталог http-docs в /var/ и назначил права владельца этому пользователю с помощью стандартных команд chown и тому подобное, в общем, основные вещи работают.
Я загрузил некоторый контент, и он отображается при доступе через HTTP и HTTPS.
Что меня совершенно сбивает с толку, так это то, что страницы PHP для управления моей CMS не отображаются, в то время как веб-оболочка работает.
На случай, если это имеет значение, я использую CMS Armadillo, доступную как плагин для RapidWeaver. Она зависит от Apache, PHP и MySQL, и все эти требования (видимо) выполнены. Кроме того, я могу исключить MySQL как источник проблемы, поскольку мне нужно получить доступ к странице администрирования/настройки, чтобы настроить систему, и поскольку она продолжает оставаться пустой, я не смог даже попытаться ее настроить.
При inspecting соответствующего .php файла в файловой системе сервера файл содержит действительный PHP код.
Что я делаю не так? Что я забыл сделать?
Спасибо.
Я предполагаю, что когда вы устанавливали PHP, вы использовали что-то вроде
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
Вы помните, что нужно изменить настройки Apache, чтобы он искал .php перед .html?
sudo nano /etc/apache2/mods-enabled/dir.conf
Это должно выглядеть примерно так:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Обратите внимание, что index.php должен быть первым.
После внесения изменений просто нужно перезапустить сервер
sudo service apache2 restart
Попробуйте это,
sudo a2enmod rewrite
Ответ или решение
Проблема с отображением страниц PHP на веб-сервере Apache может быть вызвана несколькими факторами. Давайте внимательно рассмотрим вашу ситуацию и определим возможные причины, а также пути их решения.
1. Убедитесь, что PHP установлен правильно
Вы упомянули, что устанавливали PHP, но важно убедиться, что все необходимые модули установлены. Попробуйте выполнить следующую команду для установки PHP и необходимых модулей:
sudo apt-get install php libapache2-mod-php php-mcrypt
После установки убедитесь, что правильно загружены соответствующие модули Apache для работы с PHP. Для этого вы можете использовать следующие команды:
sudo a2enmod php7.x # замените на вашу версию PHP
sudo systemctl restart apache2
2. Обработка файлов с расширением .php
Apache должен быть настроен для обработки файлов PHP. Проверьте конфигурацию по умолчанию для индексации. Измените файл /etc/apache2/mods-enabled/dir.conf
, чтобы он включал index.php
в начало списка:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
После внесения изменений перезапустите сервер:
sudo systemctl restart apache2
3. Проверка конфигурации виртуального хоста
Если ваш Apache настроен на использование виртуальных хостов, убедитесь, что в настройках вашего виртуального хоста указаны правильные параметры для обработки PHP. Например, в вашем файле конфигурации можно добавить:
<Directory /var/http-docs>
AllowOverride All
Options Indexes FollowSymLinks
Require all granted
</Directory>
4. Проверьте файлы .htaccess
Проверьте, есть ли в вашем каталоге http-docs
файл .htaccess
, который мог бы блокировать выполнение PHP или перенаправлять запросы. Если такой файл существует, временно переименуйте его в другой формат и проверьте, решает ли это вашу проблему.
5. Логи ошибок
Если ни одно из вышеперечисленных решений не сработало, полезно посмотреть в файлы журналов ошибок Apache для получения дополнительной информации о происходящем. Они обычно находятся по пути:
/var/log/apache2/error.log
Используйте команду для просмотра последних строк журнала:
tail -f /var/log/apache2/error.log
Ищите записи, которые могут указывать на проблемы с загрузкой PHP-страниц или разрешением файлов.
6. Проверьте права доступа к файлам
Убедитесь, что файлы PHP имеют необходимые права доступа для чтения. Они должны быть доступны пользователю, от которого работает Apache. Проверьте права и владельца файлов:
ls -la /var/http-docs
Если необходимо, измените их, используя:
sudo chown -R www-data:www-data /var/http-docs
sudo chmod -R 755 /var/http-docs
Заключение
Проблема с отсутствием отображения PHP-страниц на вашем веб-сервере может быть связана с настройками Apache, конфигурацией PHP или правами доступа к файлам. Исполните предложенные шаги и, скорее всего, вы сможете устранить возникшую проблему. Если же трудности сохраняются, не стесняйтесь обращаться к сообществу для получения дополнительной поддержки.