#はじめに
(1) OSインストールと初期設定でLEMPのうちの"L"は済みましたので、残りのE(Nginx)、M(MySQL)、P(PHP)を入れていきます。
はい、"MariaDB"ではなく"MySQL"です。
実は日本語全文検索に対応するため、MariaDBはソースからインストールする必要があったのですが、それがどうしてもうまく行かなくて。なのでパッケージでのインストールでもpluginで対応できるMySQLとしました。
#Nginx
公式ページのドキュメント http://nginx.org/en/linux_packages.html#stable のとおりの手順で入れていきます。
まずリポジトリファイルを作成します。
$ sudo vi /etc/yum.repos.d/nginx.repo
下記内容を記載します。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/[OS]/[OSRELEASE]/$basearch/
gpgcheck=0
enabled=1
[OS]は"rhel" / "centos"、[OSRELEASE]には"5" / "6" / "7"をそれぞれ指定、となっているので、具体的には
baseurl=http://nginx.org/packages/centos/7/$basearch/
となります。
あとはyumでインストールして、サービスを起動、自動起動の設定を行うだけ。
$ sudo yum install -y nginx
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
2018年6月時点では1.14.1-1がインストールされました。
ブラウザでデフォルトポートにアクセスして初期画面が表示されたらOKです。
初期画面が表示されない場合、firewallでhttp通信が許可されていない可能性があります。
$ systemctl status firewalld
[...]
Active: active (running) since ... (←firewall動作中)
[...]
$ sudo firewall-cmd --list-services --permanent
ssh dhcpv6-client
上記の場合、httpがサービスとして設定されていないので、下記コマンドで追加します。
$ sudo firewall-cmd --add-service=http --zone=public --permanent
success
確認。
$ sudo firewall-cmd --list-services --zone=public --permanent
ssh dhcpv6-client http
再度ブラウザでデフォルトポートにアクセスしてみてください。
MySQL
公式ページのドキュメント http://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html を参考に入れていきます。
まず http://dev.mysql.com/downloads/repo/yum/ のページから「Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package」のダウンロードページを表示し、下図のリンク先(=ダウンロードするrpmパッケージのURL)を確認します。
あとは
- そのrpmパッケージをダウンロード
- リポジトリをインストール
- そのリポジトリからMySQLをyumでインストール
- サービス起動
- サービス自動起動設定
でMySQLは入ります。
$ sudo wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
$ sudo yum localinstall -y mysql57-community-release-el7-8.noarch.rpm
$ sudo yum install -y mysql-community-server
$ sudo systemctl start mysqld
$ sudo systemctl enable mysqld
管理者ユーザーの初期パスワードを確認します。
$ sudo grep 'temporary password' /var/log/mysqld.log
2016-06-15T02:19:06.523104Z 1 [Note] A temporary password is generated for root@localhost: gd+yc.Gmf4eG
$
今回は"gd+yc.Gmf4eG"が初期パスワードのようです。初期パスワードでログインし、管理者ユーザーパスワードを変更します。
$ mysql -u root -p
Enter password:
[...]
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
Query OK, 0 rows affected (0.01 sec)
> exit
$
その後、
$ sudo mysql_secure_installation
でデータベースの各種初期設定を行います。管理者ユーザーパスワードは先ほど変更してますので、変更する必要はないですし、その他は基本'y|Y'で応答して行けばOKです。
PHP
remiリポジトリの追加
まずepelリポジトリをyumで追加。
$ sudo yum install -y epel-release
以下はsudoではうまく行かなかったので、管理者ユーザーで行いました。
$ su -
# rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
remiリポジトリを追加します。
$ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
以下が作成されていればOKです。
$ sudo ls /etc/yum.repos.d/remi* -l
-rw-r--r-- 1 root root 1177 12月 9 18:14 /etc/yum.repos.d/remi-php70.repo
-rw-r--r-- 1 root root 449 12月 9 18:14 /etc/yum.repos.d/remi-safe.repo
-rw-r--r-- 1 root root 2340 12月 9 18:14 /etc/yum.repos.d/remi.repo
PHP7インストール
PHP5.6にするか迷うところですけど、強気に7。
(5.6のサポートはあと1年チョイ後の2017/08/28までですので。)
$ sudo yum install -y --enablerepo=epel,remi-php70 php php-mbstring php-pear php-fpm php-mcrypt php-mysql php-gd php-ldap php-imap
$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
PHP-FPMの設定
「その設定は不要」と記載したページ http://satakeh.hatenablog.com/entry/2014/11/13/072048 もありますが、内容が難しいので大勢になびいて /etc/php.ini ファイルを下記のとおり修正します。
$ sudo vi /etc/php.ini
[...]
;cgi.fix_pathinfo=1 ←コメントアウト
cgi.fix_pathinfo=0
[...]
ApacheではなくNginxを入れましたので、ユーザー・グループを'apache'から'nginx'に変更します。
$ sudo vi /etc/php-fpm.d/www.conf
[...]
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
;user = apache ←コメントアウト
user = nginx
; RPM: Keep a group allowed to write in log dir.
;group = apache ←コメントアウト
group = nginx
[...]
###Nginxの設定
設定ファイルを下記のとおり修正します。
$ sudo vi /etc/nginx/conf.d/default.conf
server {
listen 80;
#server_name localhost;
#server_nameはうっかりして変更し忘れてると後々悩むこともあるため、きちんと設定します
server_name [hostname or ip address];
[...]
location / {
root /usr/share/nginx/html;
#index index.html index.htm;
index index.html index.htm index.php;
}
[...]
location ~ \.php$ {
#root html; うーん、何となく僕は変更してるんですが、このままでよいのかも?
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[...]
}
'-t'オプションで設定ファイルをチェックして、問題がなければnginxとphp-fpmをリスタートさせます。
$ sudo nginx -t
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm
動作確認用のphpページファイル作成。
$ sudo vi /usr/share/nginx/html/testphp.php
<?php
phpinfo();
?>
ブラウザで http://[hostname]/testphp.phpにアクセスして正常にページが表示されればOKです。