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

Невозможно выполнить index.php в корневой папке, когда PHP установлен как двоичный файл CGI

Я пытаюсь создать веб-сайт на сервере моей школы, но у них PHP установлен как CGI, поэтому файлы .php могут запускаться только в папке cgi-bin.
Это несколько проблематично, если я хочу, чтобы мой индекс был файлом .php, а не .html, поскольку он должен находиться вне папки cgi-bin и в корневой папке WWW.

Кроме того, это сервер apache, поэтому я попытался отредактировать свой файл .htaccess только для того, чтобы понять, что я не знаю, где находится двоичный файл php-cgi (в конце концов, это сервер моей школы, и у меня нет разрешений только на изучение ).

Есть ли другой способ заставить работать индексный файл .php, который находится за пределами папки cgi-bin, без необходимости делать что-то уродливое, например, создать файл index.html в корневом каталоге, который перенаправляет на файл .php внутри cgi -bin папка?

У вас есть несколько вариантов. Если mod_rewrite включен, вы можете использовать это для перезаписи запросов на путь в вашем /cgi-bin/. $_SERVER[] будет по-прежнему содержать исходный URI запроса, так что вы можете условно выполнять действия на основе запрошенного пути.

В качестве альтернативы, если вы категорически настроены на использование .htaccess, чтобы файлы PHP могли выполняться где угодно (что может быть даже невозможно - httpd.conf указывает через AllowOverride директиве, что файлы .htaccess могут и не могут делать), затем создайте файл PHP, содержащий

<?php
phpinfo();

и поместите его в свой cgi-bin каталог, он расскажет вам все соответствующие сведения об этой установке PHP (которые должны включать расположение php-cgi исполняемый файл).

Вы можете просто создать файл index.html с мета-перенаправлением, он не очистит URL-адреса, но, по крайней мере, будет работать.