かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

未解決: MacOS X Mavericks (10.9) HomebrewでApache&PHPの環境設定でハマる


MacOS 10.9の環境があったのでそちらもセッティングしようとしたら、また大ハマリしました。。。
これは正直OSをアップデートしたほうが良かったかも....

httpd24でphp5_moduleが読み込めない?

homebrewでhttpd24とphp54をインストールしてhttpd.confphp.iniを編集してさてapacheを起動しようと思ってhttpd.confシンタックスを確認した所次のようなエラーが出ました。

$ apachectl -t
httpd: Syntax error on line 170 of /usr/local/etc/apache2/2.4/httpd.conf: Cannot load /usr/local/opt/php54/libexec/apache2/libphp5.so into server: dlopen(/usr/local/opt/php54/libexec/apache2/libphp5.so, 10): Symbol not found: _unixd_config\n  Referenced from: /usr/local/opt/php54/libexec/apache2/libphp5.so\n  Expected in: /usr/local/Cellar/httpd24/2.4.12/bin/httpd\n in /usr/local/opt/php54/libexec/apache2/libphp5.so

確かに/usr/local/opt/php54/libexec/apache2/libphp5.soは存在しているのですが読み込めないっぽいエラーです。
/usr/local/opt/php54シンボリックリンクだったので/usr/local/Cellar/php54/~に変更してみても同じエラーになってしまいました。

色々と調べたのて下の様なものにもたどり着いたのですが

解決せず!!!!

こちらのブログに有るようにhttpd22を入れなおすことにしました。

$ brew uninstall httpd24
$ brew install httpd22

httpd22のhttpd.confを編集しなおして、再度チェック。

$ apachectl -t
Syntax OK

今度はエラーになりませんでした!

 

されどapacheは起動せず。

httpd.confのエラーがなかったので、apacheを起動します。

$ sudo apachectl start
/usr/local/bin/apachectl: line 78: 43078 Segmentation fault: 11  $HTTPD -k $ARGV

(´・ω・`) えっ....

Segmentation fault
セグメンテーション違反(英語:segmentation fault)はソフトウェアの実行時に起きる特定のエラー条件である。segfault(セグフォールト)と略される場合がある。 セグメンテーション違反はアクセスが許可されていないメモリ上の位置、もしくは許可されていない方法(例えばリードオンリーの位置へ書き込みをしようとする、もしくはオペレーションシステムの部分を上書きしようとする)でメモリ上の位置にアクセスしようとするときに起こる。

apache Segmentation fault で検索すると色々出てきました。

ちょっちウチにはハードル高いです...
こ、これは... 万策尽きた―!

と思った時に次のような記事を見つけました。

Mac OS Version: 10.9.5
Installation apache2.2: brew install -v httpd22 --with-brewed-openssl
Installation of PHP:brew install -v php54 --homebrew-apxs --with-apache

これなら出来そうなのでダメ元で試してみます。
まずは、既に入っているhttpd22php54を削除してから記事を参考にオプションを付けてインストールします。

$ brew uninstall httpd22
$ brew uninstall php54
$ brew install -v httpd22 --with-brewed-openssl  
$ brew install -v php54 --homebrew-apxs --with-apache

インストールが完了したら再度apacheの起動にtryです。

$ sudo apachectl start

Segmentation faultになる事なくapacheが起動できたようです!!

まだlocalhostInternal Server Errorになる...

今の所解決できてなし...
疲れきってしまったので、一旦辞め。
もうapacheとかphpの環境設定したくない。。。


サーバサイドJavaScript Node.js入門 (アスキー書籍)

サーバサイドJavaScript Node.js入門 (アスキー書籍)