|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.11.2016, 20:54 | #1 |
Пользователь
Регистрация: 06.07.2008
Сообщений: 91
|
модуль php для apache не может отправить почту
Есть система lfs версии 7.0
В ней из исходников собран apache версии 2.4.18 и php версии 5.5.13 Мне нужен был только модуль для apache и не нужен был php интерпретатор, но собрать без интерпретатора так и не получилось (в моём вопросе отправки почты - интерпретатор, помог выяснить некоторый вопрос), собирал несколько раз, то собрал без графической библиотеки и капча не работала, то ещё без каких то библиотек. На сборку потратил кучу времени, но в конце концов собрал и всё заработало. Собирал apache вот с такими опциями: Код:
Код:
valgrind-3.9.0.tar.bz2 apr-1.5.0.tar.bz2 apr-util-1.5.3.tar.bz2 xproto-7.0.26.tar.gz xextproto-7.3.0.tar.gz xtrans-1.3.4.tar.gz xcb-proto-1.10.tar.bz2 util-macros-1.19.0.tar.bz2 dmxproto-2.3.1.tar.bz2 inputproto-2.3-1.tar.bz2 kbproto-1.0.6-1.tar.bz2 libXau-1.0.8.tar.bz2 libpthread-stubs-0.1.tar.bz2 libxcb-1.10.tar.bz2 xf86bigfontproto-1.2.0.tar.bz2 xf86dgaproto-2.1.tar.bz2 xf86driproto-2.1.1.tar.bz2 xf86miscproto-0.9.3.tar.bz2 xf86rushproto-1.1.2.tar.bz2 xf86vidmodeproto-2.3.1.tar.bz2 xineramaproto-1.2.1.tar.bz2 libX11-1.6.2.tar.gz libXpm-3.5.11.tar.bz2 yasm-1.2.0.tar.gz libvpx-v1.3.0.tar libgd-2.1.0.tar t1lib-5.1.2.tar.gz Без этих пакетов ни apache ни php не собирался. После установки всего этого, поверил работу apache и php взял работающий сайт написанный на cms с базой данный - mysql. Всё работало отлично, работало с базой данный записывались, выбирались из базы и т. д. Работала капча. phpinfo в прикреплённом файле phpinfo.mht Вот файл из которого пытаюсь отправить почту: Код:
В php.ini включил следующие опции: error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED log_errors = On error_log = /var/log/httpd/php_errors.log mail.log = /var/log/httpd/php_mail.log SMTP = localhost smtp_port = 465 sendmail_path = /usr/local/sbin/ssmtp -t При запуске apache в файле error.log пишется вот что: Код:
Срабатывает коммутатор if и выводится: "Почта не работает." В логаг тишина. В access.log для этого сайта. xx.xx.xx.xx - - [20/Nov/2016:18:42:04 +0200] "GET / HTTP/1.1" 200 33 "-" "Opera/x.xx (X11; Linux i686) Presto/x.xx.xxx Version/xx.xx" В error.log для этого сайта ничего нет. В access.log общий для apache ничего нет. В error.log общий для apache новых записей нет, кроме старых приведённых выше после запуска apache. В fpm-php.log ничего нет. В php_errors.log ничего нет. В php_mail.log [20-Nov-2016 18:43:58 Europe/Kiev] mail() on [/xxxx/xxx/xxxxxx/xxx/xxxx.xx/index.php:21]: To: xxxx@xxxx.xx -- Headers:. Если php файл, в котором я пытаюсь отправить почту, передать php интерпретатору php -f < index.php то почта отправляется!!!! Получается php модуль для apache почту не может отправить, а php интерпретатор почту отправляет. Подскажите хоть в каком направлении смотреть, или как ещё можно включить логи, что бы хоть что нибудь написало.... За помощь заранее благодарен! PS. Что бы не раскрывать некоторые данные, я их заменил иксами. Файл phpinfo_mht.txt переименовать в phpinfo.mht |
21.11.2016, 11:50 | #2 |
Пользователь
Регистрация: 06.07.2008
Сообщений: 91
|
Глянув в системные логи mail.log и sys.log (как включить логирование в самом ssmtp я так и не нашёл) увидел что ssmtp при запуске интерпретатора php запускается от рута и в логах пишется что пользователь root.
А когда я письмо отправляю через сайт то ssmtp запускается от пользователя apache. В общем надо было подправить конфиги ssmtp. В файле /usr/local/etc/ssmtp/revaliases вместо строки: root:xxxxxx@ukr.net:smtp.ukr.net:46 5 вписать или дописать строку: apache:xxxxxx@ukr.net:smtp.ukr.net: 465 А в файле: /usr/local/etc/ssmtp/ssmtp.conf строку: root=xxxxxx@ukr.net # от чьего имени шлем письма можно оставить, можно удалить, а можно поменять на: apache=xxxxxx@ukr.net # от чьего имени шлем письма и тогда всё заработает. И ещё. У меня apache работает в chroot. В этом же chroot находится и ssmtp. Так вот для работы ssmtp нужен ещё и bash, но обязательно что бы он назывался не bash, а sh. Нужно переименовать bash в sh или создать ссылку sh на bash. Конфиги пользователей .bashrc .profile и т. д. как и сами домашние директории пользователей от которых запускается ssmtp, а так же домашняя директория root и файлы /etc/bashrc /etc/profile не нужны. Необходимо только наличие всех необходимых библиотек для баша libhistory.so и т.д. Также нужны файлы /etc/passwd /etc/group /etc/shadow с пользователем от которого запускается apache, в моём случае это пользователь apache. Так же ещё нужны все необходимые библиотеки для apache, php и ещё некоторые файлы. Всё вопрос решённый тему можно закрывать. |
21.11.2016, 11:51 | #3 |
Пользователь
Регистрация: 06.07.2008
Сообщений: 91
|
кнопку о том что вопрос решён так и не нашёл
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как программно отправить письмо на почту? | remont_it, | C++ Builder | 18 | 29.07.2019 15:08 |
Как отправить почту delphi xe7 ? | nobobic | Компоненты Delphi | 2 | 22.05.2015 07:22 |
Модуль для apache - определить собственный метод | frommars | C/C++ Сетевое программирование | 0 | 15.09.2012 09:09 |
Просто отправить письмо на почту яндекса | Человек_Борща | Работа с сетью в Delphi | 6 | 23.07.2011 15:01 |
Как отправить почту из папки автоматом? | transkriptsiya | Работа с сетью в Delphi | 0 | 20.01.2010 17:35 |