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

Проблема с Apache 2 Fast CGI php

Я пытаюсь установить php5.6.23 как быстрый CGI на моем сервере для использования php7 в качестве основной версии

но в одном из моих доменов я получаю эту ошибку:

The requested URL / was not found on this server.

вот мой vhost conf:

ScriptAlias / /usr/lib/cgi-bin
DocumentRoot "/home/ue4xxxx/www"

<Directory "/home/ue4xxxx/www">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all

        AddHandler php-cgi .php
        Action php-cgi /cgi-bin/php-cgi-5.6.23
        <FilesMatch "\.php*">
                SetHandler php-cgi
        </FilesMatch>
</Directory>

ErrorLog ${APACHE_LOG_DIR}/ue4/error.log
CustomLog ${APACHE_LOG_DIR}/ue4/access.log combined

У меня есть bin php cgi, расположенный по адресу /usr/lib/cgi-bin и я хочу использовать файл в корне vhost /home/ue4xxxx/www

ОБНОВИТЬ: После выполнения некоторых предложений конфигурация vhost теперь выглядит так:

<VirtualHost *:80>
    ServerAdmin postmaster@ue4-xxxx.tld
    ServerName ue4-xxxx.tld
    ServerAlias ue4-xxxx.tld

        ScriptAlias /cgi-bin /usr/lib/cgi-bin
        DocumentRoot "/home/ue4xxxx/www"

        <Directory "/home/ue4xxxx/www">
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all

                AddHandler php-cgi .php
                Action php-cgi /cgi-bin/php-cgi-5.6.23
                <FilesMatch "\.php">
                    SetHandler php-cgi
                </FilesMatch>
        </Directory>

    ErrorLog ${APACHE_LOG_DIR}/ue4/error.log
    CustomLog ${APACHE_LOG_DIR}/ue4/access.log combined
</VirtualHost>

После этих изменений я получаю ошибку 404:

The requested URL /cgi-bin/php-cgi-5.6.23/index.php was not found on this server

У вас здесь ошибка:

<FilesMatch "\.php*">

Это не подстановочный знак в том смысле, в котором вы его использовали, но означает «Повторить предыдущее совпадение ноль или более раз».

Вам следует ознакомиться с документацией Apache для Регулярные выражения, и измените FilesMatch кому:

<FilesMatch "\.php">

ТАКЖЕ: Это выглядит так:

ScriptAlias / /usr/lib/cgi-bin

вероятно должно быть:

ScriptAlias /cgi-bin /usr/lib/cgi-bin

Вы можете просмотреть документацию Apache для Директива ScriptAlias для получения более подробной информации об использовании.