LoginSignup
1
4

More than 5 years have passed since last update.

php仮想環境構築(php7 + Nginx + MariaDB)

Last updated at Posted at 2017-04-06

PHP7の環境構築手順

事前準備

vagrantとvirtualboxをインストール

Vagrantの公式サイトからインストーラをダウンロードする
https://www.vagrantup.com/downloads.html

VirtualBoxの公式サイトからインストーラをダウンロードする
https://www.virtualbox.org/wiki/Downloads

VirtualBoxへBoxの追加

まずは、使用したいOSを選択する。
http://www.vagrantbox.es/
または
https://app.vagrantup.com/boxes/search
使用するBOXが決まったら、以下のようにする

vagrant box add VM名 boxファイルURL
↓
EX)こんなかんじ
vagrant box add boxes-centos6.4 https://github.com/2creatives/vagrant-centos/releases/download/v6.4.2/centos64-x86_64-20140116.box

本環境は、上記のBOXを使います

vagrant box list でBOXの一覧を表示する
listに追加されていることを確認したら、Vagrantfileの作成を行います。

Vagrantfile作成および編集

vagrant init Box名
EX)↓
vagrant init boxes-centos6.4

これでVagrantfileが作成されるので、編集を行います。
※vagrantとLocalを同期させたいときは:
vagrantとlocalを同期させる方法

vim Vagrantfile
※ vimが入っていなければ、viでもエディタ編集でも可です。
※ エディタでも可です。

開いたら、
:set nu
で行番号を表示します。

29行目にある

Vagrantfile.
#config.vm.network "private_network", ip: "192.168.33.10"

#のコメントアウトをはずします。
xキーで削除できます。

できたら、Shiftを押しながらZキーを2回押す。

これができたら、
vagrant up
とコマンドを叩き、仮想環境を起動させます。

ここまでできたら、
windowsは、teratermなどでsshする
MACは、ターミナルからvagrant sshする
※ユーザは、vagrant
 パスフレーズも、vagrant

仮想環境内に入ったら、
sudo suを実行して、rootユーザに変更する
[vagrant@localhost ~]$ sudo su
SELINUXをdisabledに変更しておく
[root@localhost vagrant]# vi /etc/selinux/config
以下の記述に変更する
SELINUXを無効にしておく

config.
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

CentOSの日本語化を行う

以下のコマンドを叩く
[root@localhost vagrant]# yum -y groupinstall "Japanese Support"
スクリーンとキーボードの日本語化
[root@localhost vagrant]# vi /etc/sysconfig/i18n
以下のように変更を行う

LANG="ja_JP.UTF-8"
LC_CTYPE="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"

日本語キーボードを利用している場合は、続いて以下を実施します
[root@localhost vagrant]# vi /etc/sysconfig/keyboard

KEYTABLE="jp106"
MODEL="jp106"
LAYOUT="jp"
KEYBOARDTYPE="pc"

マシンをリブートする
reboot

仮想環境の再起動がかかるので、少し待ってから
SSHで再度ログインする

先に、yumをアプデを行う。(ちょっと長い)
yum -y update

いよいよLNMP環境の構築

rootユーザに変更する。
パスワードは、vagrant
sudo suでも可

MariaDBインストール

MariaDBのPGP keyをインストール

[root@localhost vagrant]# rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

その後、yum.repos.dの配下にmariadb.repoを作成する

[root@localhost vagrant]# vi /etc/yum.repos.d/mariadb.repo

以下を記載

mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

※baseurlは、たまに参照先が404のことがあるので、その場合は、ほかのリポジトリを参照させる

MariaDBをインスコする前に綺麗にしておく
[root@localhost vagrant]# rpm -e --nodeps mysql-libs
MariaDBをyumでインストール
[root@localhost vagrant]# yum install -y MariaDB-devel MariaDB-client MariaDB-server

MariaDBを起動させてみる
[root@localhost vagrant]# /etc/init.d/mysql start
Starting MySQL. SUCCESS!

サクセスがでたらOK

できたら、rootパスワードを設定します
/usr/bin/mysqladmin -u root password 'new-password'

EX)
/usr/bin/mysqladmin -u root password 'root'

設定したらさっそくrootユーザでログインする
mysql -u root -p
次にパスワード聞かれる
root
今回は、rootユーザのパスワードをrootに設定
これでOK

自動起動を設定しておく
chkconfig mysql on

ユーザ作成や権限付与はこちら:
ローカル環境のMariaDBにユーザ作成と権限を付与する時

仮想環境にあるmariadbにダンプファイルをインポートしたい場合は、こちら:
仮想環境(vagrant + virtualbox)にあるmariadbにダンプファイルをインポートする

