Я использую PHP как FastCGI (мне нужно несколько версий PHP).
.htaccess
AddHandler php5-fastcgi .php
Action php5-fastcgi /cgi-bin/php-5.2.17.fcgi
cgi-bin / php-5.2.17.fcgi
#!/bin/sh
PHP_CGI=/usr/local/php/5.2.17/bin/php-cgi
PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=1000
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec $PHP_CGI -c /home/john/www/crm/php.ini
Основная проблема в том, что PHP игнорирует параметр -c. Мои файлы php.ini НЕ загружены.
Кто-нибудь может поделиться предложениями?
Я новичок в этой теме, поэтому, пожалуйста, не убивайте меня, если я ошибаюсь, но если вы не используете что-то вроде этого:
<Directory "/path/to/doc/root">
Options Indexes MultiViews FollowSymLinks +ExecCGI
FCGIWrapper /path/to/cgi-bin/php-5.2.17.fcgi .php
Order allow,deny
allow from all
</Directory>
Попробуйте использовать переключатель -d и проверьте phpinfo, если вы можете это изменить. Если это сработает, вероятно, вы на правильном пути (а я ошибаюсь :))
Моя первая мысль - это разрешения - Apache обычно работает как ограниченный пользователь, часто www-user или apache, в зависимости от вашего вкуса Linux и того, как вы установили Apache.
Это означает, что с разрешениями по умолчанию практически для всех Linux (Linii?) Пользователь Apache (который также будет тем же пользователем, который запускает php-cgi) не может читать какие-либо файлы в вашем домашнем каталоге.
Я бы переместил файл php.ini в другое место (например, /usr/local/php/crm/php.ini), что, как я подозреваю, решит вашу проблему здесь. Другой вариант - просто запустить процесс php-cgi, используя совершенно отдельный скрипт, который может работать под собственной учетной записью пользователя, и попросить Apache поговорить с ним.