/ var / www / структура папок для проекта PHP - PullRequest
7 голосов
/ 10 апреля 2009

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

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

Ответы [ 5 ]

9 голосов
/ 10 апреля 2009

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

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

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

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

3 голосов
/ 10 апреля 2009

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

/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
1 голос
/ 10 апреля 2009

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

0 голосов
/ 11 апреля 2009

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

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

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

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

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

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

0 голосов
/ 10 апреля 2009

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

...