Я пытаюсь установить вторую версию PHP, чтобы работать вместе с текущей версией php. Я скомпилировал последний исходный код php из github (5.5-DEV) и пытаюсь запустить его как CGI.
Вот конфигурация моего виртуального хоста:
<VirtualHost *:8055>
DocumentRoot /Library/WebServer/Documents/
ScriptAlias /cgi-bin/ /usr/local/php55/cgi
Action php55-cgi /cgi-bin/php-cgi
AddHandler php55-cgi .php
<Directory /Library/WebServer/Documents/>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
DirectoryIndex index.html index.php
</VirtualHost>
Но когда я иду в http://127.0.0.1:8055/info.ph
p, я получаю следующую ошибку:
Запрещено
You don't have permission to access /cgi-bin/php-cgi/info.php on this server
редактировать
Я сейчас переключаюсь между
LoadModule php5_module /usr/local/php54/libphp5.so
и
LoadModule php5_module /usr/local/php55/libphp5.so
На данный момент это работает, но не идеально. Я хотел бы иметь разные версии php на разных виртуальных хостах
Вам нужно будет сообщить Apache, как обращаться с новыми /usr/local/php55
каталог.
<Directory /usr/local/php55/cgi>
Allow from all
</Directory>
Возможно, вам потребуется добавить дополнительный "/" в конце ScriptAlias
назначение, или Action
может решить
Action php55-cgi /usr/local/php55/cgiphp-cgi
Итак, ваш блок vhost будет выглядеть так:
<VirtualHost *:8055>
DocumentRoot /Library/WebServer/Documents/
ScriptAlias /cgi-bin/ /usr/local/php55/cgi/
Action php55-cgi /cgi-bin/php-cgi
AddHandler php55-cgi .php
<Directory /usr/local/php55/cgi>
Allow from all
</Directory>
<Directory /Library/WebServer/Documents/>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
DirectoryIndex index.html index.php
</VirtualHost>