Posted at

Ubuntu14にnginx+Mysql+Phalconの環境を構築する

More than 5 years have passed since last update.

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


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の作成


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 インストールノートに従う。ホスト毎の設定の部分で作成した。

その他の設定についてはこちらを参考にした。


/etc/nginx/sites-available/phalcon_test.conf

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のユーザを編集。


/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のユーザを編集。


/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が効かなかったのでファイルを修正


app/config/config.php

'baseUri'        => '/',


これで、http://192.168.33.100/webtools.php にアクセスするとwebtoolsが使えるようになります。

次は、DBを作成します。

$ mysql -uroot -p

$ create database test;
$ exit;

DBを作成したあと、phalconのファイルを修正します。


app/config/config.php

    'database' => array(

'adapter' => 'Mysql',
'host' => 'localhost',
'username' => 'root',
'password' => 'root',
'dbname' => 'test',
),

これでwebtoolにてSccaffoldやMigrationsが使えるようになります。

この手順にて、Phalconに興味がある方のちょっとだけでも力になるようでしたら幸いです。


参考にしたサイト