Ubuntu LAMP со структурой каталогов Zend для веб-хостинга - PullRequest
1 голос
/ 28 марта 2012

Я установил базовый сервер LAMP на Ubuntu 11.10, и у меня возникло несколько вопросов о структуре каталогов с веб-хостингом. Мои «требования» состоят в том, чтобы я хотел разместить два веб-сайта (например, www.site1.com и www.site2.com), а также использовать Zend Framework.

В настоящее время общей папкой является / var / www /. Часто ли где-нибудь есть папка «Проекты», содержащая весь код веб-приложения, который обычно состоит из папок проекта Zend (общедоступных, тестов, библиотеки и т. Д.)?

Где вы обычно храните папку Zend Framework? Я думал о том, чтобы просто сохранить в своем каталоге ~ / и создать символическую ссылку из папки библиотеки каждого проекта в папку библиотеки Zend. Это рекомендуется / не одобряется?

Я новичок в этом и только начинаю настройку, но вот что я имел в виду:

Создайте папку проектов в вашем домашнем каталоге (~ /). Там есть ваши различные веб-приложения (~ / Projects / site1 и ~ / Projects / site2). Создайте символическую ссылку из / var / www / site1, которая указывает на ~ / Projects / site1 / Public, и то же самое для site2. Настройте файл виртуальных хостов, установив для DocumentRoot значение / var / www / site1 и то же для site2.

Может ли кто-нибудь пролить свет на возможные подводные камни этого? Это было бы хорошо сделать? Любые рекомендации? Я знаю, что есть много версий того, как вы должны установить каталоги здесь, на SO, но я не смог найти ответов, которые конкретно касались этих вопросов, поэтому я прошу прощения, если это повторение.

Любая помощь приветствуется.

Ответы [ 2 ]

3 голосов
/ 28 марта 2012

Да, есть много способов сделать это, просто имейте в виду несколько вещей:

  • Пользователь, которому принадлежат файлы HTML / PHP, не должен быть тем же пользователем, который запускаетпроцесс веб-сервера.
  • Файлы проекта ZF должны находиться вне корневого каталога документов веб-сервера.
  • Если вы сейчас выполняете настройку, способствующую наличию нескольких разработчиков, вам не нужно делатьбольшие изменения позже.

Обычно я делаю что-то вроде создания сайта для пользователя с обычным каталогом / home / site.Это сохраняет файлы сайта отдельно от ваших личных файлов и облегчает поддержку нескольких администраторов / разработчиков, которым может потребоваться войти в систему.Вы также можете поместить это в / opt / site или / usr / local / site или где угодно.Мне нравится / home, потому что файлы скелета оболочки уже есть, и я могу легко добавить SSH-ключи людей, которым я хочу иметь доступ.У меня будет что-то вроде:

/home/site/
    library/
        fuel/
        geshi/
        sencha-touch-2.0.0-gpl/
        ZendFramework/
            ZendFramework-1.11.10/
            ZendFramework-1.11.11/
            latest -> ZendFramework-1.11.11
    site/
        domain1.com/
            application/
            library/
                MyApp/
                Zend -> /home/site/library/ZendFramework/latest/library/Zend
            public/
            scripts/
        domain2.com/
            application/
            library/
                MyApp/
                Zend -> /home/site/library/ZendFramework/latest/library/Zend
            public/
            scripts/

Тогда корневые настройки вашего документа vhost будут указывать на /home/site/site/domain1.com/public и /home/site/site/domain2.com/общественности

1 голос
/ 28 марта 2012

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

/srv
    /site1/
           /app
           /webroot
           /cache
           /tmp
    /site2/
           /app
           /webroot
           /cache
           /tmp
    /share/
           /CakePHP
                   /1.3/
                   /2.0/

Две основные части конфигурации выполнены в apache, я установил для корня документа виртуального хоста точное местоположение webroot на /srv/site1/webroot/, затем я поместил CakePHP в путь включения (вы можете сделать то же самое с Zend) с помощью php_value include_path ".:/share/cakephp/2.0/lib" в конфигурации vhost.

Я делаю это, потому что это позволяет мне легко обновлять CakePHP с техническими выпусками для всех сайтов (т. Е. Для тех, которые ничего не должны сломать), а новый выпуск гарантирует новую папку (например, 2.1) и обновляет сайт до использовать это просто в случае редактирования конфигурации Apache (или .htaccess) и перезапуска сервера.

Это также избавляет меня от необходимости включать любой тип пути включения в мое приложение (и, следовательно, контроль версий), чтобы он был максимально переносимым для различных установок dev / staging.

Конечно, как я уже сказал, не существует одного "правильного" пути.

...