Saya telah mengkompilasi PHP dari sumber dan menginstalnya ke /opt/php/5.5.15/
Saya juga telah menginstal (dengan yum
) httpd
, dan mod_fcgid
.
Saya mencoba mengonfigurasi host virtual ke exec php seperti ini:
<VirtualHost *:80>
ServerAdmin me@example.co.nz
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>
Saya mendapatkan kesalahan ini:
[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/
Saya sudah mencoba chmod 777 php-cgi
dan chown apache:apache php-cgi
, keduanya tidak membuat perbedaan.
Ada ide?
Catatan: pengaturan ini berfungsi dengan baik di Debian
CentOS 6 standar, mungkin begitu (saya harus memastikan besok). Apakah ada cara untuk menyiasatinya tanpa melakukan ini, karena ini tidak ideal.
—
Petah
Anda dapat mengaktifkan audit dan melihat aturan apa yang berlaku, dan kemudian menulis kebijakan Anda sendiri yang memungkinkan pengguna Apache untuk menjalankan binari dari /opt/php/5.5.15/bin. Itulah sebabnya mengapa selalu cerdas untuk menggunakan paket RPM dan tidak mengkompilasi sendiri barang. Untuk php 5.5, Anda dapat menggunakan pacakges php55 dari IUS repo: dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64 Instal epel-release dan ius-release secara manual, dan kemudian instal php55u-cli php55u- bcmath ... dan semua plugin php lain yang Anda butuhkan.
—
Jakov Sosic
@JakovSosic mencari di log audit saat ini sepertinya httpd tidak memiliki hak exec (di bawah kebijakan SELinux) pada bin php-cgi. Adakah yang tahu bagaimana memperbolehkannya? Juga alasan untuk pengaturan khusus ini dan kompilasi dari sumber adalah bahwa saya perlu menjalankan beberapa versi PHP berdampingan.
—
Petah
SELINUX=permissive
Setelah itu, reboot server.