Это Centos7, на котором работает сервер Apache.
ps aux|grep apache
apache 3153 0.0 1.2 455408 3160 ? S 10:44 0:00 /usr/sbin/httpd -DFOREGROUND
apache 3154 0.0 1.2 455408 3164 ? S 10:45 0:00 /usr/sbin/httpd -DFOREGROUND
root 3239 0.0 0.3 112656 1000 pts/0 S+ 15:09 0:00 grep --color=auto apache
php72 -a
, войдите в интерактивный режим php72.
require_once('/home/bwg/vendor/autoload.php');
require '/home/bwg/vendor/phpmailer/phpmailer/src/Exception.php';
require '/home/bwg/vendor/phpmailer/phpmailer/src/SMTP.php';
require '/home/bwg/vendor/phpmailer/phpmailer/src/PHPMailer.php';
$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.qq.com";
$mail->Port = 465;
$mail->IsHTML(true);
$mail->Username = "xxxx@qq.com";
$mail->Password = "zzzz";
$mail->SetFrom("xxxx@qq.com");
$mail->Subject = "test";
$mail->Body = "hello";
$mail->AddAddress("yyyy@yahoo.com");
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message has been sent";
}
Я могу получить письмо в Yahoo Mail от xxxx @ qq.com, когда выполнять все вышеперечисленные команды в интерактивном режиме php72.
Добавить <?php
в начале и ?>
в конце, сохранить все вышеприведенные строки как /var/www/html/send.php
, набрать http://vps_ip/send.php
, выполнитьиз-за следующих ошибок:
Предупреждение: require_once (/home/bwg/vendor/autoload.php): не удалось открыть поток: доступ запрещен в /var/www/html/send.php на линии2
ls -al /home/bwg/vendor
total 20
drwxrwxrwx 4 apache apache 4096 Sep 23 07:55 .
drwx------ 5 bwg bwg 4096 Sep 23 11:10 ..
-rwxrwxrwx 1 apache apache 178 Sep 23 07:55 autoload.php
drwxrwxrwx 2 apache apache 4096 Sep 23 07:55 composer
drwxrwxrwx 3 apache apache 4096 Sep 23 07:55 phpmailer
Apache имеет разрешение на чтение и выполнение файлов в /home/bwg/vendor
.
Неустранимая ошибка: require_once (): сбой открытия обязателен '/home/bwg/vendor/autoload.php' (include_path = '.: / Usr / share / php: / usr / share / pear') в /var/www/html/send.php в строке 2
find / -name "php.ini"
/etc/opt/remi/php72/php.ini
/etc/php.ini
Оба /etc/opt/remi/php72/php.ini
и /etc/php.ini
были добавлены строки:
include_path='.:/usr/share/php:/usr/share/pear'
Проверка/usr/share/php
.
[root@localhost ~]# ls -al /usr/share/php
total 40
drwxr-xr-x 10 root root 4096 Sep 23 07:54 .
drwxr-xr-x 89 root root 4096 Sep 29 10:38 ..
drwxr-xr-x 24 root root 4096 Sep 23 07:54 Composer
drwxr-xr-x 3 root root 4096 Sep 23 07:54 Fedora
drwxr-xr-x 7 root root 4096 Sep 23 07:54 JsonSchema5
drwxr-xr-x 2 root root 4096 Sep 23 07:54 password_compat
drwxr-xr-x 3 root root 4096 Sep 23 07:54 Psr
drwxr-xr-x 2 root root 4096 Sep 23 07:54 random_compat
drwxr-xr-x 4 root root 4096 Sep 23 07:54 Seld
drwxr-xr-x 6 root root 4096 Sep 23 07:54 Symfony
Проверка /usr/share/pear
.
[root@localhost ~]# ls -al /usr/share/pear
total 112
drwxr-xr-x 8 root root 4096 Sep 29 10:38 .
drwxr-xr-x 89 root root 4096 Sep 29 10:38 ..
drwxr-xr-x 3 root root 4096 Sep 29 10:38 Archive
drwxr-xr-x 3 root root 4096 Sep 29 10:38 Console
drwxr-xr-x 2 root root 4096 Sep 29 10:38 OS
drwxr-xr-x 11 root root 4096 Sep 29 10:38 PEAR
-rw-r--r-- 1 root root 15170 Aug 23 04:33 pearcmd.php
-rw-r--r-- 1 root root 35466 Aug 23 04:33 PEAR.php
-rw-r--r-- 1 root root 1019 Aug 23 04:33 peclcmd.php
drwxr-xr-x 3 root root 4096 Sep 29 10:38 Structures
-rw-r--r-- 1 root root 20574 Aug 23 04:33 System.php
drwxr-xr-x 3 root root 4096 Sep 29 10:38 XML
Чтобы проверить мой сервер apache.
[root@localhost ~]# sudo -u apache bash
bash-4.2$ exit
exit
[root@localhost ~]# cat /home/bwg/vendor/autoload.php
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit7dc2a253d795f81faddcb2888816128a::getLoader();
[root@localhost ~]# ps aux|grep php
root 3264 0.0 0.3 112656 996 pts/0 S+ 15:27 0:00 grep --color=auto php
[root@localhost ~]# ps aux|grep php72
root 3266 0.0 0.3 112656 1000 pts/0 S+ 15:27 0:00 grep --color=auto php72