Tôi đã biên dịch PHP từ nguồn và cài đặt nó vào /opt/php/5.5.15/
Tôi cũng đã cài đặt (với yum
) httpd
, và mod_fcgid
.
Tôi đang cố gắng cấu hình một máy chủ ảo để thực thi php như thế này:
<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>
Tôi nhận được lỗi này:
[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/
Tôi đã thử chmod 777 php-cgi
và chown apache:apache php-cgi
, cả hai đều không có sự khác biệt.
Có ý kiến gì không?
Lưu ý: thiết lập này hoạt động tốt trên Debian
CentOS 6 tiêu chuẩn của nó, có lẽ là như vậy (tôi sẽ phải kiểm tra chắc chắn vào ngày mai). Có cách nào để đi xung quanh nó mà không làm điều này, vì điều này không lý tưởng.
—
Petah
Bạn có thể bật kiểm toán và xem những quy tắc nào là bạn bè, sau đó viết chính sách của riêng bạn, cho phép người dùng Apache chạy nhị phân từ /opt/php/5.5.15/bin Đó là lý do tại sao việc sử dụng các gói RPM luôn thông minh đồ đạc. Đối với php 5.5, bạn có thể sử dụng php55 pacakges từ IUS repo: dl.iuscommunity.org/pub/ius/ sóng / Reved / 6 / x86_64 Cài đặt phát hành epel và phát hành ius bằng tay, sau đó cài đặt php55u-cli php55u- bcmath ... và tất cả các plugin php khác mà bạn cần.
—
Jakov Sosic
@JakovSosic tìm kiếm trong nhật ký kiểm toán hiện tại, có vẻ như httpd không có quyền thực thi (theo chính sách của Selinux) trên thùng php-cgi. Bất kỳ ý tưởng về cách cho phép nó? Ngoài ra, lý do cho việc thiết lập và biên dịch cụ thể này từ nguồn là tôi cần chạy nhiều phiên bản PHP cạnh nhau.
—
Petah
SELINUX=permissive
Sau đó, khởi động lại máy chủ.