Статьи

Совет: установите Zephir и Phalcon 2 на Vagrant

Этот быстрый совет покажет вам, как установить Phalcon на экземпляр Homestead Improved , и поможет вам запустить пример приложения Phalcon.

Версия Phalcon, которую мы будем использовать в этом кратком совете, будет 2.0 — предварительная версия. Если вы читаете это, когда Phalcon уже находится на стадии зрелой версии 2.x, дайте нам знать, и мы обновим пост. Чтобы установить стабильную версию 1.x, просто запустите sudo apt-get install php5-phalcon и она должна работать.

Шаг 1: Привет

Получить HI (Homestead Improved) и запустить с помощью этого быстрого совета .

Добавьте еще один сайт в конфигурацию vhost, чтобы ваш блок сайтов выглядел следующим образом:

 sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public - map: test.app to: /home/vagrant/Code/phalcon_sample/public 

Шаг 2: Установите Zephir

Зефир — это язык, на котором держится новый Фалькон. Вместо того, чтобы писать на C, Phalcon 2 написан на языке-посреднике Zephir, предназначенном исключительно для создания расширений PHP. Узнайте больше об этом здесь .

 sudo apt-get update sudo apt-get install gcc make re2c libpcre3-dev cd ~/Code git clone https://github.com/json-c/json-c.git cd json-c sh autogen.sh ./configure make && sudo make install git clone https://github.com/phalcon/zephir cd zephir ./install -c 

Шаг 3: Установите расширение

Если виртуальная машина еще не запущена, запустите vagrant up , затем войдите в нее через vagrant ssh .

 cd ~/Code git clone http://github.com/phalcon/cphalcon cd cphalcon git checkout 2.0.0 zephir build 

Это устанавливает расширение. Вам все еще нужно активировать его, включив в файл php.ini .

 sudo su echo "extension=phalcon.so" >> /etc/php5/fpm/conf.d/20-phalcon.ini echo "extension=phalcon.so" >> /etc/php5/cli/conf.d/20-phalcon.ini exit 

Давайте проверим, правильно ли он установлен. Перезапустите nginx и php5-fpm. Запустите php -i | grep Phalcon php -i | grep Phalcon . Если вы получили какой-либо вывод (например, «Author => Phalcon Team»), установка прошла успешно.

Шаг 4. Установите образец сайта

Мы будем использовать домашнюю страницу Phalcon в качестве примера сайта.

 cd ~/Code git clone https://github.com/phalcon/website phalcon_sample 

Откройте /app/var/config/config.php и измените baseurl на / и debug на 1 . BaseURL настроен неправильно по неизвестной причине, в то время как отладку необходимо активировать для деактивации компонента кэширования, который в настоящее время испытывает проблемы с нормальной работой. Это будет исправлено в будущем, поэтому, если вы читаете это в любое время после августа 2014 года, попробуйте его с настройками по умолчанию.

Шаг 5: Измените конфигурацию Nginx

Конфигурация Nginx в Phalcon несколько сомнительна, поэтому требуется некоторая настройка. Просто замените содержимое /etc/nginx/sites-available/test.app (или x.app, где x — это имя вашего виртуального хоста, определенного в Homestead.yaml) следующим:

 server { listen 80; server_name test.app; set $root_path '/home/vagrant/Code/phalcon_sample/public'; root $root_path; index index.php index.html index.htm; try_files $uri $uri/ @rewrite; location @rewrite { rewrite ^/(.*)$ /index.php?_url=/$1; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } access_log off; error_log /var/log/nginx/test.app-error.log error; error_page 404 /index.php; sendfile off; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~* ^/(css|img|js|flv|swf|download)/(.+)$ { root $root_path; } location ~ /\.ht { deny all; } } 

Сохраните, выйдите и перезапустите Nginx с помощью sudo service nginx restart .

Шаг 6: отключить XDebug [необязательно]

Если вы получаете ошибку 502 при запуске приложения после шага 5, все еще остается выдающаяся ошибка с Xdebug, которая не позволяет Phalcon 2 работать должным образом. Он находится в стадии разработки и означает, что он будет решен в ближайшее время, но в то же время, просто зайдя в /etc/php5/mods-available/xdebug.ini и /etc/php5/mods-available/xdebug.ini содержимое, затем перезапустив с помощью sudo service php5-fpm restart должен решить вещи для тебя.

Завершение

Вот и все. Теперь вы можете посетить сайт в браузере своего хоста, запустив http://test.app:8000 (или любой другой URL-адрес виртуального хоста, который вы определили, если вы не использовали test.app как я делал выше.

Не стесняйтесь начинать взламывать и экспериментировать с кодами Zephir и Phalcon 2.0 прямо сейчас!