ローカルのubuntuマシンでApache2を実行し、デバッグの目的でローカルにnginxとhhvmをインストールしました このチュートリアル 。
以前と同じようにApache2に切り替えたいと思います。以前は、PHP5-FPMでApacheとNGINXの両方を実行していたので、次のコマンドを実行してそれらを切り替えることができました。
Sudo service nginx stop
Sudo service Apache2 restart
これを試してみると、Magentoアプリにアクセスしようとすると以下のエラーが発生します
/var/www/app/Mage.php was not found
ただし、 http:// localhost / にアクセスすると、デフォルトのUbuntuApacheページが表示されます。
走ってみました
~:$ 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
また、ブラウザでMagentoアプリにアクセスしようとすると、503サービスを利用できないというエラーが表示されます。 Magentoでは、このエラーはMagentoルートディレクトリのmaintenance.flagファイルが原因である可能性があることを知っていますが、ここではそうではありません。
私の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ソリューションを試しましたが、MagentoアプリのURLに移動すると、ブラウザーに元のエラーが表示されます。
これは、/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>
さて、/var/www/
パスにindex.phpがあり、私を失望させていました。これは、以前に問題を引き起こしていなかった、何年も前に取り組んできたものの単なるコピーでした。
それを削除した後、ブラウザに次のメッセージが表示されます。
ファイルが見つかりません。
そして今、私の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'
と書かれています
解決しました:)
HHVMをインストールしたときに、HHVMを設定し、いくつかの構成を変更する以下のシェルスクリプトを実行しました。
Sudo /usr/share/hhvm/install_fastcgi.sh
これが何をしたのか正確にはわかりませんが、HHVMに付属している以下のアンインストールスクリプトを実行するとすべてが修正され、Apacheも機能するようになったため、問題の原因であるとほぼ確信しています。
$ Sudo /usr/share/hhvm/uninstall_fastcgi.sh
Apacheが127.0.0.1:9000に接続しようとしているときに、php5-fpmがunixソケット(/var/run/php5-fpm.sock
など)でリッスンしている可能性があります。
Php5-fpm構成のlisten
-ディレクティブを確認してください(私は/etc/php5/fpm/pool.d/www.conf
を推測しています)。次に、UNIXソケットを使用するようにApacheを構成するか、ネットワークソケット(ポート)を使用するように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;
に置き換えます。