Я столкнулся с довольно странным поведением. Я разместил простой тестовый скрипт phpinfo (см. Ниже) как index.php в корневом каталоге моего домена. Когда я открываю его как www.example.com в браузере, он загружается правильно. Однако, когда я открываю его как www.example.com/index.php, браузер предлагает мне загрузить файл (который затем является самим скриптом), то же самое происходит со всеми другими файлами .php. Работает только при неявном открытии index.php в качестве целевой страницы домена.
index.php:
<?php
phpinfo();
Конфигурация:
Ubuntu 18.04
Apache 2.4
PHP 7.2
Кроме того, сервер (и конфигурация Apache) поддерживается через Plesk и запускает несколько доменов, у меня есть root-доступ. Все остальные домены работают нормально, это всего лишь один, и я не могу понять, в чем проблема, поскольку он настроен таким же образом. Переход на nginx работает, однако я хочу, чтобы этот домен обслуживал Apache по другим причинам. Файла .htaccess нет, тот факт, что файл выполняется при неявном открытии, указывает на то, что PHP в целом работает.
соответствующая часть httpd.conf для этого домена:
<IfModule mod_fcgid.c>
FcgidInitialEnv PP_CUSTOM_PHP_INI /var/www/vhosts/system/example.com/etc/php.ini
FcgidInitialEnv PP_CUSTOM_PHP_CGI_INDEX fastcgi
FcgidMaxRequestLen 134217728
FcgidIOTimeout 300
</IfModule>
TimeOut 300
<Directory /var/www/vhosts/example.com>
<IfModule mod_fcgid.c>
<Files ~ (\.fcgi$)>
SetHandler fcgid-script
Options +ExecCGI
</Files>
</IfModule>
<IfModule mod_fcgid.c>
<Files ~ (\.php$)>
SetHandler fcgid-script
FCGIWrapper /var/www/cgi-bin/cgi_wrapper/cgi_wrapper .php
Options +ExecCGI
</Files>
</IfModule>
SSLRequireSSL
Options -Includes +ExecCGI
</Directory>