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
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のウェルカムページが表示されれば正常動作です。
synced_folderを使ってローカルのFuelPHPを動かす
FuelPHPを Vagrant上の環境にインストールしましたが、ローカルPC上にてIDEで開発したいので、Vagrantの synced_folder機能を使って、ローカルPCと Vagrantのディレクトリを同期させます。
開発はローカルPC、動作は Vagrantという構成です。
予め、Vagrant上に git cloneで取得した FuelPHPは削除しておきます。
sudo rm -rf fuelphp [/bash]
以下からはローカル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環境が必要になった場合は、下記記事を参照します。
めっちゃ疲れた。。
コメント