Richten Sie PHP aus der Quelle und mod_fgcid auf CentOS 6 ein, die Berechtigung wird verweigert

Richten Sie PHP aus der Quelle und mod_fgcid auf CentOS 6 ein, die Berechtigung wird verweigert

Ich habe PHP aus dem Quellcode kompiliert und installiert auf/opt/php/5.5.15/

yumIch habe auch (mit ) httpd, und installiert mod_fcgid.

Ich versuche, einen virtuellen Host so zu konfigurieren, dass PHP wie folgt ausgeführt wird:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/my-site.example.com/site/public
    ServerName my-site.example.com
    ErrorLog /var/www/my-site.example.com/logs/my-site.example.com-error_log
    CustomLog /var/www/my-site.example.com/logs/my-site.example.com-access_log common
    <Directory /var/www/my-site.example.com/site/public>
        Options +indexes
        AllowOverride all
        Order allow,deny
        Allow from all
        Action application/x-httpd-php /php-5.5.15-bin/php-cgi
    </Directory>
</VirtualHost>

<IfModule mod_fcgid.c>
    IdleTimeout 3600
    ProcessLifeTime 7200
    MaxProcessCount 64
    DefaultMaxClassProcessCount 8
    IPCConnectTimeout 300
    IPCCommTimeout 7200
    BusyTimeout 300

    <FilesMatch ".+\.ph(p[345]?|t|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>

    ScriptAlias /php-5.5.15-bin/ /opt/php/5.5.15/bin/

    <Directory "/opt/php">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
</IfModule>

Ich erhalte diesen Fehler:

[Thu Aug 14 17:36:20 2014] [error] [client 127.0.0.1] (13)Permission denied: exec of '/opt/php/5.5.15/bin/php-cgi' failed, referer: http://my-site.example.com:10080/
[Thu Aug 14 17:36:20 2014] [error] [client 127.0.0.1] Premature end of script headers: php-cgi, referer: http://my-site.example.com:10080/

Ich habe es mit chmod 777 php-cgiund versucht chown apache:apache php-cgi, beides hat keinen Unterschied gemacht.

Irgendwelche Ideen?

Hinweis: Dieses Setup funktioniert gut unter Debian

Antwort1

Es stellte sich also heraus, dass SELinux httpd-Ausführungsrechte für den PHP-CGI-Bin verweigerte.

Beim Anzeigen von /var/log/audit/audit.log wurde dies angezeigt.

Durch Ausführen des Folgenden ist dies möglich:

sudo chcon -t httpd_sys_script_exec_t /opt/php/5.5.15/bin/php-cgi

verwandte Informationen