2017-05-16 12 views
0

私のPHPスクリプトから電子メールが必要です。私のウェブサイトをホストしているサーバーは、コアPHP mail()の機能を使用できません。彼らは電子メールを送信するためのSMTP認証コードを書くべきだと言います。PHPでPEARを設定する際に助けが必要

PHPスクリプトの冒頭でrequire_once('System.php');を使用する必要がありますが、スクリプトの実行はこの行を超えて停止します。サーバーのApacheログでは、ログエントリには次のように表示されます。

AH01071: Got error 'PHP message: PHP Warning: require_once(): open_basedir restriction in effect. File(/opt/plesk/php/5.6/share/pear/System.php) is not within the allowed path(s): (/var/www/vhosts/kbcsurveyors.com/:/tmp/) in /var/www/vhosts/kbcsurveyors.com/preinspection.kbcsurveyors.com/test-smtp-mail.php on line 20\nPHP message: PHP Warning: require_once(/opt/plesk/php/5.6/share/pear/System.php): failed to open stream: Operation not permitted in /var/www/vhosts/kbcsurveyors.com/preinspection.kbcsurveyors.com/test-smtp-mail.php on line 20\nPHP message: PHP Fatal error: require_on................

kbcsurveyors.phpは私がホストしているドメインです。

SMTP認証では、PEARを使用する必要があります。私はパス/ to/pearをサーバー上のphp.iniに含めなければなりませんでした。サーバーは私自身のphp.iniを変更することができないので、それを私のドメインのフォルダにコピーし、パス/ to/pearからinclude_pathを追加しました。

shell_exec('cp /opt/plesk/php/5.6/etc/php.ini /var/www/vhosts/kbcsurveyors.com/httpdocs/includes'); 

shell_exec('pear config-get php_dir'); 

OUTPUT: /usr/share/pear

shell_exec('php --ini'); 

OUTPUT:

Configuration File (php.ini) Path: /etc

Loaded Configuration File: /etc/php.ini

Scan for additional .ini files in: /etc/php.d

Additional .ini files parsed: /etc/php.d/00-ioncube-loader.ini, /etc/php.d/curl.ini, ....

echo get_include_path(); 

OUTPUT .:/opt/plesk/php/5.6/share/pear

echo 'Class Exists: '.(class_exists('System', false)) ? 'Yes' : 'No'; 

OUTPUT: Class Exists: Yes

:ここでは

は、私はそれらのコマンドから持っていた私は、使用されるコマンドと出力です

もう一度、require_once 'System.php'; Apacheログに上記のエラーがスローされます。

phpinfo() edスクリプト。これはinclude_pathと表示しています。:/ opt/plesk/php/5.6/share/pearローカル値とマスター値の両方です。

私は間違いがありますか?助けてください。予め

おかげ

+1

PHPMailerを使ってみませんか? –

+0

ベストアドバイスは、限られたホスティングプランで時間を無駄にするのをやめ、php.iniファイルを変更できるサーバーを使用することです。デジタルオーシャンで月額5ドルのホスティングプラン、またはAWSでの無料年中の試用まで、あなたは非常にうまく始めるはずです。 – Nick

答えて

1

問題がphp.iniのプライマリドメインとすべてのサブドメインのinclude_path shell_exec('pear config-get php_dir');で示すパスを追加することで解決しました。

関連する問題