У меня был Apache2, работающий на моем локальном компьютере с Ubuntu, и я установил nginx и hhvm на моем локальном компьютере для целей отладки, выполнив следующие действия. этот учебник.
Теперь я хотел бы вернуться к Apache2, как и раньше, раньше у меня были и Apache, и NGINX с запущенными PHP5-FPM, и я мог переключаться между ними, запустив:
sudo service nginx stop
sudo service apache2 restart
Теперь, когда я пытаюсь это сделать, я получаю следующую ошибку, когда пытаюсь получить доступ к моему приложению Magento.
/var/www/app/Mage.php was not found
Однако я могу увидеть страницу Ubuntu Apache по умолчанию, когда захожу в http: // localhost /
Я пробовал бежать
~:$ sudo service nginx stop
~:$ sudo service hhvm stop
~:$ sudo service apache2 restart
* Restarting web server apache2 [ OK ]
~:$ sudo service php5-fpm restart
stop: Unknown instance:
php5-fpm start/running, process 12258
~:$ sudo service php5-fpm restart
php5-fpm stop/waiting
php5-fpm start/running, process 12281
И теперь я получаю ошибку 503 service unavailable, когда пытаюсь получить доступ к моему приложению Magento в браузере. Я знаю, что в Magento эта ошибка может быть вызвана файлом maintenance.flag в корневом каталоге Magento, но здесь это не так.
В моем журнале ошибок Apache говорится:
[Sat Jun 27 11:11:07.902430 2015] [proxy:error] [pid 12223] (111)Connection refused: AH00957: FCGI: attempt to connect to 127.0.0.1:9000 (*) failed
[Sat Jun 27 11:11:07.902490 2015] [proxy_fcgi:error] [pid 12223] [client 127.0.0.1:39494] AH01079: failed to make connection to backend: 127.0.0.1[Sat Jun 27 11:11:07.902430 2015] [proxy:error] [pid 12223] (111)Connection refused: AH00957: FCGI: attempt to connect to 127.0.0.1:9000 (*) failed
[Sat Jun 27 11:11:07.902490 2015] [proxy_fcgi:error] [pid 12223] [client 127.0.0.1:39494] AH01079: failed to make connection to backend: 127.0.0.1
Когда я установил HHVM, я запустил его скрипт install_fastcgi.sh. Может быть, это причина проблемы.
Любая идея о том, как я могу переключаться между NGINX на Apache и не использовать HHVM на моем локальном компьютере.
Я попробовал решение @mboehn ниже, и теперь я получаю исходную ошибку в браузере, когда перехожу по URL-адресу своего приложения Magento.
Это следует искать в /var/www/magento/app/
для Mage.php
. И index.php
в /var/www/magento/
. Начало index.php:
/**
* Compilation includes configuration file
*/
define('MAGENTO_ROOT', getcwd());
$compilerConfig = MAGENTO_ROOT . '/includes/config.php';
if (file_exists($compilerConfig)) {
include $compilerConfig;
}
$mageFilename = MAGENTO_ROOT . '/app/Mage.php';
Но именно так обычно работают приложения Magento, и я не внес здесь никаких изменений. Просто установил HHVM и остановил его, чтобы вернуться к моей предыдущей конфигурации Apache.
Нет ничего в /var/log/apache2/error.log
.
У меня есть:
<VirtualHost *:80>
DocumentRoot /var/www/magento
ServerName http://dev.magento.local
DirectoryIndex index.php
<Directory /var/www/magento>
AllowOverride All
Allow from All
SetEnv MAGE_IS_DEVELOPER_MODE true
</Directory>
</VirtualHost>
Итак, в папке был index.php. /var/www/
Путь, который сбивал меня с толку, это была просто копия того, над чем я работал много лет назад, что раньше не вызывало проблем.
После его удаления я получаю в браузере следующее сообщение.
Файл не найден.
И теперь в моем журнале ошибок apache говорится [Sat Jun 27 12:33:58.382270 2015] [proxy_fcgi:error] [pid 16003] [client 127.0.0.1:40412] AH01071: Got error 'Primary script unknown\n'
У вас может быть php5-fpm, прослушивающий сокет unix (например, /var/run/php5-fpm.sock
, а Apache пытается подключиться к 127.0.0.1:9000.
Проверить listen
-directive в вашей конфигурации php5-fpm (я предполагаю /etc/php5/fpm/pool.d/www.conf
). А затем либо настройте Apache для использования сокета unix, либо перенастройте и php5-fpm, и nginx для использования сетевых сокетов (порт)
/etc/php5/fpm/pool.d/www.conf
заменить listen = /var/run/php5-fpm.sock
с участием listen = 127.0.0.1
/etc/nginx/sites-available/default
(это файл по умолчанию, возможно, вы используете другой файл в том же каталоге), замените fastcgi_pass unix:/var/run/php5-fpm.sock;
с участием fastcgi_pass 127.0.0.1:9000;
Решил :)
Когда я установил HHVM, я запустил приведенный ниже сценарий оболочки, который установил HHVM и изменил некоторые конфигурации.
sudo /usr/share/hhvm/install_fastcgi.sh
Я не совсем уверен, что это произошло, но я почти уверен, что это было причиной проблемы, поскольку, когда я запустил приведенный ниже сценарий удаления, который также поставляется с HHVM, он все исправил, и теперь Apache также работает.
$ sudo /usr/share/hhvm/uninstall_fastcgi.sh