/ var / www / структура папок для проекта PHP

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

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

5 ответов


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

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

точка вашей помощью apache2 DocumentRoot до . В 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, который недоступен для обычных пользователей.


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

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

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

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

создайте 3 хоста vitual на локальном ПК, но сохраняйте идентичную структуру файлов.

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