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"
но нет, я не получаю никаких ошибок и ничего не найдено...
1 ответ
Файл suexec указывает, что он будет работать только в том случае, если основным пользователем является www. Похоже, что сайт работает как демон. Вы можете изменить это, введя пользователя www в файл httpd.conf. Кстати, этот файл httpd.conf выглядит довольно пустым, возможно, есть другие файлы, включенные или прикрепленные в другом месте каталога, в котором вы его нашли. Это может быть то место, где директива пользователя уже была помещена.
Ваша оболочка-оболочка обязательно вернет ошибку, так как все, что она делает, запускает программу php. Что я не уверен, что это будет делать без запуска программы. Apache ожидает, что выходные данные из любой программы будут содержать правильные заголовки HTTP, они не будут сгенерированы автоматически.