下記の環境で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/にアクセスし、下記のように設定
表示されたコマンドを実行
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です。
同時にインストールされた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を自動起動させる設定
sudo systemctl enable httpd
Apache自動起動の設定を確認
systemctl is-enabled httpd
「enabled」と表示されればOK
MariaDBのアンインストールとインストール
CentOS7、MariaDBのベースレポジトリは、バージョンが古くWordPressに対応していないため、最新版をインストールします。
MariaDB公式ウェブサイトを訪問
ダウンロードを選択してもいいのですが、沢山あってわからないので、repository configuration tool.を選ぶ
repository configuration tool.に直接いくなら下記から
環境に合わせて以下の選択を行い、レポジトリファイルの内容を表示させます。
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をインストール
yum -y install MariaDB-devel MariaDB-client MariaDB-server
yumの後にーyをつけることで、パッケージのインストール時に、質問に答えなくてよくなります。
インストールしたMariaDBを確認
yum list installed | grep MariaDB
次のように表示されたらOKです。
MariaDBの起動
systemctl start mariadb
MariaDBの起動確認
systemctl status mariadb
緑色で、activeと表示されれば、起動しています。
MariaDBを自動起動させる設定
systemctl enable mariadb
MariaDBの自動起動の設定を確認(「enabled」と表示されればOK)
systemctl is-enabled mariadb
MariaDBのセキュリティ確保
mysql_secure_installation
実行すると、以下のように設定ウィザードが起動します。
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で次に進みます。
root user without the proper authorisation.Set root password? [Y/n]
Set root password? [Y/n] <= yと入力
New password: <= DB管理者のパスワードを入力
Re-enter new password: <=パスワードを再度、入力
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を入力して匿名ユーザーを削除
ensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n]
yを入力しリモート環境からDBの管理者ユーザーでログインを無効化。
ただし、後でインストールするphpMyAdminでログインできるようになります。
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”を削除
… 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 [(none)]> show variables where variable_name='lower_case_table_names';
このように表示されたらOK(大文字と小文字を区別する設定)
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箇所あるので忘れずに
データベースパスワード設定
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 を入力し作成ボタンをクリック
WordPress導入
WordPressをダウンロードするためにwgetをインストール
yum install wget -y
設置したいディレクトリに移動
CentOSのhttpdのドキュメントルートは「/var/www/html」
cd /var/www/
WordPressをダウンロード
https://ja.wordpress.org/を訪問し、すべてのリソースを探す。
リソース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」とタイプして、行数を表示させる。
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>の間)に変更する
ファイルパーミッション変更
ファイルのパーミッションを確認して変更します。
下記の設定が基本です。
wp-config.php 600
その他のディレクトリ 705
その他のファイル 604
まずはWordPressのディレクトリを変更して、他のものをあとで変更します。
[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=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で使用する管理者を登録します。
wp-config.phpのパーミッションを600にする
[root@localhost fff]# chmod 600 wp-config.php