忍者ブログ

ブランクがあるインフラエンジニアの備忘録

サーバ構築のメモ

LAMPサーバー(WordPress)構築

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

LAMPサーバー(WordPress)構築

◇本稿の構成
 前稿のHTTPSサーバーと同じ構成です。DNSサーバーとクライアントも同様です。本稿はHTTPSサーバーを構築済みであることを前提としています。
 前稿を終わらせていない場合は先ずはそちらを終了してください。
◇LAMPサーバーでWordPressを構築
・WordPressのダウンロード
 先ずはWordPressのダウンロードを行います。latest-ja.tar.gzというファイル名で最新版のWordPressをダウンロード出来ます。
[root@web1 ~]# cd /var/www/html/
[root@web1 html]# curl -O https://ja.wordpress.org/latest-ja.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 20.9M  100 20.9M    0     0   182k      0  0:01:57  0:01:57 --:--:--  231k
・ダウンロードファイルの展開と所有権の設定
[root@web1 html]# tar xzf latest-ja.tar.gz
[root@web1 html]# chown -R apache:apache wordpress/
[root@web1 html]# chmod +w -R /var/www/html/
・PHPをインストール。
[root@web1 ~]# dnf install -y php
(略)
インストール:
 php                   x86_64      8.0.13-1.el9            appstream       10 k
依存関係のインストール:
 nginx-filesystem      noarch      1:1.20.1-10.el9         appstream       12 k
 php-common            x86_64      8.0.13-1.el9            appstream      682 k
弱い依存関係のインストール:
 php-cli               x86_64      8.0.13-1.el9            appstream      3.1 M
 php-fpm               x86_64      8.0.13-1.el9            appstream      1.6 M
 php-mbstring          x86_64      8.0.13-1.el9            appstream      472 k
 php-opcache           x86_64      8.0.13-1.el9            appstream      512 k
 php-pdo               x86_64      8.0.13-1.el9            appstream       88 k
 php-xml               x86_64      8.0.13-1.el9            appstream      138 k
トランザクションの概要
================================================================================
インストール  9 パッケージ
(略)
インストール済み:
  nginx-filesystem-1:1.20.1-10.el9.noarch    php-8.0.13-1.el9.x86_64
  php-cli-8.0.13-1.el9.x86_64                php-common-8.0.13-1.el9.x86_64
  php-fpm-8.0.13-1.el9.x86_64                php-mbstring-8.0.13-1.el9.x86_64
  php-opcache-8.0.13-1.el9.x86_64            php-pdo-8.0.13-1.el9.x86_64
  php-xml-8.0.13-1.el9.x86_64
完了しました!
・WordPressに必要なライブラリのインストール
[root@web1 ~]# dnf install -y php-mysqlnd php-gd
メタデータの期限切れの最終確認: 0:05:37 時間前の 2022年06月12日 17時42分19秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ         Arch          バージョン             リポジトリー     サイズ
================================================================================
インストール:
 php-gd             x86_64        8.0.13-1.el9           appstream         46 k
 php-mysqlnd        x86_64        8.0.13-1.el9           appstream        155 k
(略)
インストール済み:
  php-gd-8.0.13-1.el9.x86_64           php-mysqlnd-8.0.13-1.el9.x86_64
完了しました!
・Apacheの再起動
 PHPを有効にするためにApacheの再起動を行います。
[root@web1 ~]# systemctl restart httpd
・MySQL代替のMariaDBをインストールする。
 CentOS7以降、MySQLに相当するデータベースにMariaDBという派生データベースが提供されているので、MariaDBを使います。
[root@web1 ~]# dnf install -y mariadb mariadb-server
メタデータの期限切れの最終確認: 0:00:07 時間前の 2022年06月12日 17時53分45秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ                    Arch      バージョン          リポジトリー サイズ
================================================================================
インストール:
 mariadb                       x86_64    3:10.5.13-2.el9     appstream    1.6 M
 mariadb-server                x86_64    3:10.5.13-2.el9     appstream    9.4 M
依存関係のインストール:
 mariadb-common                x86_64    3:10.5.13-2.el9     appstream     35 k
 mariadb-connector-c           x86_64    3.1.13-3.el9        appstream    198 k
 mariadb-connector-c-config    noarch    3.1.13-3.el9        appstream     11 k
 mariadb-errmsg                x86_64    3:10.5.13-2.el9     appstream    195 k
 mysql-selinux                 noarch    1.0.4-2.el9         appstream     36 k
 perl-DBD-MariaDB              x86_64    1.21-15.el9         appstream    152 k
 perl-File-Copy                noarch    2.34-479.el9        appstream     30 k
 perl-Sys-Hostname             x86_64    1.23-479.el9        appstream     27 k
