Как эффективно запускать сценарии вне основного веб-каталога? - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть Web-Developer Server Suite с PHP 5.25, который я скачал с SourceForge. Моя операционная система - Windows 7 Home Edition.

Я обновил Apache до последней версии и скоро обновлю PHP до 5.38.

Работает хорошо, кроме одной маленькой проблемы; виртуальные хосты вне основного webroot (C: / www / vhosts) не отображать сценарии PHP или вообще какие-либо сценарии; просто простой код. Все виртуальные хосты работают в C: / www / vhosts, но не в других местах, которые я объявил в vhosts.

Другие места:

  • C: / WWW /
  • C: / WWW / виртуальных доменов-тест /
  • C: / WWW / Businessweb /
  • C: / WWW / newmediasite / public_html /

Это несмотря на то, что я объявил места в httpd-vhosts.conf!

Как заставить сервер понимать PHP вне основного webroot, а также ASP.NET

(имейте в виду, что я также добавил mod_aspdotnet).

Я бы с удовольствием оценил любой совет по этому поводу; Я потратил полтора дня на восстановление моего веб-сервера, перемещение файлов из резервной копии (все PHP и MySQL) после переустановки Web-Developer Server Suite (что, IMHO, довольно хорошо для новичка).

Я не уверен, куда идти с этим, но для уместности добавлю, что это строго сервер разработки для тестирования.

Ответы [ 2 ]

1 голос
/ 13 августа 2012

Вы можете разместить свои скрипты в защищенном каталоге вне вашего Webroot, чтобы они не были доступны вашим посетителям.

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

<?php
 require_once('/var/usr/myConfigDir/config.php');
?>

Как я понимаю, только каталог, настроенный как Webroot, сможет выполнять скрипты. Apache уже добавляет уровень безопасности, позволяющий не выполнять скрипты вне Webroot.

Так что, если ваша цель - защитить некоторые из ваших сценариев, вы можете сделать это, в противном случае, я не думаю, что это возможно.

0 голосов
/ 21 декабря 2011

Исходя из моего понимания вашего вопроса, вы хотите иметь возможность иметь ваши файлы PHP в любом месте на вашем компьютере, но при этом иметь возможность их выполнять.Я не верю, что это возможно, поскольку файлы PHP открываются через веб-сервер, т.е. 127.0.0.1/foo.php вместо файла: //foo.php/

Веб-сервер настроен для выполнения файлов в /www, если где-то нет настройки (о которой я не знаю), все PHP-скрипты должны находиться в /www.

...