web-dev-qa-db-ja.com

PHP MacOSをHighSierraにアップデートした後は機能しません

Macを最新バージョンのOSにアップデートしました。 PHPプロジェクトを実行しようとすると、ブラウザはphpコードを解釈する代わりに表示します。新しいOSではphpがバージョン7.1であることに気付きました。自作を使用して5.6(私には必須)をインストールしました。 httpd.confのモジュールを次のように変更します。

LoadModule php5_module /usr/local/Cellar/php56/5.6.31_7/libexec/Apache2/libphp5.so

Apacheエラーログは次のとおりです。

[Tue Sep 26 23:59:38.600410 2017] [mpm_prefork:notice] [pid 980] AH00169:SIGTERMをキャッチし、シャットダウンしました[Tue Sep 26 23:59:38.622998 2017] [core:notice] [pid 980] AH00060:seg親プロセスで障害または同様の厄介なエラーが検出されましたAH00557:httpd:apr_sockaddr_info_get()がMacBook-Pro-Kamil.localで失敗しましたAH00558:httpd:127.0.0.1を使用して、サーバーの完全修飾ドメイン名を確実に判別できませんでした。 'ServerName'ディレクティブをグローバルに設定して、このメッセージを抑制します[Tue Sep 26 23:59:48.838005 2017] [mpm_prefork:notice] [pid 991] AH00163:Apache/2.4.27(Unix)PHP /5.6.31構成済み-再開通常の操作[TueSep 26 23:59:48.838097 2017] [core:notice] [pid 991] AH00094:コマンドライン: '/ usr/sbin/httpd -D FOREGROUND'

5
kamcik

Httpd.confファイルに次の行を追加すると、問題が修正されました。

AddType x-httpd-php .php
AddHandler application/x-httpd-php .php .php5

うまくいけば、これが役立ちます!

編集:crmpiccoが示唆しているように、もう少し詳細を提供するために、新しいHigh Sierrahttpd.confファイルとhttpd-vhosts.confファイルも古いSierraファイルに置き換えました。

mv httpd-vhosts.conf~previous httpd-vhosts.conf
mv httpd.conf~previous httpd.conf

これらすべてを実行してApacheを再起動した後でも、まだ機能していませんでした。すべてを有効にするには、再起動する必要がありました。

4
Erebus

MacOSのアップグレードプロセスでは、新しい新しいバージョンを作成しながら、Apache構成を~previousファイルに移動しているようです。それらを元に戻す必要があります。これは私のために働いた:

mv httpd-ssl.conf~previous httpd-ssl.conf
mv httpd-vhosts.conf~previous httpd-vhosts.conf
mv httpd.conf~previous httpd.conf

構文を確認してください。

apachectl -S

Apacheを再起動します。

apachectl restart
3
crmpicco

HighSierraでのPHP5.6の使用

  1. 共有Apacheハンドラモジュールのビルドを有効にする最新バージョンのPHP56がインストールされ、httpオプションが有効になっていることを確認します(必要に応じてインストール/アップグレード/再インストール)

    $ brew upgrade php56 --with-httpd

  2. Apache2構成ファイルでモジュールをリンクするApache2構成ファイル/etc/Apache2/httpd.confに次のステートメントを追加します

    LoadModule php5_module /usr/local/Cellar/php56/5.6.32_8/libexec/Apache2/libphp5.so

  3. PHP5構成ファイルの追加

    Php7.confからコピーを作成します

    $ cd/etc/Apache2/other; Sudo cp php7.conf php5.conf

    Php7_moduleをphp5_moduleに置き換えます

  4. Apacheサーバーを再起動します

    $ Sudo/usr/sbin/apachectl restart

1
Raghav Tandon

PHPに問題があるようには見えませんが、マシンのドメイン名に問題があります。 「127.0.0.1を使用して、サーバーの完全修飾ドメイン名を確実に判別できませんでした。このメッセージを抑制するには、「ServerName」ディレクティブをグローバルに設定してください。httpd.confファイルのドメイン設定を確認します。/ etc/hostsファイルにも競合がないか確認する必要があります。

Homebrewを介してApache/MySQL/PHPをインストールして使用するためのこのガイドは非常に役立ちました。 macOS Sierraに適用されますが、HighSierraでも機能します。また、複数のPHPバージョンをインストールする方法と、興味がある場合は、それらを切り替える便利な方法も示します(または、単一のPHPバージョン実行中)。

VagrantやMAMPではなく、Homebrewルートを使用するのが好きです。これは、ネイティブインストールに近く、使用するリソースが少ないためです。お役に立てば幸いです。

0
schmelding

追加した後

LoadModule php5_module /usr/local/Cellar/php56/5.6.31_7/libexec/Apache2/libphp5.so

追加する必要があります

<IfModule mod_php5.c>
# If php is turned on, we respect .php and .phps files.
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

# Since most users will want index.php to work we
# also automatically enable index.php
<IfModule mod_dir.c>
    DirectoryIndex index.html index.php
</IfModule>

あなたに

/etc/Apache2/httpd.conf

忘れないでください

apachectl restart
0
Hermann Schwarz

ここでMAMPとphp5.6を使用した場合も同じです。HighSierra(おそらく雑草が多すぎるSierra)に更新した直後に、Apache2が動作を停止しました。

数時間後、私はついにこのコマンドで解決しました:

cp /Applications/MAMP/bin/php/php5.6.25/conf/php.ini.temp /Applications/MAMP/bin/php/php5.6.25/conf/php.ini

そして、私のカスタム変更をphp.iniに再適用しました。 (私の場合、memory_limitとshort_open_tag)

MAMPを再起動すると、最初の試行で機能しました。

0
Enrico