下記の環境においてpearを利用した際にエラーが出たので解決の覚書
【環境】
さくらVPS
・CentOS6.2 64bit
・Apache 2.2.15
・PHP 5.3.10
・MySQL 5.5.23
【結論】
環境の問題ではなくてマルチドメインやサブドメインを使用する際にApacheのバーチャルホストを利用したら発生していた
【内容】
サーバーの移行に伴い、グローバルIP単体で最初はテストを行っていた。その時はうまくいっていたのに複数ドメイン運用(バーチャルホスト)に切り替えをした際に発生
始めはWikiPediaのDumpデータをMySQLに取り込んでPHPで加工させていた際に追加でText_Wiki_Mediawikiをインストールしたらエラーが出だしたと思ったのでアンインストールしたりしてみたが、実際は動かなくなったのはPEAR全般だった
出ていたエラーは
PHP Fatal error: require_once(): Failed opening required ‘Text/Wiki.php’ (include_path=’.:/usr/share/pear:/usr/share/php’) in /var/www/html/xxx/hoge.php on line 38
(翻訳)サブドメインで使用している『xxx』フォルダのhoge.phpの38行目で読み込み指示している『Text/Wiki.php』は指定してある『include_path』では開けないよ
○入っているPEARを確認するのは下記のコマンドで
#pear list
○パスを確認するには
#pear config-show
調べていくと、どうやらバーチャルホスト(vhost.conf)を利用した場合には、各設定において使ってよいという指示を与えなければいけなかった。
【対応】
vhost.conに下記を追加が必要
<IfModule mod_php5.c> php_admin_flag engine on php_admin_flag safe_mode off php_admin_value open_basedir none </IfModule>
(記入例)
<VirtualHost *:80> DocumentRoot /var/www/html/xxx ServerName hoge.com ServerAlias www.hoge.com ErrorLog logs/hoge-error.log CustomLog logs/hoge-access_log combined env=!no_log <IfModule mod_php5.c> php_admin_flag engine on php_admin_flag safe_mode off php_admin_value open_basedir none </IfModule> </VirtualHost>
書き込んだらhttpdをリスタート
#/etc/init.d/httpd restart






![Syndicate this site using RSS [x]](http://everyday-growth.com/wp-content/themes/mad-meg/images/rss.png)