広告

CentOS7.6にLAMP環境を整える

アップデートWEB
この記事は約17分で読めます。

下記の環境でWordPressを動かすための作業をしていきます。

環境

ホスト:macOS Mojava バージョン 10.14.5

ゲスト:CentOS7.6

VirtualBox:バージョン 5.2.30 r130521 (Qt5.6.3)

アップデート

root(管理者権限)でCentOS7にログイン

yum update –y

それなりに時間がかかります。

アップデート

php、Apacheのインストール

デフォルトの状態でPHPをyumから導入すると、PHP5.4と古いバージョンが導入されてしまいますので、Remiリポジトリを利用します。

https://rpms.remirepo.net/wizard/にアクセスし、下記のように設定

remi

表示されたコマンドを実行

EPELリポジトリ設定パッケージをインストール

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

途中でyを入力します。

Remiリポジトリ設定パッケージをインストール

 yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

途中でyを入力します。

yum-utilsパッケージをインストール

yum install yum-utils

途中でyを入力します。

リポジトリを有効に

yum-config-manager --enable remi-php73

アップデート

yum update

phpをインストール

yum install php

テストパッケージはインストールしません

インストールされたphpのバージョンを確認

php -v

次のように表示されていたらOKです。

php確認

同時にインストールされたApacheのバージョンを確認

なお、Apacheはコマンドでhttpdと打ち込みます。

httpd -v

Server version: Apache/2.4.6 ( CentOS )   と表示されていることを確認。

これでphp7.3.6とApache2.4.6がインストールされました。

Apacheを起動

sudo systemctl start httpd.service

何も表示されないのが正常です。

Apacheの起動状態を確認

sudo systemctl status httpd

緑色で、activeと表示されれば、起動しています。

Apache HTTP Server

Apacheを自動起動させる設定

sudo systemctl enable httpd

Apache自動起動の設定を確認

systemctl is-enabled httpd

「enabled」と表示されればOK

MariaDBのアンインストールとインストール

CentOS7、MariaDBのベースレポジトリは、バージョンが古くWordPressに対応していないため、最新版をインストールします。

MariaDB公式ウェブサイトを訪問

MariaDB Foundation - MariaDB.org

ダウンロードを選択してもいいのですが、沢山あってわからないので、repository configuration tool.を選ぶ

MariaDB

repository configuration tool.に直接いくなら下記から

MariaDB - Setting up MariaDB Repositories - MariaDB

環境に合わせて以下の選択を行い、レポジトリファイルの内容を表示させます。

1. Choose a Distro ・・・ CentOS

2. Choose a Release ・・・ CentOS 7 (x86_64)

3. Choose a Version ・・・ 10.3 [Stable]

選択する

viコマンドでレポジトリ用のファイルであるmariadb.repoファイルを新規作成

vi /etc/yum.repos.d/mariadb.repo

viの操作方法(必要最小限)

iキーで編集開始(インサート)

終了するときは「esc」キーを押して、終了コマンドを打つ

:q   保存しないで終了
:q!   保存しないで強制終了
:wq   保存後終了
:wq!  保存後強制終了

ウェブサイトに表示されたものをそのままコピーペーストし保存します。

macのターミナルでSSH接続できていれば、右クリックでペーストできます。

# MariaDB 10.3 CentOS repository list - created 2019-06-15 16:20 UTC
# http://downloads.mariadb.org/mariadb/repositories/ 
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

パッケージを確認します

yum list MariaDB*

利用可能なパッケージに、MariaDB-~~~~ 10.3~~~とあればOK

mariaDBチェック

MariaDBをインストール

yum -y install MariaDB-devel MariaDB-client MariaDB-server

yumの後にーyをつけることで、パッケージのインストール時に、質問に答えなくてよくなります。

インストールしたMariaDBを確認

yum list installed | grep MariaDB

次のように表示されたらOKです。

mariadbインストール後確認

MariaDBの起動

systemctl start mariadb

MariaDBの起動確認

systemctl status mariadb

緑色で、activeと表示されれば、起動しています。

mariaDB起動確認

MariaDBを自動起動させる設定

