Vagrant+VirtualBOX+CentOS7+Nginx+PHP5.4+MySQL5.6

CentOS7にて、cakephp1.3が動作する環境を構築するという忘備録です。ただしApacheではなく、最新のNginxにしたい。

前提

・Mac(macOS Sierra)
・VirtualBOX:インストール済
・Vagrant:インストール済

仮想サーバ環境構築

・vagrantで、CentOS7までは作成済み。
・vagrant ssh

(1) Nginxインストール

最新安定板は、こちらで確認 => http://nginx.org/
nginx.repoを手動で作成する。

$ vi /etc/yum/yum.reps.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

$ sudo yum -y --enablerepo=nginx install nginx
$ sudo systemctl enable nginx.service
$ sudo systemctl start nginx

Macプラウザから、動いているか確認 http://192.168.33.10/

ここまで楽勝

(2) php5.4 php-fpm

インストールしたてのNginxにて、rootディレクトリ確認してphp動かしてみる。
・設定ファイル: /etc/nginx/conf.d/default.conf
・rootディレクトリ: /usr/share/nginx/html
・phpinfo()を作ってアクセスしてみる。

まだ、php入れてないので、当然動かない。
phpを入れる。CentOS7はデフォルトでphp5.4が入るようです。

$ sudo yum install php php-fpm php-mbstring php-mysql php-gd php-mcrypt
$ php -v
PHP 5.4.16 (cli) (built: Nov  6 2016 00:29:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

$ sudo vi /etc/php.ini
date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8

続いて、php-fpm設定。新たにNginx設定ファイルを作る。

$ systemctl enable php-fpm.service
$ systemctl start php-fpm
$ cd /etc/nginx/conf.d/
$ cp default.conf php54.conf

以下の設定ファイルにしてみた。

$ vi php54.conf
server {
    listen   80;
    server_name php54.dev;

    index index.php index.html index.htm;
    set $root_path '/var/www';
    root $root_path;

    try_files $uri $uri/ @rewrite;

    location @rewrite {
        rewrite ^/(.*)$ /index.php?_url=/$1;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
    }

    location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
        root $root_path;
    }

    location ~ /\.ht {
        deny all;
    }
}
$ systemctl restart nginx php-fpm

忘れず、Mac本体のhostファイルに以下を追記する。

$ vi /etc/hosts
192.168.33.10   php54.dev

さっき作ったphpinfo.phpは、ルート/var/wwwに移動してね。
Macブラウザからアクセス。

http://php54.dev/phpinfo.php
タイムアウトで、繋がらない・・・・。

仮想サーバにて、確認してみる。

$ curl php54.dev/phpinfo.php
・・・・htmlコード(なんだか動いてるみたい)・・・・

ファイヤーウォールか?
Active: inactive (dead) にする

$ systemctl stop firewalld
$ systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
   Active: inactive (dead) since Thu 2017-08-24 12:41:37 UTC; 5s ago
  Process: 16622 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 16622 (code=exited, status=0/SUCCESS)

$ systemctl disable firewalld.service
$ systemctl is-enabled firewalld
disabled


繋がった!

*それでも繋がらない場合は、ブラウザキャッシュをクリアすると良いかも。

(3) MySQL5.6インストール

CentOS7には、既にmariadbが入っている可能性があるので削除する。

$ yum remove mariadb-libs
$ rm -rf /var/lib/mysql/

下記のサイトにて該当リボジトリを探す。(Red Hat Enterprise Linux)
https://dev.mysql.com/downloads/mysql/
ペンギンのと絵ころをクリックし、該当レポジトリを調べる。

Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package
(mysql57-community-release-el7-11.noarch.rpm)

レポジトリファイルは、MySQL5.7が有効になっているのでMySQL5.6に変更する。
yumでインストールする。

$ yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
$ yum repolist all
$ vi /etc/yum.repos.d/mysql-community.repo
# Enable to use MySQL 5.6
enabled=1
# Enable to use MySQL 5.7
enabled=0
$ yum install mysql mysql-devel mysql-server mysql-utilities

MySQLを起動

$ systemctl enable mysqld.service
$ systemctl start mysqld
$ mysql -uroot -p
mysql > show databases;

(4) adminerで繋げてみる

mariadbをアンイントールした時に外れたphp-mysql、その他必要なものを入れる。

$ yum install php-mysql php-gd php-pear

下記サイトにて最新バージョンを調べて、ルートディレクトリに直接ダウンロードしてしまう。
https://www.adminer.org/

$ cd /var/www
$ sudo wget https://github.com/vrana/adminer/releases/download/v4.3.1/adminer-4.3.1.php

Mac本体のブラウザからアクセスする。
http://php54.dev/adminer-4.3.1.php

以上です。

コメントを残す

役立つ
面白い

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です