どうも千利休です。
今回は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