Pull to refresh

Zend Framework 2. Запуск Skeleton Application

Как я запускал скелетное приложение Zend Framework


Опыта в программировании на PHP уменя практически нет, однако изучить предмет имеется желание большое.

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

Пошерстив интернет по имеющимся инструкциям, завести его не удалось. Начал читать родные на мануалы на http://framework.zend.com. Рузультаты чтения представлены ниже в виде выполненных мною шагов. Итак:

  1. Настроил LAMP сервер по этой инстркуции.
  2. Создал директорию /var/www/zf.localhost, где будет крутится фреймворк, и скачал в нее скелет. Права для для папки настраиваю через Midnight Commander. (F9-Файл-Права, расширенные) и задаю для всех r-x (775) (настройка делается очень просто):

    Получение скелета приложения
    cd /var/www/zf.localhost
    curl -#L github.com/zendframework/ZendSkeletonApplication/tarball/master | tar xz --strip-components=1

  3. Скачал Composer и установил скелетное приложение
    curl -s getcomposer.org/installer | php
    php composer.phar install

  4. Добавил виртуальный хост по этой инструкции. В каталоге /etc/apache2/sites-available создал файл zf.localhost.conf:

    zf.localhost.conf
    <VirtualHost *:80>
    ServerName zf.localhost
    DocumentRoot /var/www/zf.localhost/public

    <Directory /var/www/zf.localhost/public>
    AllowOverride All
    </Directory>
    </VirtualHost>

    В процессе настройки немного закосячил. Конфигурационный файл должен иметь расширение .conf, иначе его не подцепит утилита a2ensite для активации.
  5. Активация сайта
    a2ensite zf.localhost

  6. Активировал Mod Rewrite командой
    sudo a2enmod rewrite

  7. В каталоге настроил .htaccess файл (по шаблону):

    .htaccess
    RewriteEngine On
    # The following rule tells Apache that if the requested filename
    # exists, simply serve it.
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ — [NC,L]
    # The following rewrites all other queries to index.php. The
    # condition ensures that if you are using Apache aliases to do
    # mass virtual hosting, the base path will be prepended to
    # allow proper resolution of the index.php file; it will work
    # in non-aliased environments as well, providing a safe, one-size
    # fits all solution.
    RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
    RewriteRule ^(.*) — [E=BASE:%1]
    RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]

  8. Перезапуск Apache
    sudo service apache2 restart

  9. Натройка файла /etc/hosts
    sudo nano /etc/hosts
    Добавление в этот файл строки:
    127.0.0.1    zf.localhost


После всех этих изменений сайт по адресу zf.localhost заработал. Проверить ModRewrite можно просто добавив в конец УРЛ любую строку. Должна вылезти 404 я ошибка с лого ZF и описанием скелетного приложения.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.