現代の千利休を求めて

ゲームプログラマーのブログ

MENU

【第1回WordPress入門】LAMP環境を準備する【GCP】

どうも千利休です。
今回はWordPressのサーバを立てるための前段階の準備、LAMP環境を構築していきます。
GCPで立てますが、どこでも一緒だと思いますので参考になればと思います。

WordPressの必須環境

WordPressにはオリジナルである英語版と日本語版が存在しています。
今回は特別な理由もないので日本語版のものをダウンロードしてインストールしていきたいと思います。

環境の必須項目は下記です - PHPバージョン7以上 - MySQL バージョン 5.6 以上 または MariaDB バージョン 10.0 以上

となっております。 こちらの情報は逐次更新されるので https://ja.wordpress.org/#requirement こちらで最新情報を確認しましょう。

またWordPressは簡単に構築できる特性もあって非常にサイバー攻撃の対象になりやすい傾向にあります。 逐次更新があれば最新版を追うのがいいでしょう。

LAMP環境を整える

今回はLAMP環境から整えていきます。

  • CentOS7
  • Apatch
  • MariaDB
  • PHP

今回はGCPでからのCentOS7をインストールして開始します。

初期設定準備

# SEリナックスを無効化
vi /etc/sysconfig/selinux

# 変更
SELINUX=enforcing > SELINUX=disabled

ファイルの中身はこんな感じになる

//ファイルの中身はこのようになる
# 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 - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

設定を反映させるためにOS再起動

reboot

ファイアーウォールの設定をします 初期設定の場合はpublicゾーンにSSH接続のみ許可されているので httpとhttpsを追加で許可設定します。

firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --add-service=https --zone=public --permanent

設定を読み込みます

firewall-cmd --reload

設定が反映されているか確認して見ます。

firewall-cmd --list-services --zone=public

# 下記が表示される
dhcpv6-client http ssh https

Apachをインストール

Apatchをインストールします。

yum install httpd

これだけでOK 途中で依存関係のあるパッケージのインストールを求められますのでyを入れて許可してあげてください。

Apatchの設定を行います。

vi /etc/httpd/conf/httpd.conf

#ServerName www.example.com:80
↓
ServerName www.rikyu-wordpress.com:80

このファイルに初期の設定が入っています。 一応怖いのでサーバーネームだけ別のものに書き換えておきましょう。

Configがあってるかチェックします。

# service httpd configtest
Syntax OK

OKと出て入れば問題ありません。

httpdを起動させます。

systemctl start httpd.service

# 確認
systemctl list-units |grep httpd
httpd.service                                                       loaded active running   The Apache HTTP Server

このままだと再起動がかかった時にサービスが停止しますので自動起動するように修正します。

systemctl enable httpd.service

# 確認
systemctl list-unit-files | grep httpd
# 下記のように出ればOK
httpd.service                                 enabled

MariaDBをインストール

yum install mariadb-server mariadb

基本的に全てyで問題ないです。

デーモンを起動します。

systemctl start mariadb.service

確認します。

list-units |grep mariadb

# 下記のように出てればOK
mariadb.service
loaded active running   MariaDB database server

こちらも自動起動設定しときましょう。

systemctl enable mariadb.service

確認します

systemctl list-unit-files |grep mariadb
mariadb.service                               enabled

MariaDBのセキュリティセッティングをします

/usr/bin/mysql_secure_installation

下記のように進めればOK

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

ログインできるか試して見ましょう

mysql -h localhost -u root -p

先ほど入力したパスワードを入れてログインしましょう。 exitコマンドで終了です。

Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit
Bye

PHPをインストールする

子ここまできたらあと少しです。 PHPをインストールしましょう。

yum install php-mysql php php-gd php-mbstring

全てYで進めましょう。 インンストールできたらバージョンをチェックします。

php --version

 5以上なのでOK
PHP 5.4.16 (cli) (built: Nov  6 2016 00:29:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

httpdサービスを再起動します。

systemctl restart httpd.service

動作確認のためにphpファイルを作ります。

cd /var/www/html
echo 'test' > index.php

これでIPアドレスにアクセスすればこのような画面になって入れば 問題ありません。

以上がLAMP環境構築でした! GCPだとパッケージで簡単にできるのもありすが、 レガシーな方法も覚えとくと別のに移った時に役立ちますね。

次回はWordPressを立てていきたいと思います。
www.rikyu-sen.com