弱い依存関係のインストール:
 mariadb-backup                x86_64    3:10.5.13-2.el9     appstream    6.4 M
 mariadb-gssapi-server         x86_64    3:10.5.13-2.el9     appstream     21 k
 mariadb-server-utils          x86_64    3:10.5.13-2.el9     appstream    215 k
トランザクションの概要
================================================================================
インストール  13 パッケージ
(略)
インストール済み:
  mariadb-3:10.5.13-2.el9.x86_64
  mariadb-backup-3:10.5.13-2.el9.x86_64
  mariadb-common-3:10.5.13-2.el9.x86_64
  mariadb-connector-c-3.1.13-3.el9.x86_64
  mariadb-connector-c-config-3.1.13-3.el9.noarch
  mariadb-errmsg-3:10.5.13-2.el9.x86_64
  mariadb-gssapi-server-3:10.5.13-2.el9.x86_64
  mariadb-server-3:10.5.13-2.el9.x86_64
  mariadb-server-utils-3:10.5.13-2.el9.x86_64
  mysql-selinux-1.0.4-2.el9.noarch
  perl-DBD-MariaDB-1.21-15.el9.x86_64
  perl-File-Copy-2.34-479.el9.noarch
  perl-Sys-Hostname-1.23-479.el9.x86_64
完了しました!
・MariaDBの起動とサービスの設定
[root@web1 ~]# systemctl start mariadb.service
[root@web1 ~]# systemctl is-active mariadb.service
active
[root@web1 ~]# systemctl enable mariadb.service
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@web1 ~]# systemctl is-enabled mariadb.service
enabled
・firewalldの設定
[root@web1 ~]# firewall-cmd --add-service=mysql --permanent
success
[root@web1 ~]# systemctl restart firewalld.service
[root@web1 ~]# systemctl is-active firewalld.service
active
・SELinuxの設定と確認
[root@web1 ~]# setsebool -P mysql_connect_any on
[root@web1 ~]# setsebool -P selinuxuser_mysql_connect_enabled on
[root@web1 ~]# getsebool -a | grep mysql_connect
mysql_connect_any --> on
mysql_connect_http --> off
selinuxuser_mysql_connect_enabled --> on
・MariaDBの初期設定
 パスワードの設定などの初期設定を行います。
[root@web1 ~]# 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
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none): ←そのままEnterキー。
Switch to unix_socket authentication [Y/n]  ←そのままEnterキー。
Enabled successfully!
Reloading privilege tables..
 ... Success!
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] Y ←Y入力後Enterキー。
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] ←以降全ての選択肢でEnterキー。
(略)
・文字コードの設定
 日本語環境でWordPressを利用する場合、文字コードを統一する必要があります。WordPressの既定では utf8mbfを使用している為、MariaDBの文字コードも合わせましょう。
[root@web1 ~]# cp -p /etc/my.cnf.d/mariadb-server.cnf{,.org}
[root@web1 ~]# vi /etc/my.cnf.d/mariadb-server.cnf
(略)
[mysqld]
(略)
pid-file=/run/mariadb/mariadb.pid
character-set-server=utf8mb4 #←[mysqld]末尾に左記の行を追加
[root@web1 ~]# cp -p /etc/my.cnf.d/client.cnf{,.org}
[root@web1 ~]# vi /etc/my.cnf.d/client.cnf
[client]
default-character-set = utf8mb4 #←[client]末尾に左記の行を追加
・MariaDBの再起動
 設定を反映させる為にMariaDBの再起動を行います。
[root@web1 ~]# systemctl restart mariadb.service
[root@web1 ~]# systemctl is-active mariadb.service
active
・文字コードの確認
[root@web1 ~]# mysql -p
Enter password: ←作成したrootのパスワードを入力します。
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.13-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show variables like 'char%';  ←文字コードの確認
+--------------------------+------------------------------+
| Variable_name            | Value                        |
+--------------------------+------------------------------+
| character_set_client     | utf8mb4                      |
| character_set_connection | utf8mb4                      |
| character_set_database   | utf8mb4                      |
| character_set_filesystem | binary                       |
| character_set_results    | utf8mb4                      |
| character_set_server     | utf8mb4                      |
| character_set_system     | utf8                         |
| character_sets_dir       | /usr/share/mariadb/charsets/ |
+--------------------------+------------------------------+
8 rows in set (0.001 sec)
MariaDB [(none)]>
 以上で文字コードが確認出来ました。
