はじめに 前回の記事『CentOS7 on vagrant』の続き。 今回は,CentOS7上にWebサーバー環境の基本となるLAMP環境を整える。
環境
OS:Windows10Pro64bit
CPU:AMD A10-7850
メモリ 16.0GB デュアル-Channel DDR3
マザーボードASRock FM2A88X+ Killer
前提
Vagrantを使ってVirtualBox上にCentOS7をインストールしてること。
目次 はじめに 環境 前提 ミドルウェアをインストール PHP5.6の場合 必要なものインストール1 必要なものインストール2 PHPのプラグインインストール 画像操作系インストール opcacheのインストール php.iniの設定 MarinaDB 既存のSqlを削除 下ごしらえ インストール 設定ファイルをコピー 文字コード設定 MariaDB サービス登録・起動 PHP・MySql(MarinaDB)インストール後に必要になるかもしれない作業 ファイヤーウォールの無効化 SELinuxの無効化 システムの起動と自動化 まとめ
ミドルウェアをインストール ここからPHPやMySQL等のミドルウェアをインストール・設定していく。
PHP5.6の場合 現在,インストールされているか,されているならバージョンはいくつかを以下のコマンドで確認
入っていたらバージョンが、入っていないなら何も表示されない。
インストールには,基本的に下記を実行すると良い。
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ファイルは以下のパスにある。
「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 //※何も表示されなかったら OK //他に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 //リポジトリの設定変更 [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 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/selinuxSELINUX=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サーバー環境が必要な開発も進められる。 さぁ,バリバリプログラミンするぞ~(←プロナマちゃん風に)