私の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ローカル値とマスター値の両方です。
私は間違いがありますか?助けてください。予め
おかげ
PHPMailerを使ってみませんか? –
ベストアドバイスは、限られたホスティングプランで時間を無駄にするのをやめ、php.iniファイルを変更できるサーバーを使用することです。デジタルオーシャンで月額5ドルのホスティングプラン、またはAWSでの無料年中の試用まで、あなたは非常にうまく始めるはずです。 – Nick