Homebrewでインストールしたphp7にアップグレードしようとしています。
CLIではphp -vが戻ります
PHP 7.0.10 (cli) (built: Aug 21 2016 19:14:33) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
しかし、localhostの場合、firefoxは問題のある読み込みページをポップアップし、localhost/phpinfo.phpを表示できません。モジュールの行をphp5に戻すと正常に機能します。
ここにペーストビンがあります http://Pastebin.com/950yC7wA 私のApache2/httpd.confの、これを修正する方法がわかりません。
以下を確認してください。
ApacheモジュールをサポートするPHPをインストールしました(brew options php71
を参照)。
例えば。 --with-httpd22
または--with-httpd24
が含まれます。
brew info php71
の指示に従いました
==> Caveats
To enable PHP in Apache add the following to httpd.conf and restart Apache:
LoadModule php7_module /usr/local/opt/php71/libexec/Apache2/libphp7.so
<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>
Finally, check DirectoryIndex includes index.php
DirectoryIndex index.php index.html
Sudo apachectl restart
経由でApacheを再起動しました。ステップごとのチュートリアルについては、 Apache、MySQL、およびPHP macOS SierraでHomebrewを使用 をセットアップしてください。
何かが機能しない場合は、次の方法でリアルタイムでログを確認してください。
tail -f /usr/local/var/log/Apache2/*error*
次に、サーバーを起動/再起動します。
注:終了したら、ヒット Control-C tail
を終了します。
Homebrew は優れたツールですが、時には不要です。
Mac OS XにApache、PHP、MySQLをインストールする の投稿で言及していますが、OS XにはApacheとPHPがプリインストールされています。そのため、それらを設定して有効にするだけです。
残念ながら、Mac OS 10.11(El Capitan)では、PHPバージョンはまだ5.5です。 PHP 5.5はEOLなので、これは10.12(Sierra)で変わると思います。ただし、PHP 5.6のみです。
PHP 7をインストールするには、 PHP OSX を使用することをお勧めします。 PHPバージョン5.3から7.1(最新)のパッケージインストールを提供します。 Mac OS 10.6+(Snow Leopard)で利用可能です。
パッケージインストールであるため、デフォルトのApacheインストールですぐに使用できます。 PATH
を更新し、PHP iniファイルを変更するだけです。両方とも [〜#〜] faq [〜#〜] で概説されています。
ステップごとの詳細なチュートリアルが必要な場合は、 Mac OS XのPHPの更新 に関する最近の投稿をご覧ください。
OS X SierraでApacheを使用している場合、php7にはデフォルトでApacheモジュールが付属していません。
MacOS Sierraのリリースでは、Apacheモジュールはデフォルトでビルドされません。システムでビルドしたい場合は、-with-Apacheオプションを付けてphpをインストールする必要があります。詳細については、醸造オプションphp70を参照してください。
フラグを付けて再インストールしてみてください。
brew reinstall php70 --with-Apache
ランニング $ apachectl -t
は、現在の構成に関する問題を表示します。私がそれを実行したとき、私はこれを得ました:
httpd:/private/etc/Apache2/httpd.confの171行目の構文エラー:/usr/local/opt/php70/libexec/Apache2/libphp7.soをサーバーにロードできません:dlopen(/ usr/local/opt/php70 /libexec/Apache2/libphp7.so、10):シンボルが見つかりません:_ldap_control_find\ n参照元:/ usr/local/opt/php70/libexec /Apache2/libphp7.so\n予想される場所:/System/Library/Frameworks/LDAP.framework/Versions/A/LDAP\n in /usr/local/opt/php70/libexec/Apache2/libphp7.so
githubに投稿されたこの回避策 を確認できます。LDAPサポートなしでパッケージをインストールすると、このエラーが防止されます:
brew reinstall php70 --without-ldap
私も同じ問題を抱えていたので、/etc/Apache2/httpd.conf
LoadModule php5_module libexec/Apache2/libphp5.so
あなたの問題に対する直接的な解決策ではありませんが、OS Xのphpには無数の問題があります。ごく最近、El Capitanへのアップグレード後にOCIライブラリを動作させようとしていました。
私は今それを使用しようとしてあきらめ、私の開発にdockerを使用し始めました。私はそれをはるかに優れたソリューションとして見つけ、同じコードベースで複数の環境をセットアップすることさえできます。これは異なるバージョンをテストするのに本当に役立ちます。
DockerはOS Xでのセットアップが非常に簡単で、リポジトリに膨大な範囲の事前構築済みコンテナーがあります。ソースディレクトリにマウントポイントをインストールして設定し、アクセスに使用するポートを使用します。
今日、httpd.confファイル(/usr/local/etc/httpd/httpd.conf)に異なるphpライブラリをロードする新しいパスを発見しました。
### OLD VERSION (NOT WORKING NOW) ###
#LoadModule php5_module /usr/local/opt/php56/libexec/Apache2/libphp5.so
#LoadModule php7_module /usr/local/opt/php70/libexec/Apache2/libphp7.so
#LoadModule php7_module /usr/local/opt/php71/libexec/Apache2/libphp7.so
#LoadModule php7_module /usr/local/opt/php72/libexec/Apache2/libphp7.so
### NEW VERSION ###
#LoadModule php5_module /usr/local/opt/php56/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php70/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php71/lib/httpd/modules/libphp7.so
LoadModule php7_module /usr/local/opt/php72/lib/httpd/modules/libphp7.so
この問題が発生する可能性がある場合は、「apachectl restart」を使用してApacheを再起動できることを確認してください。私の場合、最初にコマンド「httpd stop」を使用してhttpdのすべてのプロセスを停止し、次に「apachectl start」を使用してApacheを起動する必要がありました。
私はそれが非常に古いトピックであることを知っていますが、PHP
LoadModule php5_module libexec/Apache2/libphp5.so
への変更:
LoadModule php7_module libexec/Apache2/libphp7.so