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, они не будут сгенерированы автоматически.

Другие вопросы по тегам