EC-CUBE4, EC-CUBE3, WordPress のお問い合わせ・お見積り依頼はこちら

【Vagrant】CentOS7のLAMP環境を構築する

概要

VagrantにCentOS7のLAMP環境を構築する手順を紹介いたします。
紹介すると言うよりも、次回自分が改めて構築するときに忘れないようにするため程度のものなので内容の精度に期待はしないでください…。
また、設定してたほうが良いものやインストールしてたほうが良いものなども構築手順に含めておきます。

前提
VagrantとVirtualboxはインストール済み。
MacOSでの作業になります。

Vagrantの初期化等

BOX追加

CentOS7のボックスを仕入れます。

vagrant box add CentOS7 https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box

初期化

任意ディレクトリ

mkdir ~/vagrant/
mkdir ~/vagrant/CentOS7
cd ~/vagrant/CentOS7
vagrant init CentOS7

Vagrantfile編集

IPアドレスの設定を有効にしてあげてください。

# ネットワーク
config.vm.network "private_network", ip: "192.168.33.10"

httpdのインストールが終わり、同期フォルダの設定が必要な場合は以下のsynced_folderの設定も有効にする。

# ドキュメントルートを同期フォルダにする ※この設定はhttpdのインストールが終わってからやる
config.vm.synced_folder "~/project/vagrant_data", "/var/www/html", owner: "apache", group: "apache", mount_options: ["dmode=777", "fmode=777"]

起動

作成したディレクトリ内で実行する

vagrant up

再起動したいとき

Vagrantfileをいじったあとに再起動をしたいときは以下のコマンドを実行する

vagrant halt
vagrant provision
vagrant up

CentOS7設定

rootユーザで作業をすること

sudo su -

アップデート

yum -y update

Vimインストール

インストール

yum -y install vim-enhanced

エイリアス設定

echo alias vi='vim' >> /etc/profile
source /etc/profile

時刻同期

chronyインストール

yum install -y chrony

chronyサービス登録

systemctl enable chronyd

enableかどうかを確認

systemctl list-unit-files -t service | grep chronyd

同期サーバを日本のサーバにする

vim /etc/chrony.conf
server ntp.nict.jp iburst
server ntp1.jst.mfeed.ad.jp iburst
server ntp2.jst.mfeed.ad.jp iburst
server ntp3.jst.mfeed.ad.jp iburst

タイムゾーンを日本時間に設定

timedatectl set-timezone Asia/Tokyo

chronyを再起動

systemctl start chronyd

ファイアーウォールを止める

ローカル開発環境でファイアーウォールの影響を受けたくないため。

止める

systemctl stop firewalld

サービスを無効にする

systemctl disable firewalld

無効になったかを確認

systemctl list-unit-files -t service | grep firewalld

nkfで日本語対応

nkfインストール

cd /tmp
wget "http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnkf%2F59912%2Fnkf-2.1.3.tar.gz" -O nkf-2.1.3.tar.gz
tar zxvf nkf-2.1.3.tar.gz
cd nkf-2.1.3
make && make install
rm -rf nkf-2.1.3*
ln -s /usr/local/bin/nkf /usr/bin/nkf

日本語関連パッケージのインストール

yum -y install ibus-kkc vlgothic-*

システム文字列セット変更

localectl set-locale LANG=ja_JP.UTF-8
source /etc/locale.conf 

各リポジトリを登録

RPEL

yum -y install epel-release

Remi

yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

httpd関連インストール

インストール

yum -y install openssl-devel
yum -y install httpd httpd-devel mod_ssl

初期設定

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.old
vim /etc/httpd/conf/httpd.conf

ネットワークマウントやNFSマウントされたドキュメントルートでは、
静的ファイルへの変更が反映されなかったりするので以下の設定をしておく

EnableMMAP off
EnableSendfile off

起動

systemctl start httpd

サービス登録

systemctl enable httpd

登録確認

systemctl list-unit-files -t service | grep httpd

PHP7関連インストール

本体インストール

yum -y install --enablerepo=remi,remi-php71 php

関連モジュールインストール

yum -y install --enablerepo=remi,remi-php71 php-devel php-mbstring php-mysqlnd php-pdo php-gd php-pgsql php-zlib php-common php-xml php-mcrypt php-mysqli php-soap php-xml php-pear

php.ini設定

cp /etc/php.ini /etc/php.ini.old

# タイムゾーン設定
sed -i "s/;date.timezone =/date.timezone = 'Asia\/Tokyo'/" /etc/php.ini

# mbstring系の設定
sed -i "s/;mbstring.language = Japanese/mbstring.language = Japanese/" /etc/php.ini
sed -i "s/;mbstring.internal_encoding =/mbstring.internal_encoding = UTF-8/" /etc/php.ini
sed -i "s/;mbstring.http_input =/mbstring.http_input = UTF-8/" /etc/php.ini

サービス登録

systemctl restart httpd
systemctl enable httpd

composer インストール

インストール

cd /tmp && curl -s http://getcomposer.org/installer | php

コマンド化

mv composer.phar /usr/local/bin/composer

確認

composer -V

MariaDB(MySQL)をインストール

インストール

yum install mariadb-server

サービス登録

systemctl enable mariadb
systemctl start mariadb

登録確認

systemctl list-unit-files -t service | grep mariadb

rootパスワード設定

mysql_secure_installation

Enter current password for root (enter for none):(何も入力せずEnter)
Set root password? [Y/n] Y
New password: パスワードを入力
あとはY

ログインできるか確認

mysql -u root -p

phpMyAdminのインストール

インストール

yum -y install --enablerepo=remi,remi-php71 phpMyAdmin

VirtualHost設定

cp /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.old
vim /etc/httpd/conf.d/phpMyAdmin.conf

追加する

<VirtualHost *:80>
    ServerName phpmyadmin.localhost.jp
    DocumentRoot /usr/share/phpMyAdmin
    # phpMyAdmin専用のログを出力するようにする
    ErrorLog /var/log/httpd/phpMyAdmin/error_log
    CustomLog /var/log/httpd/phpMyAdmin/access_log combined env=!no_log
    <Directory "/usr/share/phpMyAdmin">
        Options All
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

ログディレクトリ

mkdir /var/log/httpd/phpMyAdmin

再起動

apachectl restart

ホストOSのブラウザから使えるようにhostsの設定をする

Vagrant内ではなくホストの方で操作

sudo vim /etc/hosts
192.168.33.10 phpmyadmin.localhost.jp

http://phpmyadmin.localhost.jp/ から phpMyAdmin が開けるはず

十分作りきれたと思いますので、BOXをパッケージ化しましょう

BOX配布すればこの環境を誰でも使用できる…!はずです。

vagrant package --output CentOS7.box

Vagrant環境にサイト構築

virtualhostの設定を以下の通りに

vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/var/www/html"
    ServerName localhost.jp
    <Directory "/var/www/html">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

httpdを再起動

systemctl restart httpd

ホストOSのブラウザから使えるようにhostsの設定をする

Vagrant内ではなくホストの方で操作

sudo vim /etc/hosts
192.168.33.10 localhost.jp

Vagrantの共有フォルダを設定したパスにサイトのソースコードを置けば
http://localhost.jp/ でサイトを表示することができます。

以上です。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA