Ubuntu14 + nginx + Mysql5.6 + Phalconの環境を構築してみました。
作業をした際の手順のメモ書きなので、不備がありましたらごめんなさい。
前提
vagrantが利用可能であること。
私の環境はMacbookAirにて実施しています。
vagrant
以下のようなVagrantfileを利用して、vagrant upを実行します。
メモリはPhalconをコンパイルする時にエラーにならないように2048入れておきます。
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "ubuntu14"
config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
config.vbguest.auto_update = false
config.vm.define :phalcon_test do |phalcon_test|
phalcon_test.vm.network :private_network, ip:"192.168.33.100"
phalcon_test.vm.provider :virtualbox do |v|
v.customize ["modifyvm", :id, "--memory", "2048"]
end
end
end
Ubuntuのセットアップ
vagrant sshでログインし、セットアップ
$ vagrant ssh
php
phpのインストール。現地点では5.5.16が入ります。
手順はこちらを参考にしています。
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php5
$ sudo apt-get update
$ sudo apt-get install php5 php5-cli php5-dev php5-mysql php5-fpm
mysql
mysql5.6のインストール。rootのパスワードを確認されるので設定する。
$ sudo apt-get install mysql-server-5.6
nginx
nginxのインストール。
$ sudo apt-get install nginx
この段階で http://192.168.33.100/ にアクセスすると、nginxの初期画面が表示されると思います。
phalcon
基本パッケージのインストール。
$ sudo apt-get install git-core gcc autoconf libpcre3-dev
phalconのインストール。
$ git clone git://github.com/phalcon/cphalcon.git
$ cd cphalcon/build
$ sudo ./install
以下のファイルを追加。
- /etc/php5/cli/conf.d/20-phalcon.ini
- /etc/php5/fpm/conf.d/20-phalcon.ini
extension=phalcon.so
サービスの再起動
$ sudo service nginx restart
$ sudo service php5-fpm restart
composer
composerのインストール。インストールするディレクトリはとりあえず$HOMEにしています。
$ cd ~
$ curl -s http://getcomposer.org/installer | php
composer.jsonの作成
{
"require": {
"phalcon/devtools": "dev-master"
}
}
composerでインストールを実行
$ php composer.phar install
phalcon.phpスクリプトへのシンボリックリンクを作成
$ sudo ln -s ~/vendor/phalcon/devtools/phalcon.php /usr/bin/phalcon
$ sudo chmod ugo+x /usr/bin/phalcon
phalconのプロジェクト作成
プロジェクト作成
phalconのプロジェクトを作成します。
$ cd /vagrant
$ phalcon project phalcon_test
nginxの設定
phalconのNginx インストールノートに従う。ホスト毎の設定の部分で作成した。
その他の設定についてはこちらを参考にした。
server {
listen 80;
server_name phalcon_test;
set $root_path '/vagrant/phalcon_test/public';
root $root_path;
access_log /var/log/nginx/phalcon_test-access.log;
error_log /var/log/nginx/phalcon_test-error.log error;
index index.php index.html index.htm;
try_files $uri $uri/ @rewrite;
location @rewrite {
rewrite ^/(.*)$ /index.php?_url=/$1;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_TRANSLATED $document_root$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;
}
}
設定後、シンボリックリンクを作成
$ sudo ln -s /etc/nginx/sites-available/phalcon_test.conf /etc/nginx/sites-enabled/phalcon_test.conf
/etc/php5/fpm/pool.d/www.confのユーザを編集。
;user = www-data
;group = www-data
user = vagrant
group = vagrant
;listen.owner = www-data
;listen.group = www-data
listen.owner = vagrant
listen.group = vagrant
/etc/nginx/nginx.confのユーザを編集。
## user www-data;
user vagrant
サービスの再起動します。
sudo service nginx restart
sudo service php5-fpm restart
ブラウザにてアクセスしてCongratulations!が出れば完了。
webtoolsの有効化
webtoolsを有効化する
cd /vagrant/phalcon_test
$ phalcon webtools enable
そのままだとCSSが効かなかったのでファイルを修正
'baseUri' => '/',
これで、http://192.168.33.100/webtools.php にアクセスするとwebtoolsが使えるようになります。
次は、DBを作成します。
$ mysql -uroot -p
$ create database test;
$ exit;
DBを作成したあと、phalconのファイルを修正します。
'database' => array(
'adapter' => 'Mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'root',
'dbname' => 'test',
),
これでwebtoolにてSccaffoldやMigrationsが使えるようになります。
この手順にて、Phalconに興味がある方のちょっとだけでも力になるようでしたら幸いです。