Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
3 / 2 / 4
Регистрация: 10.05.2008
Сообщений: 148

Модуль php для apache не может отправить почту

20.11.2016, 20:49. Показов 1320. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть система lfs версии 7.0
В ней из исходников собран apache версии 2.4.18 и php версии 5.5.13
Мне нужен был только модуль для apache и не нужен был php интерпретатор, но собрать без интерпретатора так и не получилось (в моём вопросе отправки почты - интерпретатор, помог выяснить некоторый вопрос), собирал несколько раз, то собрал без графической библиотеки и капча не работала, то ещё без каких то библиотек. На сборку потратил кучу времени, но в конце концов собрал и всё заработало.
Собирал apache вот с такими опциями:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
./configure --enable-authnz-fcgi \
--enable-layout=LFS \
--enable-mods-shared="all cgi" \
--enable-mpms-shared=all \
--with-apr=/usr/bin/apr-1-config \
--with-apr-util=/usr/bin/apu-1-config \
--enable-suexec=shared \
--with-suexec-bin=/usr/lib/httpd/suexec \
--with-suexec-docroot=/srv/apache \
--with-suexec-caller=apache \
--with-suexec-userdir=public_html \
--with-suexec-logfile=/var/log/httpd/suexec.log \
--with-suexec-uidmin=100
php собирал вот с такими опциями:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--with-apxs2=/usr/bin/apxs \
--datadir=/usr/share/php \
--mandir=/usr/share/man \
--disable-ipv6 \
--enable-dba \
--enable-dba=shared \
--with-gdbm \
--enable-maintainer-zts \
--enable-fpm \
--with-fpm-user=apache \
--with-fpm-group=apache \
--with-config-file-path=/etc \
--with-pcre-regex=/usr \
--with-zlib \
--enable-bcmath \
--with-bz2 \
--enable-calendar \
--with-curl \
--enable-exif \
--enable-ftp \
--with-kerberos \
--with-t1lib \
--with-gettext \
--with-gmp \
 --with-ldap-sasl \
 --without-pdo-sqlite \
--with-pspell \
--with-readline \
--with-snmp \
--with-iconv \
--with-openssl \
--with-openssl-dir=/usr \
--with-gd=/usr \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-zlib-dir=/usr \
--with-freetype-dir=/usr \
--with-mysql \
--with-mysql-sock=/var/run/mysql \
--enable-sockets \
--with-mysql=mysqlnd \
--with-mysqli \
--with-mysqli=mysqlnd \
--with-pdo-mysql \
--with-pdo-mysql=mysqlnd \
  --enable-mbstring
До сборки apache и php пришлось собрать вот такие пакеты программ:
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

Вот файл из которого пытаюсь отправить почту:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
set_error_handler('err_handler');
function err_handler($errno, $errmsg, $filename, $linenum)
{
$date = date('Y-m-d H:i:s (T)');
$f = fopen('errors.txt', 'a');
if (!empty($f))
{
$filename =str_replace($_SERVER['DOCUMENT_ROOT'],'',$filename);
$err = "$errmsg = $filename = $linenum\r\n";
fwrite($f, $err);
fclose($f);
}
}
error_reporting(E_ALL);
ini_set('log_errors', 'On');
ini_set('error_log', '/var/log/httpd/php_errors.log');
ini_set("display_errors", "1");
try
{
if (mail("xxxxx@xxxx.xx", "test111", "test222"))
{
echo "Почта работает.";
}
else
{
echo "Почта не работает.";
}
}
catch (Exception $exc)
{
error_log($exc->getMessage());
}
?>
Для отправки почты использую ssmtp, в конфигах ssmtp всё прописано для отправки почты, почта отправляется из командной строки, из командной строки ssmtp работает отлично.

