Я пытался настроить свой сервер разработки для обслуживания одного из моих виртуальных хостов Apache через CGI с использованием PHP 5.3.14.
Я настроил сервер Apache - Apache 2.2.3 с PHP 5.2.10, работающим как модуль Apache. CentOS 5.5 - это ОС. На одном из сайтов используются функции, доступные только в PHP 5.3, а у меня есть сайты, которым нужна версия 5.2, поэтому я хотел бы запустить только сайт, для которого требуется PHP 5.3, поверх CGI.
Я следил за парой руководств до точки, где у меня установлен Apache / PHP 5.2 и работает как модуль. Я также успешно загрузил и скомпилировал PHP 5.3.14 до такой степени, что у меня есть исполняемый файл php-5.3.14 / sapi / cgi / php-cgi, созданный и готовый к работе. Если я запускаю его со сценарием, он работает правильно. Однако после добавления того, что я считаю правильными директивами для VirtualHost, сайт по-прежнему не использует PHP 5.3, он продолжает работать, используя PHP 5.2 (версия, настроенная как модуль Apache).
Вот моя конфигурация Vhost:
<VirtualHost *:80>
ServerName utfl.peapoddev.com
ServerAlias elegal.utfl.peapoddev.com subsite.utfl.peapoddev.com library.utfl.peapoddev.com
DocumentRoot /var/www/utfl/drupal
DirectoryIndex index.html index.php
SetEnv PHPRC /var/www/cgi-bin/php_5_3_14/
ScriptAlias /php-5-3-14/ /var/www/cgi-bin/php_5_3_14/
Action application/x-httpd-php-5-3-14 /php-5-3-14/php-cgi
AddType application/x-httpd-php-5-3-14 .php .inc
<Directory "/var/www/cgi-bin/php_5_3_14">
<Files "php-cgi">
Allow from all
</Files>
</Directory>
<Directory "/var/www/utfl/drupal">
Options Indexes Includes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AllowOverride All
</Directory>
LogLevel Debug
ErrorLog /var/www/utfl/logs/error_log
CustomLog /var/www/utfl/logs/access_log combined
Дайте мне знать, если вам понадобится дополнительная информация. Что я делаю не так?
Я использовал следующую конфигурацию на CentOS-5.9
<VirtualHost *:80>
ServerAdmin webmaster@example.net
DocumentRoot /vhosts/php53.example.net/
ServerName php53.example.net
ScriptAlias /php-fastcgi/ /usr/local/php-5.3.26/bin/
AddHandler php-fastcgi .php
AddType application/x-httpd-php .php
Action php-fastcgi /php-fastcgi/php-cgi
<Directory /vhosts/php53.example.net/>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@example.net
DocumentRoot /vhosts/php52.example.net/
ServerName php52.example.net
<Directory /vhosts/php52.example.net/>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
php-5.3 был настроен со следующими параметрами
# # ./configure --prefix=/usr/local/php-5.3.26/ --enable-force-cgi-redirect --enable-pcntl --with-imap=shared --with-imap-ssl --enable-mbstring=shared --enable-mbregex --with-gd=shared --enable-bcmath=shared --enable-dba=shared --with-db4=/usr --with-xmlrpc=shared --with-ldap=shared --with-ldap-sasl --with-mysql=shared,/usr --with-mysqli=shared --enable-dom=shared --with-pgsql=shared --enable-wddx=shared --with-snmp=shared,/usr --enable-soap=shared --with-xsl=shared,/usr --enable-xmlreader=shared --enable-xmlwriter=shared --with-curl=shared,/usr --enable-fastcgi --enable-pdo=shared --with-pdo-odbc=shared,unixODBC,/usr --with-pdo-mysql=shared --with-pdo-pgsql=shared,/usr --with-pdo-sqlite=shared,/usr --with-pdo-dblib=shared,/usr --enable-json=shared --enable-zip=shared --without-readline --with-libedit --with-pspell=shared --enable-phar=shared --with-mcrypt=shared,/usr --with-tidy=shared,/usr --with-mssql=shared,/usr --enable-sysvmsg=shared --enable-sysvshm=shared --enable-sysvsem=shared --enable-posix=shared --with-unixODBC=shared,/usr --enable-fileinfo=shared --enable-intl=shared --with-icu-dir=/usr --with-enchant=shared,/usr --with-libdir=lib64 --with-kerberos --with-sqlite=shared