Назад | Перейти на главную страницу

PHP с suexec / fcgid

файл httpd.conf:

LoadModule fcgid_module modules/mod_fcgid.so
AddHandler fcgid-script .php
FCGIWrapper /usr/local/php5 .php

# manual
MaxRequestsPerProcess 1000
FcgidMaxProcesses 200
FcgidProcessLifeTime 7200
MaxProcessCount 500
FcgidIOTimeout 400
FcgidIdleTimeout 600
FcgidIdleScanInterval 90
FcgidBusyTimeout 300
FcgidBusyScanInterval 80
ErrorScanInterval 3
ZombieScanInterval 3
DefaultMinClassProcessCount 0
DefaultMaxClassProcessCount 3
MaxRequestLen 20468982

<VirtualHost *>
    ServerName hostname
    DocumentRoot /home/web
    ServerAdmin web@web.com
    <IfModule mod_suphp.c>
        suPHP_UserGroup web web
    </IfModule>
         SuexecUserGroup web web
    UserDir disable
</VirtualHost>

а это моя обертка:

#!/bin/sh
exec /usr/local/bin/php

моя ошибка:

/ usr / локальный / apache2 / журналы / suexec_log

[2019-09-03 06:55:28]: user mismatch (daemon instead of www)

/ usr / локальный / apache2 / журналы / error_log

suexec policy violation: see suexec log for more details
[Tue Sep 03 06:55:28 2019] [warn] [client 127.0.0.1] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Tue Sep 03 06:55:28 2019] [error] [client 127.0.0.1] Premature end of script headers: phpinfo.php

ОБНОВЛЕНИЯ:

Я редактировал:

 /usr/local/apache2/bin/suexec -V
 -D AP_DOC_ROOT="/"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www"
 -D AP_LOG_EXEC="/usr/local/apache2/logs/suexec_log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="www"

но нет, я не получаю ошибок и ничего не нашел ...

Файл suexec указывает, что он будет работать, только если базовым пользователем является www. Похоже, что веб-сайт работает как демон. Вы можете изменить это, введя пользователя www в файл httpd.conf. Кстати, этот файл httpd.conf выглядит довольно пустым, вероятно, есть другие файлы, которые включены или прикреплены в другом месте в каталоге, в котором вы его нашли. Это может быть место, где уже размещена директива пользователя.

Ваша оболочка-оболочка обязательно вернет ошибку, поскольку все, что она делает, запускает программу php. Я не уверен, что бы он делал без запуска программы. Apache ожидает, что вывод любой программы будет содержать правильные заголовки HTTP, они не будут сгенерированы автоматически.