systemctl enable mariadb

MariaDBの自動起動の設定を確認(「enabled」と表示されればOK)

systemctl is-enabled mariadb

mariadb自動起動確認

MariaDBのセキュリティ確保

mysql_secure_installation

実行すると、以下のように設定ウィザードが起動します。

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):

設定していないためenterで次に進みます。

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]

Set root password? [Y/n] <= yと入力

New password: <= DB管理者のパスワードを入力

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を入力しリモート環境からDBの管理者ユーザーでログインを無効化。

ただし、後でインストールするphpMyAdminでログインできるようになります。

… 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を入力しテスト用のデータベース、”test”を削除

– 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を入力しtest_から始まるデータベースへの接続権限の削除

… Success!Cleaning up…

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

Thanks for using MariaDB!
[root@localhost ~]#

MariaDBの文字コード変更(設定ファイルを編集)

vi /etc/my.cnf.d/server.cnf

設定ファイルを開いたら、[server]のところに”character-set-server=utf8mb4”を追加

#
# These groups are read by MariaDB server.
# Use it for options that only the server (but not clients) should see
#
# See the examples of server my.cnf files in /usr/share/mysql/
#

# this is read by the standalone daemon and embedded servers
[server]
character-set-server=utf8mb4  <=追記

# this is only for the mysqld standalone daemon
[mysqld]

以下略

MariaDBを再起動

systemctl restart mariadb

MariaDBのstatusを確認

systemctl status mariadb

緑色で、activeと表示されれば、起動しています。

MariaDBにログイン

mysql -u root -p

パスワードを入力

文字コード確認

MariaDB [(none)]> show variables like 'char%';

このように表示されたらOK

mariadb文字コード

大文字小文字設定確認

MariaDB [(none)]> show variables where variable_name='lower_case_table_names';

このように表示されたらOK(大文字と小文字を区別する設定)

mariadb大文字小文字確認

MariaDBからログアウト

MariaDB [(none)]> exit;

phpMyAdminのインストール

yum -y install --enablerepo=remi,remi-php73 phpMyAdmin

インストール

phpMyAdminの設定

config.inc.phpに、暗号化用のパスフレーズを設定

vi /etc/phpMyAdmin/config.inc.php

ファイルの先頭のあたりに、以下の行があります。

/**
* This is needed for cookie based authentication to encrypt password in
* cookie. Needs to be 32 chars long.
*/
$cfg['blowfish_secret'] = '********************************'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

$cfg[‘blowfish_secret’]」の値に、32桁以上のパスフレーズがあることを確認

無い場合は入れ込みます。

アクセス権に関する設定

vi /etc/httpd/conf.d/phpMyAdmin.conf

16行目と30行目にある「Require local」の下に行を追加し、以下のように記述する

# Apache 2.4

Require local

Require all granted

※2箇所あるので忘れずに

phpmyadmin設定

データベースパスワード設定

MariaDBにログイン

mysql -u root -p

パスワードを入力

MariaDB [(none)]> update mysql.user set password=password(‘rootパスワード入力’) where user = ‘root’;

となりますので、パスワードがaaaなら

MariaDB [(none)]> update mysql.user set password=password('aaa') where user = 'root';

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit;

と設定。

各種リスタートする

[root@localhost ~]# systemctl restart mariadb
[root@localhost ~]# systemctl restart network
[root@localhost ~]# systemctl restart NetworkManager
[root@localhost ~]# systemctl restart httpd

ブラウザで、http://192.168.56.101/phpmyadmin/にアクセスしphpmyadminが開けたら完了です。

192.168.56.101は、CentOS、enp0s8、IPv4で設定した値です。

ブラウザでphpmyadminにログインしてください。

この通りにしていれば、phpmyadminのIDは[root]パスワードは[aaa]です。

WordPressで使用するデータベースを作成する

新規作成を選択

データベース設定

データベース名 database1 を入力し作成ボタンをクリック

データベース1

WordPress導入

WordPressをダウンロードするためにwgetをインストール

yum install wget -y

wgetインストール

設置したいディレクトリに移動

CentOSのhttpdのドキュメントルートは「/var/www/html」