・WordPressのデータベース作成。
MariaDB [(none)]> create database wordpress; ←WordPressのデータベース作成
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> grant all on wordpress.* to wordpress@localhost identified by
'test';  ←WordPressのユーザー有効化とパスワードの設定
Query OK, 0 rows affected (0.005 sec)
MariaDB [(none)]> flush privileges; ←設定の有効化を反映
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> select User,Host from mysql.user; ←MariaDB上のユーザー一覧
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
| wordpress   | localhost |
+-------------+-----------+
4 rows in set (0.001 sec)
MariaDB [(none)]> \q ←データベースからの切断
Bye
・GUI画面からインストール
⑴Webサーバーの仮想マシン上のGUIからWebブラウザ(Firefox)を立ち上げ、URLに以下のアドレスを入力します。
https://web1.stream.server/wordpress/
 初めてアクセスした際、ブラウザが”Warning Potantial Security Risk Ahead.(警告:潜在的なリスクあり)”と警告を発します。
 この場合、ブラウザ上の”Advanced...(詳細情報)”をクリックし、ブラウザの下に移動し”Accept the Risk and Continue(危険性を承知で続行)”をクリックし、サイトにアクセスします。
⑵「WordPressへようこそ。始める前に、以下の項目を知っておく必要があります。」
と表示され、事前説明が記載されています。
「さあ、始めましょう!」をクリックします。
⑶データーベース接続のための詳細情報の入力を求められます。
以下の内容の項目を入力します。
データ名:wordpress
ユーザー名:wordpress
パスワード:MariaDB初期設定時のパスワード(本稿では’test’)
 
⑷「wp-config.phpファイルに書き込みが出来ません。
 手動でwp-config.phpを作成し、中に張り付ける事が出来ます。」
と表示されるので全文をコピーし、GUI上で端末を起動し、指示通りwp-config.phpを作成し、貼り付けます。
 
[root@web1 ~]# vi /var/www/html/wp-config.php
<?php
/**
 * WordPress の基本設定
 *
 * このファイルは、インストール時に wp-config.php 作成ウィザードが利用します。
 * ウィザードを介さずにこのファイルを "wp-config.php" という名前でコピーして
 * 直接編集して値を入力してもかまいません。
 *
 * このファイルは、以下の設定を含みます。
 *
 * * データベース設定
 * * 秘密鍵
 * * データベーステーブル接頭辞
 * * ABSPATH
 *
 * @link https://ja.wordpress.org/support/article/editing-wp-config-php/
 *
 * @package WordPress
 */
// 注意:
// Windows の "メモ帳" でこのファイルを編集しないでください !
// 問題なく使えるテキストエディタ
// (http://wpdocs.osdn.jp/%E7%94%A8%E8%AA%9E%E9%9B%86#.E3.83.86.E3.82.AD.E3.82.B9.E3.83.88.E3.82.A8.E3.83.87.E3.82.A3.E3.82.BF 参照)
// を使用し、必ず UTF-8 の BOM なし (UTF-8N) で保存してください。
// ** データベース設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'wordpress' );
/** データベースのユーザー名 */
define( 'DB_USER', 'wordpress' );
/** データベースのパスワード */
define( 'DB_PASSWORD', 'test' );
/** データベースのホスト名 */
define( 'DB_HOST', 'localhost' );
/** データベースのテーブルを作成する際のデータベースの文字セット */
define( 'DB_CHARSET', 'utf8mb4' );
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define( 'DB_COLLATE', '' );
/**#@+
 * 認証用ユニークキー
 *
 * それぞれを異なるユニーク (一意) な文字列に変更してください。
 * {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org の秘密鍵 サービス} で自動生成することもできます。
 * 後でいつでも変更して、既存のすべての cookie を無効にできます。これにより、す べてのユーザーを強制的に再ログインさせることになります。
 *
 * @since 2.6.0
 */
