Как я запускал скелетное приложение Zend Framework
Опыта в программировании на PHP уменя практически нет, однако изучить предмет имеется желание большое.
Начав изучение с основ, обнаружил, что более менее серьезный проект (каталог документов со справочниками) писать с чистого листа очень затратное занятие (хотя, в принципе, при определенной сноровке выполнимое). И чтобы не изобретать велосипед, решил обратится к фреймворкам. Выбрал сабж в силу того, что он является практически родным для PHP.
Пошерстив интернет по имеющимся инструкциям, завести его не удалось. Начал читать родные на мануалы на http://framework.zend.com. Рузультаты чтения представлены ниже в виде выполненных мною шагов. Итак:
- Настроил LAMP сервер по этой инстркуции.
- Создал директорию /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
- Скачал Composer и установил скелетное приложениеcurl -s getcomposer.org/installer | php
php composer.phar install
- Добавил виртуальный хост по этой инструкции. В каталоге /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 для активации. - Активация сайтаa2ensite zf.localhost
- Активировал Mod Rewrite командой
sudo a2enmod rewrite
- В каталоге настроил .htaccess файл (по шаблону):
.htaccessRewriteEngine 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]
- Перезапуск Apachesudo service apache2 restart
- Натройка файла /etc/hostssudo nano /etc/hosts
Добавление в этот файл строки: 127.0.0.1 zf.localhost
После всех этих изменений сайт по адресу zf.localhost заработал. Проверить ModRewrite можно просто добавив в конец УРЛ любую строку. Должна вылезти 404 я ошибка с лого ZF и описанием скелетного приложения.