Exim перенаправляет файл в php - ошибка 127, невозможно выполнить или команда не существует?

Я пытаюсь передать все электронные письма, идущие на [email protected], сценарию. Я использую exim и файл .forward.

Вот мой файл пересылки в каталоге «привет»:

Эксим фильтр

канал /home/web/servers/mydomain.com/htdocs/scripts/email_receiver.php

Я получаю следующую ошибку:

Дочерний процесс транспорта address_pipe вернул 127 (может означать невозможность выполнения или команда не существует) из команды: /home/web/servers/mydomain.com/htdocs/scripts/email_receiver.php

Когда я вхожу в систему как «привет», у меня нет проблем с выполнением этого сценария (в настоящее время права доступа 777). Начало скрипта начинается с: #!/usr/bin/php -q.

Любые идеи? Я пробовал много разных версий этого файла пересылки (канал против |, удаление строки 1, кавычки/без кавычек, добавление абсолютного пути к php), но я постоянно получаю эту ошибку. Что бы это могло быть? Спасибо :)


person heykatieben    schedule 23.05.2013    source источник
comment
Под каким пользователем работает exim? Имеет ли этот пользователь хотя бы права на выполнение для всех каталогов в полном пути? Если это не так, он не сможет пройти через них и добраться до вашего скрипта.   -  person EPB    schedule 23.05.2013
comment
Насколько я понимаю, скрипт работает как "привет". «привет» находится в веб-группе, и каждый каталог в полном пути имеет разрешение на выполнение для веб-группы.   -  person heykatieben    schedule 23.05.2013
comment
Ах я вижу. Причина, по которой я спросил, заключается в том, что моя установка exim запускает все команды канала как nobody из соображений безопасности, что не раз заставало меня врасплох с одной и той же ошибкой. У вас есть какие-либо корневые тюрьмы, которые каким-то образом задействуют exim?   -  person EPB    schedule 23.05.2013
comment
Эй, я немного новичок здесь - что мне делать, если он работает как никто? Я хотел бы попробовать это, я не уверен, как проверить, как exim выполняет эти команды канала (я только что прочитал, что он должен работать как привет онлайн). Я не думаю, что у меня есть какие-либо корневые тюрьмы - я сам установил для этого сервера (CentOS) значения по умолчанию - как я могу это проверить? Спасибо за вашу помощь :)   -  person heykatieben    schedule 24.05.2013
comment
Поэтому я явно установил для пользователя «привет» в транспорте address_pipe — все равно получаю ту же ошибку. Любые идеи?   -  person heykatieben    schedule 24.05.2013
comment
Ах, еще один пользователь CentOS, мы тоже его используем. Я сомневаюсь, что по умолчанию он что-то укоренил бы. Таким образом, ваш пользователь теперь явно настроен на приветствие, так что это должно исключить ошибки разрешений. Я собираюсь посмотреть на одну из моих рабочих установок и посмотреть, не замечу ли я что-нибудь бросающееся в глаза.   -  person EPB    schedule 24.05.2013
comment
Извините, я не могу воспроизвести это поведение. Ваше определение фильтра выглядит правильно. В качестве последней попытки вы можете попробовать chmod a+x все каталоги на пути, чтобы быть абсолютно уверенным, что это не проблема с разрешениями. (exim не устанавливает пользователя, как ожидалось, и т. д.) Если это не сработает, возможно, попробуйте спросить в ServerFault.   -  person EPB    schedule 24.05.2013
comment
Ах, я только что увидел здесь «больше комментариев» — я тоже новичок в переполнении стека — спасибо за вашу помощь! Позвольте мне спросить о серверах имен: я установил запись MX на mail.domain.com и отправил запись A на свой IP-адрес — без какой-либо другой настройки для прямой почты на почтовый сервер — это правильно? Я предполагаю, что, поскольку я получаю ошибки в exim, он получает электронные письма просто отлично - верно? Спасибо за совет ServerFault, я тоже попробую.   -  person heykatieben    schedule 26.05.2013


Ответы (1)


Я нашел проблему: SELinux делал так, что пользователь «привет» не мог выполнить php. Отключение SELinux решило мою проблему. Спасибо за вашу помощь. :)

person heykatieben    schedule 28.05.2013