はじめに

前回の記事『CentOS7 on vagrant』の続き。

今回は,CentOS7上にWebサーバー環境の基本となるLAMP環境を整える。

環境

  • OS:Windows10Pro64bit
  • CPU:AMD A10-7850
  • メモリ 16.0GB デュアル-Channel DDR3
  • マザーボードASRock FM2A88X+ Killer

前提

  • Vagrantを使ってVirtualBox上にCentOS7をインストールしてること。

目次

  1. はじめに
  2. 環境
  3. 前提
  4. ミドルウェアをインストール
    1. PHP5.6の場合
      1. 必要なものインストール1
      2. 必要なものインストール2
      3. PHPのプラグインインストール
      4. 画像操作系インストール
      5. opcacheのインストール
      6. php.iniの設定
    2. MarinaDB
      1. 既存のSqlを削除
      2. 下ごしらえ
      3. インストール
      4. 設定ファイルをコピー
      5. 文字コード設定
      6. MariaDB サービス登録・起動
    3. PHP・MySql(MarinaDB)インストール後に必要になるかもしれない作業
      1. ファイヤーウォールの無効化
      2. SELinuxの無効化
      3. システムの起動と自動化
    4. まとめ

ミドルウェアをインストール

ここからPHPやMySQL等のミドルウェアをインストール・設定していく。

PHP5.6の場合

現在,インストールされているか,されているならバージョンはいくつかを以下のコマンドで確認

1
rpm -qa | grep php

入っていたらバージョンが、入っていないなら何も表示されない。

インストールには,基本的に下記を実行すると良い。

1
2
$#sudo yum install php
$# sudo yum install httpd

但し、これだと古いバージョンが入るので,EPELやRemi’s RPM等のリポジトリからインストールする。

PHPのバージョンはVer5.6が最新普及版だと思うので,このバージョンを選択。

次のバージョンであるVer7は,普及にはもう少しかかりそう。

1
$# yum install -y --enablerepo=remi,remi-php56 php

次に,いろいろパッケージやプラグイン類をインストールしていく。

何がどんな機能を提供しているのか,いまひとつ分ってないので取りあえず適当にインストール。

必要なものインストール1

1
2
3
$# yum install vim bash-completion wget curl lsof -y
$# yum install ansible docker-io -y
$# yum install yum-utils deltarpm -y

必要なものインストール2

1
$# yum install -y --enablerepo=epel,remi libmcrypt-devel libaio libaio-devel libmcrypt libtidy openssl-devel perl-DBI

PHPのプラグインインストール

1
$# yum install -y --enablerepo=remi,remi-php56 php-intl php-soap php-mcrypt php-mbstring php-gd php-devel php-odbc php-xml php-xmlrpc httpd-devel pcre-devel icu libicu-devel php-mysql php-mysqlnd php-pdo php-pear php-tidy

※a-blogインストールでの躓きぽイント

画像操作系インストール

1
2
$# yum install  -y --enablerepo=epel,remi,remi-php56 ImageMagick
$# yum install -y --enablerepo=epel,remi,remi-php56 php-pecl-imagick

opcacheのインストール

1
2
$# yum -y --enablerepo=epel,remi,remi-php56 install php-opcache.x86_64
$# yum -y --enablerepo=remi,remi-php56 install php-pecl-apcu php-pecl-mongo php-pecl-memcache php-pecl-memcached

php.iniの設定

php.iniは,PHPの設定ファイル。
これを正しく設定しないと,Webサーバーがうまく動かなかったりする。
CentOS7のphp.iniファイルは以下のパスにある。

1
$#vi /etc/php.ini

「vi」コマンドでエディタを起動してファイルを開き編集していく。
量が膨大なので設定箇所だけ以下に示す。
設定箇所はvimなら「/」で検索しながらがおすすめ。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//timezoneの設定
date.timezone = "Asia/Tokyo"

//Dynamic Extensionsに追記
extension=php_mbstring.dll

//コメントアウトを外して設定
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
mbstring.substitute_character = none
mbstring.func_overload = 0
mbstring.strict_detection = Off
;mbstring.http_output_conv_mimetype=

MarinaDB

続いて,データベースである「MarinaDB」をインストール。
通常は「MySQL」が使われるが,後継ソフトである「MarinaDB」が今後普及しそうなので,こちらを選択。

既存のSqlを削除

1
2
3
4
5
6
7
8
9
# yum remove -y mariadb mariadb-libs

# rpm -qa | grep -i "mariadb"
//※何も表示されなかったら OK

//他にMySql関係が入ってないか確認
# rpm -qa mysql*
//ディレクトリ削除
# rm -rf /var/lib/mysql

下ごしらえ

1
2
//GPG-KEYをインストール
rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

公式からリポジトリ設定を取得。
Vimでファイルを作成
http://downloads.mariadb.org/mariadb/repositories/

1
2
3
4
5
6
7
8
9
10
//リポジトリの設定変更
# vi /etc/yum.repos.d/mariadb.repo
# MariaDB 10.1 CentOS repository list - created 2016-09-30 03:37 UTC
# http://downloads.mariadb.org/mariadb/repositories/

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

インストール

1
yum -y install --enablerepo=mariadb MariaDB-common MariaDB-devel MariaDB-shared MariaDB-compat MariaDB-server MariaDB-client

設定ファイルをコピー

1
$ # cp -p /usr/share/mysql/my-small.cnf /etc/my.cnf.d/server.cnf

文字コード設定

1
2
3
4
5
6
vi /etc/my.cnf.d/server.cnf
[client]
default-character-set = utf8

[mysqld]
character-set-server = utf8

MariaDB サービス登録・起動

CentOS7でMarinaDBを起動しサービスに登録する。

1
2
$# systemctl start mysql.service
$# systemctl enable mysql.service

PHP・MySql(MarinaDB)インストール後に必要になるかもしれない作業

ファイヤーウォールの無効化

CentOS7では,デフォルトでファイヤーウォールが起動しており,外部からの通信を遮断したりしてるので,無効化する。
実環境で使うときは設定するなり,サードパティ入れるなりしたいといけないと思う。

1
2
3
4
//ファイアウォール停止
$# systemctl stop firewalld
//ファイアウォール自動起動解除
$# systemctl disable firewalld

SELinuxの無効化

SELinuxはファイヤーウォールとは別の,ホワイトリスト式のセキュリティソフトらしい。
開発中は,プログラムが動かなくなったり,細かく設定するのも面倒なので,無効化してしまう。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//SELinux状態確認
$# getenforce
//SELinux有効時の表示
Enforcing
//SELinux無効化
$# setenforce 0
//SELinux状態確認
$# getenforce
//SELinux無効時の表示
Permissive

//SELinux設定ファイル編集
$# vi /etc/sysconfig/selinux
SELINUX=enforcing

SELINUX=disabled ← システム起動時にSELinuxを無効化

システムの起動と自動化

1
2
3
4
5
$# systemctl start システム名.service //起動
$# systemctl enable システム名.service //自動起動登録
$# systemctl restart システム名.service //リスタート
$# systemctl status システム名.service //状態確認
$# systemctl stop システム名.service //停止

まとめ

VegrantでVM上にCeentOS7+LAMP環境を作成した。
これで,心置きなくWebサーバー環境が必要な開発も進められる。
さぁ,バリバリプログラミンするぞ~(←プロナマちゃん風に)