LoginSignup
9
10

More than 5 years have passed since last update.

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

Posted at

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に興味がある方のちょっとだけでも力になるようでしたら幸いです。

参考にしたサイト

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10