Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: с сайта не могу отправить письмо mail - php

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
v4567
Отправлено: 11 Октября, 2017 - 12:55:17
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




Есть тестовая страничка:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. ini_set('error_reporting', E_ALL);
  4. ini_set('display_errors', 'On');
  5. ini_set('display_startup_errors', 'On');
  6. if (mail("user@ukr.net", "1234test1234", "12qwerty34"))
  7. {
  8.  echo "Почта работает.";
  9. }
  10. else
  11. {
  12.  echo "Почта не работает.";
  13. }
  14. echo phpinfo();
  15. ?>
  16.  


Открываю её и письмо не отправляется.

Установлен apache2 и к немо следующие пакеты php:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. apt-get -y install php7.0
  3. apt-get -y install php7.0-common
  4. apt-get -y install php7.0-curl
  5. apt-get -y install php7.0-mysql
  6. apt-get -y install php7.0-cli
  7. apt-get -y install libapache2-mod-php7.0
  8. apt-get -y install php7.0-gd
  9.  


После установки этих пакетов была выполнена команда a2enmod php7 и потом запущен апач.

CODE (text):
скопировать код в буфер обмена
  1.  
  2. uname -a
  3. Linux ukemp.ukrkran.local 4.4.0-96-generic #119-Ubuntu SMP Tue Sep 12 14:58:51 UTC 2017 i686 i686 i686 GNU/Linux
  4.  
  5. apache2 -version
  6. Server version: Apache/2.4.18 (Ubuntu)
  7. Server built:   2017-09-18T15:09:02
  8.  
  9. php --version
  10. PHP 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS )
  11. Copyright (c) 1997-2017 The PHP Group
  12. Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
  13.     with Zend OPcache v7.0.22-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies
  14.  
  15. ldd /usr/lib/apache2/modules/libphp7.0.so
  16.        linux-gate.so.1 =>  (0xb7745000)
  17.         libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xb733d000)
  18.         libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7322000)
  19.         libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb72ad000)
  20.         libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7258000)
  21.         libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7253000)
  22.         libxml2.so.2 => /usr/lib/i386-linux-gnu/libxml2.so.2 (0xb7072000)
  23.         libssl.so.1.0.0 => /lib/i386-linux-gnu/libssl.so.1.0.0 (0xb7008000)
  24.         libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xb6e1b000)
  25.         libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6c65000)
  26.         libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6c48000)
  27.         /lib/ld-linux.so.2 (0xb7746000)
  28.         libicuuc.so.55 => /usr/lib/i386-linux-gnu/libicuuc.so.55 (0xb6ab2000)
  29.         liblzma.so.5 => /lib/i386-linux-gnu/liblzma.so.5 (0xb6a8c000)
  30.         libicudata.so.55 => /usr/lib/i386-linux-gnu/libicudata.so.55 (0xb51d3000)
  31.         libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb505c000)
  32.         libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb503f000)
  33.  


В качестве мта использую ssmtp

Вот часть конфига apache1.conf относящегося к открываемому сайту с которого должно отправляться письмо:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <VirtualHost 192.168.5.254:80>
  3.  DocumentRoot /data/web/apache/www/sait2.ru
  4.  ServerName sait2.ru
  5.  ServerAlias www.sait2.ru
  6.  <Directory /data/web/apache/www/sait2.ru>
  7.   Options Includes
  8.   AllowOverride all
  9.  </Directory>
  10.  ErrorLog /var/log/apache2/sait2.ru/error.log
  11.  CustomLog /var/log/apache2/sait2.ru/access.log combined
  12. </VirtualHost>
  13.  


Вот содержимое файлов

