Вопрос

Я использую MAMP только для своей среды разработки и на самом деле не понял структуру папок /var / www/project-name / на веб-сервере.Мне интересно, должны ли вы указывать веб-серверу на папку htdocs или она должна указывать на корень папки проекта?

Причина, по которой я спрашиваю, заключается в том, что библиотеки предназначены для существования вне папки htdocs в целях безопасности, но как на них указывают из самого веб-приложения?Конечно, веб-приложение не может получить доступ к папкам за пределами папки htdocs, если веб-сервер указывает на папку htdocs для веб-приложения?

Это было полезно?

Решение

Простое решение состоит в том, чтобы иметь структуру папок следующим образом:

/var/www/project-name/
    + webroot/
    + libraries/

Укажите свой apache2 DocumentRoot к тому webroot справочник.Храните все библиотеки, к которым вы не хотите, чтобы они были доступны из Интернета, в libraries справочник.В вашем php-коде используйте директиву include для доступа к коду библиотек.

Хитрость заключается в том, чтобы понять, что php может включать любой файл в вашей системе, к которому у него есть доступ на чтение.Пользователь, просматривающий ваш веб-сайт, может получить доступ только к файлам внутри вашего каталога webroot.

Другие советы

Если у вас есть несколько vhosts на одном сервере, довольно часто каждый сайт находится в каталоге под /var/www, и у каждого из них есть htdocs папка, которая монтируется как веб-корень.Затем вы можете хранить журналы и библиотеки, относящиеся к конкретному приложению, в папке над веб-корнем.Например.:

/var/www/lolcats.com
/var/www/lolcats.com/htdocs
/var/www/lolcats.com/htdocs/index.php
/var/www/lolcats.com/lib
/var/www/lolcats.com/log

PHP может получить доступ к любому файлу в файловой системе, для которого пользователь сервера apache имеет правильные разрешения.На Linux-сервере, работающем под управлением apache без виртуальных хостов, /var/www является обычным местом для вашего каталога htdocs.

Вы размещаете библиотеки в PHP include_path который недоступен обычному пользователю.

Хорошая идея - отобразить ваши локальные веб-сайты в каталогах таким же образом, как работают ваши домены.

Часто у вас есть несколько веб-сайтов в одной учетной записи веб-хостинга, поэтому настройте виртуальные хостинги таким образом, чтобы они отражали настройки.

Если ваш общий хостинг:

/var/www/root
 /var/www/root/website1
 /var/www/root/website2
 /var/www/root/website3

Создайте 3 отдельных хоста на вашем локальном компьютере, но сохраните идентичную файловую структуру.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top