Macに FuelPHPの開発環境を構築したので、メモしときます。
- Vagrant1.8.6
- ViertualBox5.1.6
- CentOS7.2
- Nginx1.11.4
- PHP7
- FuelPHP1.8
VagrantとVirtualBoxは brewコマンドで入りました。
brew cask install vagrant
brew cask install virtualbox
最終的には、ローカルで修正したら Vagrantでも自動で反映されるようにします。
VagrantでCentOS7仮想環境構築
まずはVagrantで仮想環境を構築します。
mkdir vagrant/furlphp
cd fuelphp
CentOS7のBoxイメージはいつもこちらを使わせてもらっています。
init が終わるとVagrantfielが作成されているので、編集します。
vagrant init kogurek1/centos72_64_min
vim Vagrantfile
ローカルPC上からプライベートIPでアクセスできるようにしときます。
#config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "private_network", ip: "192.168.33.10"
起動して、ログインします。
vagrant up
vagrant ssh
最初に yum updateをしときます。
sudo yum update
nginxインストール
FuelPHPはnginxで動かします。
その前に、今後必要になるツールを先に入れておきます。
sudo yum install vim git
最新版のnginxをインストールするため、リポジトリを追加します。
sudo vim /etc/yum.repos.d/nginx.repo
baseurlはインストールするOSや、nginxのバージョンによって変わります。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
インストールします。1.11.4が入りました。
sudo yum install nginx
起動します、自動起動も有効にしておきます。
sudo systemctl start nginx
sudo systemctl enable nginx
http://192.168.33.10/ にアクセスし、nginxの画面が表示されれば正常に動作しています。
PHP7 + php-fpmインストール
FuelPHPをPHP7で動かすので、PHP7をインストールします。
先にリポジトリを追加します。。
sudo yum -y install epel-release
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo rpm -ivh ./remi-release-7.rpm
FuelPHP自体で使うエクステンションは3つです。
それに加えて、この環境で必要そうなものも一緒にインストールしときます。
sudo yum install --enablerepo=epel,remi-php70 php php-mcrypt php-mbstring php-fpm php-mysqlnd php-opcache php-apcu
php -v で PHP 7.0.11 が表示されました。
PHPの設定も修正しておきます。
sudo vim /etc/php.ini
変更した部分だけ表示。
display_errors = On
error_log = "/var/log/php_errors.log"
date.timezone = "Asia/Tokyo"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
php-fprmを起動し、自動起動を有効にしておきます。
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
nginx + php-fpm設定
nginx と php-fpmを連携します。
sudo vim /etc/nginx/conf.d/default.conf
コメントアウトしたところが元からあった設定です。
location ~ \.php$ {
#root html;
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
php-fpm側の設定を修正します。
sudo vim /etc/php-fpm.d/www.conf
[/bash
nginx.confで設定しているユーザに修正します。
;user = apache
user = nginx
;group = apache
group = nginx
nginx と php-fpmを再起動し、設定を反映させます。
sudo systemctl restart nginx
sudo systemctl restart php-fpm
default.conf に記述したドキュメントルート上にテスト用のPHPファイルを作成します。
sudo vim /usr/share/nginx/html/index.php
無難に phpinfo を表示させます。
<?php
echo phpinfo();
http://192.168.33.10/index.php にアクセスし、phpinfoページが表示されれば正常に動作しています。
FuelPHP1.8インストール
PHP7 に対応した FuelPHP1.8 をインストールします。
FuelPHPには色々なインストール方法があります。
インストール方法 – インストール – FuelPHP ドキュメント
2016年FuelPHP 1.xのインストール方法のベストプラクティス
ベストプラクティスと言われているのは zipでダウンロードしてくる方法ですが、一旦 git clone でやってみます。
cd /var/www
sudo git clone git://github.com/fuel/fuel.git fuelphp
cd fuelphp
sudo ./composer.phar self-update
sudo ./composer.phar update --prefer-dist
git branchで確認すると、1.8 の masterがインストールされたようです。
git branch
# 以下が表示
* 1.8/master
oil -v でも Fuelphp のバージョンを確認できます。
oil -v
# 以下が表示
Fuel: 1.8 running in "development" mode
nginxに、Fuelphp用のバーチャルサーバを設定します。
sudo vim /etc/nginx/conf.d/fuelphp.conf
nginxの設定はFuelPHPのドキュメントを参考にしました。
server {
server_name fuelphp.local;
# これらのファイルに Nginx が書き込めることを確認する
#access_log /var/www/fuelphp/nginxlogs/access.log;
#error_log /var/www/fuelphp/nginxlogs/error.log;
root /var/www/fuelphp/public;
location / {
index index.php;
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
root /var/www/fuelphp/public;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param FUEL_ENV "development";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
nginxの設定を反映します。
sudo systemctl restart nginx
仮想環境(192.168.33.10)へ「fuelphp.local」でアクセスできるよう、ローカルPCのhosts修正します。
# ローカルPCでの操作です
sudo vim /etc/hosts
IPとホスト名は適宜変更できます。
192.168.33.10 fuelphp.local
fuelphp.localへアクセスし、FuelPHPのウェルカムページが表示されれば正常動作です。
http://fuelphp.local/
synced_folderを使ってローカルのFuelPHPを動かす
FuelPHPを Vagrant上の環境にインストールしましたが、ローカルPC上にてIDEで開発したいので、Vagrantの synced_folder機能を使って、ローカルPCと Vagrantのディレクトリを同期させます。
開発はローカルPC、動作は Vagrantという構成です。
予め、Vagrant上に git cloneで取得した FuelPHPは削除しておきます。
sudo rm -rf fuelphp
以下からはローカルPC上での作業です。
今度は FuelPHPを本家サイトからダウンロードしてきました。
git cloneよりも速かったです。
# ローカルPCでの操作
curl http://fuelphp.com/files/download/36 -o fuelphp.zip
unzip fuelphp.zip
cd fuelphp
php oil refine install
php composer.phar self-update
php composer.phar update
バージョンを確認します。
FuelPHP1.8 がダウンロードされていました。
oil -v
# 以下が表示
Fuel: 1.8 running in "development" mode
git管理はされていないようです。
git branch
# 以下が表示
fatal: Not a git repository (or any of the parent directories): .git
Vagrantの設定を変更します。
cd ~/vagrant/fuelphp
vim Vagrantfile
synced_folderの設定を追加します。
ディレクトリの記述は、1つめがローカルPCで、2つめがVagrant上のものになります。
config.vm.synced_folder "/Users/runble1/work/fuelphp", "/var/www/fuelphp",
:owner = "nginx",
:group = "nginx",
:mount_options = ["dmode=755,fmode=644"]
Vagrantを再起動し、再度 Vagrant内での操作になります。
vagrant reload
vagrant ssh
nginxの設定を行います。
# Vagrant上での操作
sudo vim /etc/nginx/nginx.conf
off にしとかないと、CSSを修正した際に反映されないことがあるようです。
#sendfile on;
sendfile off;
nginxの設定を反映させます。
sudo systemctl restart nginx
再度「fuelphp.local」へアクセスし、ウェルカムページが表示されることを確認します。
以上、開発環境の構築完了。
MySQLのDB環境が必要になった場合は、下記記事を参照します。
CentOS7にMySQL5.7をyumでインストール
めっちゃ疲れた。。
参照
CentOS7にyumでnginx1.11をインストール
CentOS7にyumでPHP7, PHP-FPM, OPcache, APCuをインストール
nginx + php-fpmでCentOS7でPHP7を最低限動かす
Copyright © 2016 空想ブログ All Rights Reserved.