Windows+Vagrant+CentOS7.2にPHP7+Nginx+MariaDBをインストールする方法を紹介します。
VagrantやCentOSの設定は以前紹介した記事を元に行っています。
目次
ローカルのソースと、仮想環境のソースを共有化する
PHPやNginxの設定より前に、ローカル環境(Windows)の指定のフォルダと仮想環境の指定のフォルダの内容が共有化されるように設定します。
これによって、ローカルで編集したファイルが自動的に仮想環境上でも更新されることになります
普通に共有化すると、速度がいまいちなので今回はvagrant-winnfsdプラグインをインストールして共有化を行います。
vagrant-winnfsdをインストール
Windows Powershellを立ち上げて、下記のコマンドを入力しましょう。
vagrant plugin install vagrant-winnfsd
Vagrantfileを編集する
続いてVagrantfileファイルを編集します。
今回はC:\vagrant\htmlフォルダの内容をVagrantの/var/wwwと共有するように設定します。
# C:\vagrant\htmlフォルダの内容をVagrantの/var/wwwと共有 config.vm.synced_folder "C:/vagrant/html", "/var/www", create:true,type:"nfs" # 念のためにデフォルトの設定を切る config.vm.synced_folder ".", "/vagrant", disabled: true
Vagrantをリロード
vagrantをリロードします。(一回vagrantを停止して、再び起動する方法でもOKです)
vagrant reload
C:\vagrant\htmlに適当なファイルを配置して、vagrantの/var/wwwにファイルが自動で追加されてたら共有化完了です。
Nginxをインストール
NginxはYumで簡単にインストールできます。
インストール後、起動と自動起動の設定コマンドを実行します。
# Nginxインストール sudo yum --enablerepo=epel install nginx # Nginx起動 sudo systemctl start nginx # Nginx自動起動設定 sudo systemctl enable nginx
実行したら、http://192.168.1.11/をブラウザで開きます。
下の画面が出たら完了です。
PHP7.1をインストール・設定
そのうちチャレンジしたいPHPフレームワークが7.0以上対応のため、今回はPHP7.1をインストールします。
インストール
Teratermで下記のコマンドを実行すれば、インストールは完了します。
sudo yum install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-intl php-fpm php-mysql
PHP-FPMを設定
今回はApacheではなくNginxを使うので、php-fpmのインストールと設定が必要になります。
php-fpmのインストールはPHPのインストールと同時に行っています。
書きコマンドで/etc/php-fpm.d/www.confを開きます。
sudo vi /etc/php-fpm.d/www.conf
userとgroupの記述の部分をnginxに変更します。
user = nginx group = nginx
/etc/php-fpm.d/www.confを変更したら、自動起動の設定と起動のコマンドを実行します。
# 自動起動 sudo systemctl enable php-fpm # 起動 sudo systemctl start php-fpm
セッション保存先のパーミッションを変更
セッションの保存先のディレクトリのパーミッションを変更しないとエラーが起きたので、以下のコマンドを実行。
※人によってはしなくてもいいかも。
# 保存先へ移動 cd /var/lib/php # パーミッションを変更 sudo chown root:nginx session
Nginxの設定を変更
続いて、Nginxの設定を行います。
/etc/nginx/conf.dにdefault.confを作成して、下記のように記述します。
server { # ルートディレクトリを/var/www/htmlに設定 root /var/www/html; index index.php index.html index.htm; listen 80; server_name 192.168.1.11; # proxy from nginx to php-fpm location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params; } }
編集したら、下記のコマンドで設定を反映します。
sudo nginx -s reload
phpinfoが表示されるか確認
/var/www/htmlにinfo.phpを作成し、phpinfo()を記述します。
<?php //phpinfo表示 phpinfo();
ブラウザでhttp://192.168.1.11/info.phpにアクセスして、phpinfoが表示されたらOKです。
MariaDBインストール
今回はMySQLではなくMariaDBをインストールします。
MariaDBはMySQLと互換性があるので、実際に使う分にはMySQLと変わらず使えます。
インストール
YumコマンドでMariaDBをインストールします。
sudo yum install mariadb mariadb-server
設定ファイルを編集
まずはmy-small.cnfをコピーして、server.cnfを作り編集します。
# my-small.cnfファイルをコピーして、server.cnfを作る sudo cp -p /usr/share/mysql/my-small.cnf /etc/my.cnf.d/server.cnf # server.cnfを編集 sudo vi /etc/my.cnf.d/server.cnf
デフォルトの文字コードをutf-8にします。
[client] default-character-set = utf8 [mysqld] character-set-server = utf8
起動と初期設定
MariaDBを起動し、MariaDBの初期設定を行います。
# MariaDBを起動 sudo systemctl start mariadb # 初期設定コマンド実行 sudo /usr/bin/mysql_secure_installation
下記のような質問が出てくるので、画面に従って設定をしてください。
パスワードの設定以外はYを選択してかまいません。
# 何も入力しないでエンター Enter current password for root (enter for none): # Yを入力 Set root password?[Y/n] Y # 設定したいパスワードを入力 New password: # 入力したパスワードを再入力 Re-enter new password:
timezoneの設定
今度はデフォルトのタイムゾーンを設定します。
/usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfoの内容をSQL化して、MariaDBに流し込みます。
# timezoneのSQL化 /usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo > ~/timezone.sql # MariaDBにデータを流し込む mysql -u root -p -Dmysql < ~/timezone.sql
/etc/my.cnf.d/server.cnfを編集します。
sudo vi /etc/my.cnf.d/server.cnf
default-time-zone= Asia/Tokyoを追記します。
[mysqld] default-time-zone= Asia/Tokyo
MariaDBを再起動して完了です。
sudo systemctl restart mariadb
phpMyAdminを設置して確認
phpMyAdminをダウンロードして、/var/www/htmlに配置します。
http://192.168.1.11/phpMyAdminにアクセスして設定したrootのパスワードでログインできるか確認しましょう。
コメントを残す