Выполнение сценариев PHP CGI через SSL

Apache 2.4 на Amazon Linux (примерно эквивалент RH 7, я полагаю), с различными версиями PHP.

У меня проблема с запуском скриптов PHP CGI на моем веб-сервере при включенном SSL. Например:

http://52.example.com/phpinfo.php

дает правильный результат, но когда я включаю SSL (например, https://52.example.com ), я получаю ошибку 404:

The requested URL /php-fcgi/php-cgi-5.2.17/phpinfo.php was not found on this server.

Вот содержимое файл 52.conf в каталоге my / var / www / vhosts:

 <VirtualHost *:443>

    ServerName 52.example.com

    DocumentRoot /var/www/vhosts/52

 <Directory "/var/www/vhosts/52/">

     AddHandler php-cgi .php
     Action php-cgi /php-fcgi/php-cgi-5.2.17

    <FilesMatch "\.php$">
            Options ExecCGI
            SetHandler php-cgi
    </FilesMatch>
 </Directory>

где site.conf - определение виртуального хоста.

А вот содержимое файла php-cgi-5.2.17:

#!/bin/sh
version="5.2.17"

PHPRC=/opt/phpfarm/inst/php-${version}/lib/php.ini
export PHPRC

PHP_FCGI_CHILDREN=3
export PHP_FCGI_CHILDREN

PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS

# which php-cgi binary to execute
exec /opt/phpfarm/inst/php-${version}/bin/php-cgi

Как вы, наверное, догадались, я использую PHPFarm для сервера разных версий PHP на разных поддоменах.

Обратите внимание, что я не знаю наверняка , что SSL является причиной моего горя, но это кажется ужасно подозрительным.

Если у кого-то есть мысли или идеи, я был бы бесконечно благодарен. Заранее спасибо.

0
задан 17 April 2017 в 18:42
1 ответ

Apache по умолчанию использует другой файл конфигурации хоста для ssl-сервера по умолчанию. И я не вижу никаких ссылок на SSL в опубликованных вами фрагментах конфигурации ....

Итак ... вероятно, он возвращается к любому определенному хосту по умолчанию и указывает на неправильный DocumentRoot.

] Запустите apache2ctl -S, чтобы увидеть, какие имена / псевдонимы, адреса и порты используются в данный момент. Он также сообщит вам, какой конфигурационный файл определяет его и с какой строки начинается определение.

VirtualHost configuration:
10.99.88.55:443      is a NameVirtualHost
         default server example.com (/etc/apache2/sites-enabled/example.com.conf:1)
         port 443 namevhost example.com (/etc/apache2/sites-enabled/example.com.conf:1)
                 alias www.example.com
         port 443 namevhost mail.example.com (/etc/apache2/sites-enabled/mail.example.com.conf:1)
         port 443 namevhost ww2.example.com (/etc/apache2/sites-enabled/ww2.example.com.conf:1)
*:80                   is a NameVirtualHost
         default server www.example.com (/etc/apache2/sites-enabled/000-default.conf:2)
         port 80 namevhost www.example.com (/etc/apache2/sites-enabled/000-default.conf:2)
                 alias example.com
         port 80 namevhost ww2.example.com (/etc/apache2/sites-enabled/000-default.conf:7)
         port 80 namevhost mail.example.com (/etc/apache2/sites-enabled/000-default.conf:11)

Отредактируйте, чтобы включить пример определения хоста с директивами SSL, указывающими на сертификат letsencrypt с перенаправлением для того же сайта на http, чтобы их отклонить на https -

<VirtualHost 10.99.99.123:443>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    DocumentRoot /var/www-example.com
    <directory /var/www-example.com>
        Options All
        AllowOverride All
        Require all granted
    </directory>
    ErrorLog ${APACHE_LOG_DIR}/ssl-example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    CustomLog ${APACHE_LOG_DIR}/ssl-example.com-access.log combined
</VirtualHost>
<VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com
   Redirect permanent / https://www.example.com
</VirtualHost>
1
ответ дан 4 December 2019 в 16:17

Теги

Похожие вопросы