define( 'AUTH_KEY',         'KBETNt_GZTha<L$,Yrt98?r%-nDTi~F%<>=^Yw1l55r<7nQcw,A<3C-$z}a5&%8{' );
define( 'SECURE_AUTH_KEY',  'y&f+u[_=JPT>Ep;d(2U2fT5H,#NG!i<e1DQ EJa8W#I^8>++QE)1<z]qN4Fjxg*O' );
define( 'LOGGED_IN_KEY',    '}rj}%uF).S?5EyL~~zcSc9.C$qmm~rk>j{uOiy5OA*_!%H4%0^H&O;4cpd,6lS}1' );
define( 'NONCE_KEY',        'GyNrZm<.UKIORVW bA,-Y<8i01&h3si{r#x.lTT};7W[sv*I![lMZ0Iw7](.!aU]' );
define( 'AUTH_SALT',        'v]hfg&^^/2mN.EP4Sf:NM:0F{&nZa.0heLk$E{rL`#eJol;k<L*cET9:x_:(a$>z' );
define( 'SECURE_AUTH_SALT', '`;@.O3MTfQ-{mfJpDQdp+bGhuv[OQb27ZB#@BxIG|E&KKVHGf?}PSFH; YF[{4]<' );
define( 'LOGGED_IN_SALT',   '4ftOz66#gM`L2{i{kjx>-3>7iw,=:Pe4/#GW7s;&kn$Z0]=eD99W{9tIhtYRqn-8' );
define( 'NONCE_SALT',       '=Zca>4U1Z+gWZucnC&c=2FMr4*j:`{C|p)[-xIVc#TM4yadK3TO.n2A~Et3]J%o0' );
/**#@-*/
/**
 * WordPress データベーステーブルの接頭辞
 *
 * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
 * インストールすることができます。半角英数字と下線のみを使用してください。
 */
$table_prefix = 'wp_';
/**
 * 開発者へ: WordPress デバッグモード
 *
 * この値を true にすると、開発中に注意 (notice) を表示します。
 * テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用 することを強く推奨します。
 *
 * その他のデバッグに利用できる定数についてはドキュメンテーションをご覧ください 。
 *
 * @link https://ja.wordpress.org/support/article/debugging-in-wordpress/
 */
define( 'WP_DEBUG', false );
/* カスタム値は、この行と「編集が必要なのはここまでです」の行の間に追加してくだ さい。 */
/* 編集が必要なのはここまでです ! WordPress でのパブリッシングをお楽しみください。 */
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
        define( 'ABSPATH', __DIR__ . '/' );
}
/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';
⑸上記phpファイルを作成後、ブラウザを更新するとwp-confg.phpファイルが既に存在している旨が表示されるので、文中の「インストール実行してください」をクリックします。
⑹「ようこそ」が表示後、以下の必要情報を入力します。任意で構いませんが、本稿では例として以下の様に入力します。
・サイトのタイトル:WordPress Test
・ユーザー名:admin
・パスワード:m1w0rdpress!
・メールアドレス:wordpress@mail2.stream.server
・検索エンジンでの表示
 「検索エンジンがサイトをインデックスしないようにする」にチェック
 本稿ではメールサーバーは構築していない構成なので、メールアドレスは適当で構いません。
 上記の設定後、「WordPressのインストール」をクリックします。
⑺「成功しました!」と表示されればWordPressのインストールは成功です。「ログイン」をクリックします。
⑻以下を入力し「ログイン」をクリックします。
ユーザー名またはメールアドレス:admin
パスワード:m1w0rdpress!
⑼管理者ページが表示され、WordPressの記事が書けるようになりました。
◇クライアントマシンから動作確認。
 クライアントマシン(又はDNSサーバー)でもGUI画面のブラウザを起動し、https://web1.stream.server/wordpressにアクセスします。
  WordPressのブログにアクセス出来れば成功です。
 最初は記事がありませんが、管理ページで記事を投稿すれば記事が表示されるようになります。
PR

コメント

プロフィール

HN:
のらくら
性別:
非公開
自己紹介:
介護と自身の手術でブランクが出来たインフラエンジニアの学習メモ。VirtualBOXで仮想サーバーを建て、GNS3でCiscoルーター&スイッチによるネットワークのエミュレーションもしています。GNS3ネットワーク内に仮想サーバーと連携させて、実際のネットワーク環境におけるサーバーをシミュレートする他、LinuC level3 300の対策もしています。

P R