Zend Framework 2. Первичный запуск Skeleton Application.

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

  1. Настроил LAMP сервер по этой инстркуции
  2. Создал директорию /var/www/zf.localhost, где будет крутится фреймворк, и скачал в нее скелет. Права для для папки настраиваю через Midnight Commander. (F9-Файл-Права, расширенные) и задаю для всех r-x (775) (настройка делается очень просто :))
    Получение скелета приложения
    cd /var/www/zf.localhost
    curl -#L https://github.com/zendframework/ZendSkeletonApplication/tarball/master | tar xz --strip-components=1
  3. Скачал Composer и установил скелетное приложение
    curl -s https://getcomposer.org/installer | php
    php composer.phar install
  4. Добавил виртуальный хост по этой инструкции. В каталоге /etc/apache2/sites-available создал файл 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 файл (по шаблону)
    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

После всех этих изменений сайт по адресу http://zf.localhost заработал. Проверить ModRewrite можно просто добавив в конец УРЛ любую строку. Должна вылезти 404 я ошибка с лого ZF и описанием скелетного приложения