Forum Webscript.Ru
Программирование => PHP => Тема начата: jus от 07 Ноября 2003, 17:08:37
-
Люди помогите (прочтите до конца - я не буду спрашивать, что и какиепараметры обозначают в mail()) все форумы облазила - немного получилось - но дальше тупик...
Итак ситуация:
На сервер был поставлен АЛЬТ линукс Мастер 2.2
через apt-get поставлен Apache/1.3.28 (ALT Linux/alt9) PHP/4.3.4-dev/ALT с сизифа
[root@rabbit conf]# rpm -qa | grep php
php-mysql-4.3.4-alt0.cvs20030830
mod_php-4.3.4-alt0.cvs20030903
php-common-4.3.4-alt0.cvs20030903
Все сайты на ПХП работают - всё хорошо но вот только не отрабатывала функция mail() не отсылала письма, для проверки был напиман примерно такой скрипт
if (mail(здесь всё правильно.... все параметры правильно
)
echo \'message sent\';
else {
echo \'error!\';
}
?>
так вот при его запуске вываливалось
Warning: mail():
Permission denied: unable
to execute shell to run
mail delivery binary
\'/usr/sbin/sendmail -t -i\' in
/www/www.serdi.ru/htdocs/111.php
on line 2
error!
что только не пробывала прва на сендмыло:
root@jus:~/distr/magazine/deface/d2#
ls -al /usr/sbin | grep sendmail
-r-xr-sr-x 1 root smmsp 549092 Мар 3 2003 sendmail*
потом почитав мануалы и полазив по конференциям выяснилось что в новой версии ПХП, которая находится в сизифе разработчики этого модуля (Mail) по какй-то не мыслемой причине перед работой с содержимым
параметра sendmail_path вставили проверку:
...
if (access(sendmail_path, X_OK)) {
...
Соответственно, если в параметре sendmail_path есть что-нибудь кроме имени (например -t -i) файла возникает ошибка.
Так что, люди у кого возникнет такая проблема просто исправьте в php.ini
sendmail_path=/usr/sbin/sendmail -t -i
на
sendmail_path=/usr/sbin/sendmail
Теперь идём далее -он один чёрт неотрабатывает нормально
error выдаёт, нуно теперь наверно узнать код ошибки
чтобы знать в каком направлении бороться дальше mail() возвращает либо да, либо нет, а как узнать код ошибки?
я уже неделю мучаюсь - не пойму в чём дело - у других этот же скрипт (один в один) отрабатывает всё прекрасно и отсылает - у меня же - нифига!
Пожалйста, профессионалы помогите найти направление - куда дальше бить, а то уволят...
Так же ставила всё это дело на слакваре (апач 27 и пхп 4.3.3)
всё работатет...
Плиз - наваедите на путь истинный как можно вычислить причину не выполнения функции mail()
-
не уверен... но попробуй:
http://www.altlinux.ru/pipermail/sisyphus/2003-October/058175.html
а вообще:
http://www.google.com.ua/search?hl=uk&ie=windows-1251&q=Permission+denied%3A+unable+mail+delivery+binary+php&meta=
-
нет это я уже делала - это спасло от
Warning: mail(): Permission denied: unable to execute shell to run mail
> delivery binary \'/usr/sbin/sendmail -t -i\' in ...
А дальше как узнать почему маил() не отправляет?
-
jus
а что в /var/log/maillog
?
-
вот именно что ничего!
не знаю куда бить дальше
Люди кто заядлый АЛьт пользователь - как через apt-get можно поставить не последнюю версию ПХП а скажем 4.3.3
а то он предлагает всё время последнюю...
-
щас стоит уже
php-common-4.3.4-alt0.cvs20031101
php-imap-4.3.4-alt0.cvs20031101
php-sockets-4.3.4-alt0.cvs20031101
mod_php-4.3.4-alt0.cvs20031101
php-mysql-4.3.4-alt0.cvs20031101
И теперь ещё такая ошибка вылетает
(раньше её не было)
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 46080 bytes) in /www.site.ru/htdocs/bitrix/modules/subscribe/classes/general/subscription.php on line 72
может кто знает что может вызывать подобные ошибки
-
jus
Выскажу свое мнение, оно может быть ошибочным, если что не пинать больно :) PHP и все остальное можно взять не с сайта АЛЬТ линукса, а с того места, откуда все берут, php.net и т.д. Затянуть по фтп и руцями скомпилять.
Лично я бы проверил, отправляется ли вообще почта с этого хоста, с самого начала поставил бы обкатанный дистр.
-
ага потом начнут зависимости вылазить - тоже не гуд уже было
-
Подменяешь sendmail на скрипт с соотв названием (временно)
пишешь свой лог - смотришь - вызывается ли вообще он
Могу ошибаться, но "unable to execute shell " скорее значит, что нельзя запустить ШЕЛЛ, а не сендмейл.
У тебя от чьего имени запущен httpd/php ? и какой у него шелл стоит ?
Да и что пишут в error.log- е ?
-
а просто sendmail на прямую отправляет?
-
to Oak
да с проблемой "анэйбэл ту ран шелл" уже разобралась если вы внимательно читали, вы бы увидели в чём была проблема
теперь такой ошибки не вылетает!
но попрежнему письма через пхп маил функцию не отсылаются и я уже устала бороться, перловый скрипт через сендмаил всё прекрасно отсылает!
а вот через пхп не хочет
Люди может кто подскажет, делаю на слакваре
echo testing | sendmail -froot@serdi.ru -t jus@serdi.ru
пашет отправляет без проблем!
то же саме делаю на АЛЬте
[root@rabbit var]# echo testing | sendmail -froot@serdi.ru -t jus@serdi.ru
просит ещё что-то ввести
лано делаем без -t
echo testing | sendmail -froot@serdi.ru jus@serdi.ru
тоже просит что-то ввести
хотя через никсовую "команду" mail - она же тоже юзает сендмыло всё отправляется на альте безпроблем!
теперь делаю так
$result = exec("echo testing | mail -s testing jus@serdi.ru", $sendmail, $error );
if ($error){
echo $result;
echo $error;
}
?>
ждёт долго ответа и всё ничего не выдаёт - может у кого стоит Альт и он подскажет как с шелла через сендмаил отправить почту "одной строчкой"?
Уже сил нет - хоть бери да сноси сервер из-за такой фигни
-
Может CC: просит ?
man mail:
ask Causes mail to prompt you for the subject of each message you
send. If you respond with simply a newline, no subject field
will be sent.
askcc Causes you to be prompted for additional carbon copy recipients
at the end of each message. Responding with a newline indicates
your satisfaction with the current list.
.......
If an
option is not set, mail will look for an environment variable of the same
name.
может поможет ?