/etc/apache2/mods-available/php7 .0.conf

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <FilesMatch ".+\.ph(p[3457]?|t|tml)$">
  3.     SetHandler application/x-httpd-php
  4. </FilesMatch>
  5. <FilesMatch ".+\.phps$">
  6.     SetHandler application/x-httpd-php-source
  7.     # Deny access to raw php sources by default
  8.     # To re-enable it's recommended to enable access to the files
  9.     # only in specific virtual host or directory
  10.     Require all denied
  11. </FilesMatch>
  12. # Deny access to files without filename (e.g. '.php')
  13. <FilesMatch "^\.ph(p[3457]?|t|tml|ps)$">
  14.     Require all denied
  15. </FilesMatch>
  16.  
  17. # Running PHP scripts in user directories is disabled by default
  18. #.
  19. # To re-enable PHP in user directories comment the following lines
  20. # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
  21. # prevents .htaccess files from disabling it.
  22. <IfModule mod_userdir.c>
  23.     <Directory /home/*/public_html>
  24.         php_admin_flag engine Off
  25.     </Directory>
  26. </IfModule>
  27.  


/etc/apache2/mods-available/php7 .0.load

CODE (text):
скопировать код в буфер обмена
  1.  
  2. # Conflicts: php5
  3. LoadModule php7_module /usr/lib/apache2/modules/libphp7.0.so
  4.  


Они стандартные.

Вот некоторое содержимое файлов:
/etc/php/7.0/apache2/php.ini
/etc/php/7.0/cgi/php.ini
/etc/php/7.0/cli/php.ini
/etc/php/7.0/fpm/php.ini

CODE (text):
скопировать код в буфер обмена
  1.  
  2. display_errors = On
  3. display_startup_errors = On
  4. error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
  5. SMTP = localhost
  6. smtp_port = 465
  7. sendmail_path = /usr/sbin/ssmtp -t
  8. mail.add_x_header = On
  9. mail.log = /var/log/php/php_mail.log
  10. date.timezone = Europe/Kiev
  11.  


ssmtp настроен правильно и из командной строки письмо прекрасно отправляется, мало того если в консоли выполнить команду:

php /data/web/apache/www/sait2.ru/in dex.php

то письмо то же прекрасно отправляется!

В этот файл я в последствии включил phpinfo()

и сравнил вывод информации в браузере и в консоли, они отличались только тем, что когда страницу открываю в браузере используется конфиг /etc/php/7.0/apache2/php.ini, а когда использую выше приведённую команду, то конфиг /etc/php/7.0/cli/php.ini

Я сравнил эти файлы и они оказали различны, вот различия:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. diff /root/php/php.ini /etc/php/7.0/cli/php.ini
  3. 299c299
  4. < disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
  5. ---
  6. > disable_functions =
  7. 359c359
  8. < expose_php = Off
  9. ---
  10. > expose_php = On
  11. 389c389
  12. < memory_limit = 128M
  13. ---
  14. > memory_limit = -1
  15. 462c462
  16. < display_errors = Off
  17. ---
  18. > display_errors = On
  19. 473c473
  20. < display_startup_errors = Off
  21. ---
  22. > display_startup_errors = On
  23. 484d483
  24. <
  25.  


Я взял и скопировал файл /etc/php/7.0/cli/php.ini в папки /etc/php/7.0/apache2/ /etc/php/7.0/cgi/ /etc/php/7.0/fpm/
Поэтому в этих папках фалы php.ini стали одинаковы, перезапустил апач, открыл страницу но письмо не отправилось, причём при удачной отправке письма по команде php /data/web/apache/www/sait2.ru/in dex.php и при открытии страницы в логах /var/log/php/php_mail.log одна и та же запись:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. [11-Oct-2017 12:05:07 Europe/Kiev] mail() on [/data/web/apache/www/sait2.ru/index.php:5]: To: user@ukr.net -- Headers:.
  3.  


Файл /var/log/php/php_errors.log пустой

Я подумал что проблема в модуле для апача /usr/lib/apache2/modules/libphp7 .0.so

У меня для другой системы был ранее собран из исходников модуль для апача пятой версии, по размерам он был в 6 раз больше чем этот. Этот модуль точно работает, так как на другой системе письмо прекрасно отправляется. Я взял его (к нему не хватало нескольких библиотек, я их просто скопировал после чего выполнил команду ldconfig), проверил библиотеки были все. Запустил апач, он запустился нормально. Открываю сайт, но письмо не отправляется. В браузер никаких ошибок не пишет, хотя как видно я вывод включал. Просто срабатывает if и пишет, что почта не работает и письмо действительно не отправляется. Получается, что дело не в этом модуле, тогда не понятно где, конфиги одинаковы для апача и клиента, ошибок не пишет. Может кто подскажет как подробное логирование включить.

В логаг апача вот что:

Запуск апача:
/usr/sbin/apache2 -k start

CODE (text):
скопировать код в буфер обмена
  1.  
  2. ps axu | grep apache
  3. root      6266  0.7  1.3 136500 28196 ?        Ss   12:37   0:00 /usr/sbin/apache2 -k start
  4. apache    6267  0.0  0.3 136524  7984 ?        S    12:37   0:00 /usr/sbin/apache2 -k start
  5. apache    6268  0.0  0.3 136524  7984 ?        S    12:37   0:00 /usr/sbin/apache2 -k start
  6. apache    6269  0.0  0.3 136524  7984 ?        S    12:37   0:00 /usr/sbin/apache2 -k start
  7. apache    6270  0.0  0.3 136524  7984 ?        S    12:37   0:00 /usr/sbin/apache2 -k start
  8. apache    6271  0.0  0.3 136524  7984 ?        S    12:37   0:00 /usr/sbin/apache2 -k start
  9. root      6273  0.0  0.0   5100   900 pts/0    S+   12:38   0:00 grep apache
  10.  


/var/log/apache2/access.log пустой

в /var/log/apache2/error.log вот что:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. [Wed Oct 11 12:37:58.188215 2017] [mpm_prefork:notice] [pid 6266] AH00163: Apache/2.4.18 (Ubuntu) PHP/7.0.22-0ubuntu0.16.04.1 configured -- resuming normal operations
  3. [Wed Oct 11 12:37:58.188374 2017] [core:notice] [pid 6266] AH00094: Command line: '/usr/sbin/apache2'
  4.  


открываю сайт, пробую двумя браузерами, очень старой оперой и свежим firefox-сом

/var/log/apache2/sait2.ru/error. log пустой

в /var/log/apache2/sait2.ru/access .log вот что:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. 192.168.5.226 - - [11/Oct/2017:12:40:39 +0300] "GET / HTTP/1.1" 200 90683 "-" "Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.15"
  3. 192.168.5.226 - - [11/Oct/2017:12:42:36 +0300] "GET / HTTP/1.1" 200 90646 "-" "Mozilla/5.0 (X11; Linux i686; rv:52.0) Gecko/20100101 Firefox/52.0"
  4.  


В чём причина не работы функции mail и как включить очень подробное логирование так и не знаю.
За помощь заранее благодарен!
 
 Top
LIME
Отправлено: 11 Октября, 2017 - 14:44:12
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




на пенсию уйдешь пока все прочитаешь
многабукав
используй свифтмайл и не делай мозг
все
 
 Top
v4567
Отправлено: 11 Октября, 2017 - 14:47:59
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




Вот так вот:
php /data/web/apache/www/sait2.ru/in dex.php

отправляется, без всякиз свифтьаилов.

Не отправляется если я этот файл открываю как страничцу в браузере.
 
 Top
LIME
Отправлено: 11 Октября, 2017 - 14:54:16
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




.

(Отредактировано автором: 12 Октября, 2017 - 14:57:38)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB