vagrant で centos 7 + nginx 1.12 + php 7.1 + fuelphp 1.8 + mysql 5.7 + phpMyAdmin + phpRedisAdmin を試す

以下の構成で確認した

Windows 10
VirtualBox
Vagrant 
CentOS 7.3
MySQL 5.7
nginx 1.12
phpMyAdmin 
phpRedisAdmin 

git bash で

$ vagrant plugin install vagrant-hostsupdater

$ mkdir xprj
$ cd xprj
$ vi Vagrantfile
----------------
config.vm.box = "boxcutter/centos73"

config.vm.network "private_network", ip: "192.168.33.10"
config.vm.hostname = "xprj.dev"
#config.hostsupdater.aliases = ["xprj-phpmyadmin.dev", "xprj-phpredisadmin.dev"]
----------------
$ vagrant up

ログイン(またはteraterm等で)
$ vagrant ssh

ここから Linux 内での作業

$ timedatectl
$ sudo timedatectl set-timezone Asia/Tokyo
$ timedatectl


■MySQL5.7のインストール

mysqlと競合するmariadb関連のライブラリが既に入っているのでアンインストール

$ sudo yum remove mariadb*

mysqlディレクトリの存在確認

$ sudo ls -la /var/lib/mysql/
もしあれば
$ sudo rm -rf /var/lib/mysql/

yumコマンドでインストール
リポジトリを追加

$ sudo yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

インストール

$ sudo yum install mysql-community-server

バージョン確認

$ mysqld --version

ステータス確認

$ systemctl status mysqld.service

起動

$ sudo systemctl start mysqld.service

自動起動設定

$ sudo systemctl enable mysqld.service

mysql起動後にログを確認

$ cat /var/log/mysqld.log | grep 'password is generated'
2015-10-25T08:42:09.501502Z 1 [Note] A temporary password is generated for root@localhost: <初期パスワード>

rootユーザでログイン

$ mysql -uroot -p
Enter password: <初期パスワード>

MySQLmysql 5.7のセキュリティ設定

$ mysql_secure_installation
Enter password for user root:
New password:    # DbPass1! ←仮の新rootパスです
Re-enter new password:

・匿名ユーザーアカウントを削除 Y
・ローカルホスト以外からアクセス可能な root アカウントを削除 Y
・test データベースの削除 Y
・即反映するか Y

ログイン確認

$ mysql -uroot -p
Enter password: 仮の新rootパス

⇒ログインできること

ログインしたらutf8でデータベース作成する

mysql> CREATE DATABASE xprjdb DEFAULT CHARACTER SET utf8mb4;
mysql> CREATE USER 'xprjdbuser'@'localhost' IDENTIFIED BY 'XprjDbUserPass1!'; # ←仮のmmuserパスです
mysql> GRANT ALL PRIVILEGES ON xprjdb.* TO 'xprjdbuser'@'localhost' IDENTIFIED BY 'XprjDbUserPass1!';
mysql> FLUSH PRIVILEGES;
mysql> exit



■php 7.1 のインストール

$ sudo yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ sudo yum install yum-utils
$ sudo yum-config-manager --enable remi-php71
$ sudo yum install php
※apacheもインストールされてしまう

$ php -v
PHP 7.1.7 (cli) (built: Jul  6 2017 13:31:15) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies



■nginxインストール

リポジトリ登録
$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
インストール
$ sudo yum install nginx
バージョン
$ nginx -v
起動テスト
$ sudo nginx -t
ステータス確認
$ sudo systemctl status nginx
起動
$ sudo systemctl start nginx
ステータス確認
$ sudo systemctl status nginx
自動起動設定
$ sudo systemctl enable nginx

ブラウザからアクセスしnginxのデフォルトページが表示されることを確認する
http://xprj.dev/

設定
 
$ sudo vi /etc/nginx/conf.d/xprj.conf
----------------
server {
    listen       80;
    server_name  xprj.dev;
    root         /var/www/xprj;
    index        index.php;
 
    location ~ \.php$ {
        root           /var/www/xprj;
        fastcgi_pass   unix:/var/run/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
----------------



■php-fpmの設定

$ sudo yum install php-fpm
$ sudo vi /etc/php-fpm.d/www.conf
----------------
user = nginx
group = nginx
listen = /var/run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0666
----------------

ステータス
$ sudo systemctl status php-fpm
起動
$ sudo systemctl start php-fpm
ステータス
$ sudo systemctl status php-fpm
自動起動
$ sudo systemctl enable php-fpm
phpinfo確認
$ sudo vi /var/www/xprj/phpinfo_test.php
----------------

Nginx1.10 + Fuelphp1.8 を試してみる

前回からの続き

fuelphpをクローンする

$ cd /var/www
$ git clone git://github.com/fuel/fuel.git myapp

アプリ毎の設定ファイルを作成

server {
        listen 80;
        server_name 192.168.33.11; # example.com
        charset utf8;
        root /var/www/fuelphp/public; # fuelディレクトリと並びのpublicディレクトリ
        access_log /var/log/nginx/myapp_access.log;
        error_log /var/log/nginx/myapp_error.log;

        location / {
                index index.php;
                try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                #fastcgi_pass 127.0.0.1:9000;
                fastcgi_pass unix:/var/run/php-fpm.sock; # php-fpmの場合
                fastcgi_index index.php;
                fastcgi_param FUEL_ENV "production";
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

ブラウザでアクセスしたらfuelphpがエラーを返した。

No composer autoloader found. Please run composer to install the FuelPHP framework dependencies first!

アプリのディレクトリでupdateをかける

$ cd myapp
$ php composer.phar update

上記コマンドを叩いて、当該URLにアクセスしてFuelPHPのトップ画面が見えていたらOK!

=> http://192.168.33.10/index.php/welcome
=> http://192.168.33.10/index.php/welcome/index/aaa/bbb/ccc

など、PATH_INFOが正しく動作しているか等のチェックを行う。

参考
http://qiita.com/1000VICKY/items/6331da7526f5998abea6
http://appstars.jp/archive/752

【実践FuelPHP】gitで管理するFuelPHPプロジェクトをつくろう


http://fuelphp.jp/docs/1.8/installation/instructions.html
ありがとうございます!