Nginxのインストール

以下を叩く
[root@localhost vagrant]# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

コピーしておく
[root@localhost vagrant]# cp -p /etc/yum.repos.d/nginx.repo /etc/yum.repos.d/nginx.repo.org

設定編集
[root@localhost vagrant]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/nginx.repo

nginxをインストール
[root@localhost vagrant]# yum -y --enablerepo=nginx install nginx

バージョン確認
[root@localhost vagrant]# nginx -v

Nginxのconfファイル
/etc/nginx/nginx.confの31行目に以下をインクルードする記述があるので、環境ごとに読み込ませる必要がある場合は、
/etc/nginx/conf.dの配下にデプロイする(v.conf)

v.confは、後に具体例を記載します(TODO)

php7をインストール

[root@localhost vagrant]# rpm --import http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6

[root@localhost vagrant]# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

[root@localhost vagrant]# yum -y update epel-release

[root@localhost vagrant]# cp -p /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.org

[root@localhost vagrant]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo

[root@localhost vagrant]# rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

[root@localhost vagrant]# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

[root@localhost vagrant]# yum -y update remi-release

例えば、以下とか(適当)
[root@localhost vagrant]# yum -y --enablerepo=remi-php70,epel install php-fpm php-gd php-devel php-gmp php-mbstring php-mcrypt php-opcache php-pdo php-pear-MDB2-Driver-mysqli php-pecl-memcached php-pecl-msgpack php-xml php-phpunit-PHPUnit php-pecl-xdebug

その会社の開発標準であわせる(偉い人に聞く)

BC-MATHを入れる場合は、以下も実行しておく
[root@localhost vagrant]# rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@localhost vagrant]# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
[root@localhost vagrant]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
[root@localhost vagrant]# yum -y install --enablerepo=remi,remi-php70 php-bcmath

[root@localhost vagrant]# php -v
PHP 7.0.17 (cli) (built: Mar 14 2017 15:23:16) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Xdebug v2.5.1, Copyright (c) 2002-2017, by Derick Rethans
with Zend OPcache v7.0.17, Copyright (c) 1999-2017, by Zend Technologies

php-fpmとnginxの設定を行う

socketで接続

念のため、コピーしておく
[root@localhost vagrant]# cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.org
[root@localhost vagrant]# vi /etc/php-fpm.d/www.conf

今回は、nginxとphp-fpmとの接続に、UNIX socketを指定してみる

以下、6行を見つけて書き換える

user = nginx
group = adm
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

再起動
[root@localhost vagrant]# /etc/rc.d/init.d/php-fpm restart

再起動を行うと初回の場合、
Stopping php-fpm:[FAILED]となるが、もともと動いてないものを
ストップするわけなので、気にしない

再起動することにより、
/var/run/php-fpmのディレクトリにphp-fpm.sockが作成される

所有者を変更しておく
[root@localhost vagrant]# chown nginx:nginx /var/run/php-fpm/php-fpm.sock

(別途入れる方)xdebugのインストール

[root@localhost vagrant]# yum -y install --enablerepo=remi-php70 php-devel php-pear
(動かなかったら --disableplugin=priorities これもinstallと--enablerepoの間に追加してみる)
--enablerepo=remi-php70ここが大事こいつを入れないとphp5.6のやつを見に行こうとしてエラーになるはず

sudo pecl install xdebug
〜(略)〜
Build process completed successfully
Installing '/usr/lib64/php/modules/xdebug.so'
install ok: channel://pecl.php.net/xdebug-2.3.2
configuration option "php_ini" is not set to php.ini location
You should add "zend_extension=xdebug.so" to php.ini

xdebugは、インストール完了後に、エクステンションのパスが出力されるので
必ずメモしておく

※今回の場合は、/usr/lib64/php/modules/xdebug.soこれである

次は、インストールしたXdebugを有効化します。

[root@localhost vagrant]# vi /etc/php.ini

以下を追記する。(一例です,記載する箇所は、お好きなところで)
[xdebug]
zend_extension="/usr/lib64/php/modules/xdebug.so"
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_host=10.0.2.2
xdebug.remote_port=9000

php.iniでXdebugのエントリが表示されれば有効化完了です。
[root@localhost vagrant]# php -i | grep xdebug
xdebug
xdebug support => enabled
〜(略)〜

vagrantとeclipseの設定方法は、こちら:
vagrantのXdebugでEclipseからデバッグする

自動起動設定

nginxの自動起動設定
chkconfig --add nginx
chkconfig nginx on

php-fpmの自動起動設定
chkconfig php-fpm on

以上が環境設定です。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4