В 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 пишется вот что:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[Sun Nov 20 18:37:45.524273 2016] [mpm_event:notice] [pid 23986:tid 3074820368] AH00491: caught SIGTERM, shutting down
No log handling enabled - using stderr logging
MIB search path: $HOME/.snmp/mibs:/usr/local/share/snmp/mibs
Cannot find module (SNMPv2-MIB): At line 0 in (none)
Cannot find module (IF-MIB): At line 0 in (none)
Cannot find module (IP-MIB): At line 0 in (none)
Cannot find module (TCP-MIB): At line 0 in (none)
Cannot find module (UDP-MIB): At line 0 in (none)
Cannot find module (HOST-RESOURCES-MIB): At line 0 in (none)
Cannot find module (NOTIFICATION-LOG-MIB): At line 0 in (none)
Cannot find module (DISMAN-EVENT-MIB): At line 0 in (none)
Cannot find module (DISMAN-SCHEDULE-MIB): At line 0 in (none)
Cannot find module (UCD-SNMP-MIB): At line 0 in (none)
Cannot find module (UCD-DEMO-MIB): At line 0 in (none)
Cannot find module (SNMP-TARGET-MIB): At line 0 in (none)
Cannot find module (NET-SNMP-AGENT-MIB): At line 0 in (none)
Cannot find module (HOST-RESOURCES-TYPES): At line 0 in (none)
Cannot find module (SNMP-MPD-MIB): At line 0 in (none)
Cannot find module (SNMP-USER-BASED-SM-MIB): At line 0 in (none)
Cannot find module (SNMP-FRAMEWORK-MIB): At line 0 in (none)
Cannot find module (SNMP-VIEW-BASED-ACM-MIB): At line 0 in (none)
Cannot find module (SNMP-COMMUNITY-MIB): At line 0 in (none)
Cannot find module (IP-FORWARD-MIB): At line 0 in (none)
Cannot find module (NET-SNMP-PASS-MIB): At line 0 in (none)
Cannot find module (NET-SNMP-EXTEND-MIB): At line 0 in (none)
Cannot find module (UCD-DLMOD-MIB): At line 0 in (none)
Cannot find module (SNMP-NOTIFICATION-MIB): At line 0 in (none)
Cannot find module (SNMPv2-TM): At line 0 in (none)
Cannot find module (NET-SNMP-VACM-MIB): At line 0 in (none)
[Sun Nov 20 18:37:48.829030 2016] [mpm_event:notice] [pid 25990:tid 3075352848] AH00489: Apache/2.4.18 (Unix) PHP/5.5.13 configured -- resuming normal operations
[Sun Nov 20 18:37:48.829191 2016] [core:notice] [pid 25990:tid 3075352848] AH00094: Command line: '/usr/sbin/httpd'
Когда в браузере открываю этот сайт то почта не отправляется.
Срабатывает коммутатор 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. Что бы не раскрывать некоторые данные, я их заменил иксами.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.11.2016, 20:49
Ответы с готовыми решениями:

Модуль Apache для PHP 5.4.15
На php.net последняя версия php - 5.4.15. Скачал модуль php5apache2_4.dll-php-5.4-win32.zip с apachelounge. Но там последняя версия в папке...

Отправить картинку на почту через PHP
Нужно отправить на почту несколько картинок помогите отредактировать код или может у кого есть рабочий. Локальный путь к картинкам...

Пытаюсь подключить модуль PHP к Apache
Здравствуйте! Следую одной из рекомендаций по установке Apache и PHP5, вот этой:  Установка PHP в качестве модуля Добавьте в...

2
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
21.11.2016, 11:12

Не по теме:

В гугл не вбивал?

Cannot find module (SNMPv2-MIB): At line 0 in (none)



MIB search path: $HOME/.snmp/mibs:/usr/local/share/snmp/mibs
Там наверняка пусто

Посмотри в apache2/conf.d/snmp.ini параметры
mibdir
mibs

Как пишут, второе должно быть
mibs=all
0
3 / 2 / 4
Регистрация: 10.05.2008
Сообщений: 148
21.11.2016, 11:48  [ТС]
Глянув в системные логи mail.log и sys.log (как включить логирование в самом ssmtp я так и не нашёл) увидел что ssmtp при запуске интерпретатора php запускается от рута и в логах пишется что пользователь root.
А когда я письмо отправляю через сайт то ssmtp запускается от пользователя apache. В общем надо было подправить конфиги ssmtp.
В файле /usr/local/etc/ssmtp/revaliases
вместо строки:
root:xxxxxx@ukr.net:smtp.ukr.net:465
вписать или дописать строку:
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 и ещё некоторые файлы.

Всё вопрос решённый тему можно закрывать.

Добавлено через 2 минуты
кнопку о том что вопрос решён так и не нашёл.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.11.2016, 11:48
Помогаю со студенческими работами здесь

Как заменить PHP 7 на PHP 5.6 в Ubuntu 16.04? Установлена как модуль Apache 2.4
Переехал на новый VPS а на нем по умолчанию стоит 7 PHP. Я хочу поставить 5.6 чтобы не морочить голову с совместимостью скриптов....

Отправить текст из программы на почту (или не на почту)
У меня написана программа уже. Нужна функция наподобие саппорта Как отправить текст из делфи ко мне? Либо на почту, вообще...

Как отправить Стоимость заказа:<спан>2000</спан> на почту!?!?!? - PHP
есть чекбоксы со своими value пользователь заходит выбирает товар 1 = 500р выбирает товар 2 = 1500р и в это время скриптом считаются...

Как отправить type="radio" PHP на почту
Всем привет пытаюсь уже достаточно долго отправить все &quot;radio&quot; что я написал на почту, в чем проблема помогите. Помогите пожалуйста!...

Модуль для отправки сообщений на почту
У меня такая проблема. Я не знаю php и html, но разбираюсь в этом немного и понимаю. У меня возникла проблема. Есть одностраничный сайт,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru