Назад | Перейти на главную страницу

PHP как FastCGI: пользовательский php.ini не работает

Я использую 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 поговорить с ним.