cd /var/www/

WordPressをダウンロード

https://ja.wordpress.org/を訪問し、すべてのリソースを探す。

wordpressすべてのリソース

リソースhttps://ja.wordpress.org/download/releases/のところにあります。

最新版のtar.gzのところで右クリックして、リンクを調べる

クリックしてダウンロードしない

右クリック

今回は、https://ja.wordpress.org/wordpress-5.2.1-ja.tar.gz

次のようにコマンドを入力

wget https://ja.wordpress.org/wordpress-5.2.1-ja.tar.gz

展開

tar zxvf wordpress-5.2.1-ja.tar.gz

設置するディレクトリ名を変更

「wordpress」というディレクトリ名を「fff」というディレクトリ名に変更

mv wordpress fff

fffディレクトリの所有者をapache、所有グループをapacheに変更

chown -R apache.apache fff

変更されているか確認

/var/www/の中にあるものは、cgi-bin fff html wordpress-5.2.1-ja.tar.gzの4つ

/var/www/fff/の中には、index.phpなどwordpressのものが入っています。

確認

apacheのルートディレクトリ設定

vi /etc/httpd/conf/httpd.conf

コマンドモードで「:set number」とタイプして、行数を表示させる。

vi 行数表示

119行 DocumentRoot “/var/www/html” を DocumentRoot “/var/www/fff”

131行 <Directory “/var/www/html”> を <Directory “/var/www/fff”>

151行 AllowOverride None を AllowOverride All

(<Directory “/var/www/fff”>と</Directory>の間)に変更する

ファイルパーミッション変更

ファイルのパーミッションを確認して変更します。

下記の設定が基本です。

.htaccess 606
wp-config.php 600
その他のディレクトリ 705
その他のファイル 604

まずはWordPressのディレクトリを変更して、他のものをあとで変更します。

なお、WordPressをインストールする時、エラーになることがあるので、ローカルだしってことで、フルアクセスOKな777にしてしまうのもアリです。
また、上手くインストールできなかった時は、CentOS自体を再起動してみましょう。
[root@localhost www]# chmod 705 fff
[root@localhost www]# ls -l

パーミッション変更

次に、ディレクトリ、ファイルのパーミッションを変更します。

//ディレクトリ配下の すべてのファイル/ディレクトリの権限を変更
find . -exec chmod 777 {} +
// 現在のディレクトリ配下のディレクトリの権限を一度に変更する
find . -type d -exec chmod 705 {} +
// 現在のディレクトリ配下のファイルの権限を一度に変更する
find . -type f -exec chmod 604 {} +

こうなので、次のようにしました。

パーミッション変更

確認します。

パーミッション確認

Apacheリスタート

systemctl restart httpd

このままだと、ファイル wp-config.php に書き込めませんでした。というエラーが出ます。

ファイル wp-config.php に書き込めませんでした。というエラー

このエラーの原因は、パーミッションかSELinuxによるものです。

SELinuxの設定変更

vi /etc/selinux/config

selinux変更

「SELINUX=enforcing」というのは有効とする記述なので、この部分を「SELINUX=disabled」に変更して、SELinuxを無効にします。

もし、SELinuxを無効にする前にアクセスしてしまったら、一度ディレクトリを削除してWordPressを解凍するところから、やり直します。

ディレクトリ削除のコマンド

rm -rf fff

一度、全部再起動しておきます。

[root@localhost ~]# systemctl restart mariadb 
[root@localhost ~]# systemctl restart network 
[root@localhost ~]# systemctl restart NetworkManager 
[root@localhost ~]# systemctl restart httpd

WordPressインストール

セットアップ

データベース名は wordpress

ユーザー名は root (データベースのユーザー名)

パスワードは aaa (データベースのパスワード)

データベースホストは localhost (初期設定のまま)

テーブルプレフィックスは wp_ (初期設定のまま)

でインストールします。

wordpressインストール

次に、WordPressで使用する管理者を登録します。

最後に、パーミッションを変更することをお忘れなく!

wp-config.phpのパーミッションを600にする

[root@localhost fff]# chmod 600 wp-config.php