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

Несколько версий PHP, работающих как cgi

Я пытаюсь установить вторую версию 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.php, я получаю следующую ошибку:

Запрещено

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>