2011-01-11 2 views
4

Я пишу PHP-библиотеку, основанную на структуре zend. Моя библиотека используется несколькими моими веб-проектами. Я не уверен, где я должен поместить свою библиотеку. Кажется, имеет смысл иметь его вне корня документа из отдельных проектов, поэтому мне не нужно поддерживать библиотеку в каждом отдельном проекте. Моя текущая настройка выглядит следующим образом:PHP-библиотека внутри или вне корня документа?

/var/www/vhosts/project1/ 
/var/www/vhosts/project2/ 
/var/www/vhosts/libraries/zend-framework/zend-framework-1.11.0/... 
/var/www/vhosts/libraries/my-lib/my-lib-1.0.0/... 

Как это, конкретные варианты как Зенд-основы и мой Пб можно использовать в своих проектах.

Альтернативная установка будет выглядеть следующим образом:

/var/www/vhosts/project1/ 
/var/www/vhosts/project1/libraries/zend-framework/zend-framework-1.11.0/... 
/var/www/vhosts/project1/libraries/my-lib/my-lib-1.0.0/... 
/var/www/vhosts/project2/ 
/var/www/vhosts/project2/libraries/zend-framework/zend-framework-1.11.0/... 
/var/www/vhosts/project2/libraries/my-lib/my-lib-1.0.0/... 

Первый вариант имеет больше смысла для меня, но я не уверен, если я бегу в некоторых проблем безопасности, если мои проекты зависят от файлов вне их корневые папки документов. Кроме того, у меня возникают проблемы, когда я пытаюсь включить javascript-файлы из my-lib в свои проекты, если my-lib находится за пределами корня документа проекта.

Что лучше всего здесь, где я должен положить свою библиотеку и структуру zend?

+0

/вара/Lib? потому что это библиотека? –

+2

Я не думаю, что вы можете поместить файлы javascript за пределы корня документа, потому что тогда они не будут доступны из браузера. – naiquevin

+0

Я голосую за первое. Но когда вы говорите о проекте documentRoot, я надеюсь, вы не говорите об Apache DocumentRoot, это будет большой сбой безопасности. – regilero

ответ

6

Если/вар/WWW/ВХосты/библиотеки доступен снаружи, я рекомендую вам поставить библиотеку один уровень ниже (/ вар/WWW/библиотеки) так:

  1. вы можете одни и те же Lib со всеми PHP приложениями
  2. PHP может получить доступ без настройки прав
  3. это не доступно прямо из передних мест
+2

Что касается любых общедоступных файлов в этих библиотеках (js, css, images и т. Д.), Вы можете использовать псевдоним Apache (mod_alias) для сопоставления этих файлов с доступным URL-адресом. – Jody