前回まででネットワークとサーバを用意しました。
今回はWordPressをインストールしていきます。
最後にはhttpとグローバルIPアドレスでWordPressにアクセスできるところまでやっていきます。
WordPressをインストールするには、Web、アプリケーション、データベースが必要です。よってまずはこれらをインストール、設定します。
流れ
- Web、PHPのインストールと動作確認
- データベースのインストールとデータベース設定
- WordPressのインストール、動作確認
Web, PHPのインストールと動作確認
現在インストールされているパッケージを最新にアップデートしていきます。
アップデートと反映
$ sudo apt update -y
$ sudo apt upgrade -y
$ sudo reboot
Webサーバを作るには一般的にApacheかnginxというソフトウェアを使います。昔はApacheが主流でしたが、今はnginxがよく使われます。
nginxのインストール
$ sudo apt install nginx -y
$ ps -ef | grep apache2
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-04-18 06:09:05 UTC; 42s ago
Docs: man:nginx(8)
Main PID: 1875 (nginx)
Tasks: 2 (limit: 1141)
Memory: 6.1M
CPU: 24ms
CGroup: /system.slice/nginx.service
├─1875 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
└─1878 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
PHPのインストール
WordPressを動かすにはPHPが必要です。
よってPHPをインストールしていきます。PHPはいろんなパッケージがあり、本当に必要なパッケージが分かりづらいです。
$ sudo apt install php php-fpm php-mysql -y
もしインストールできない場合は、再度 sudo apt upgrade -y を実行する
$ sudo systemctl start php8.1-fpm
$ sudo systemctl status php8.1-fpm
● php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-04-18 06:10:58 UTC; 16s ago
Docs: man:php-fpm8.1(8)
Process: 12141 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.1/fpm/pool.d/www.conf 81 (code=exited, status=0/>
Main PID: 12138 (php-fpm8.1)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 1141)
Memory: 7.4M
CPU: 42ms
CGroup: /system.slice/php8.1-fpm.service
├─12138 "php-fpm: master process (/etc/php/8.1/fpm/php-fpm.conf)" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
├─12139 "php-fpm: pool www" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
└─12140 "php-fpm: pool www" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">
apache2 削除
もともとApacheがインストールされているため、これを削除します。
$ sudo apt remove apache2 -y
$ sudo apt purge apache2 -y
$ sudo rm -rf /etc/apache2
nginx再起動
念のため、nginxを再起動します。
$ sudo systemctl restart nginx
nginx設定
wordpressを動かせるようにnginxの設定をしていきます。
nginxはsites-availableディレクトリに設定ファイルの本体を置き、実際に有効化する設定ファイルのリンクをsites-enableディレクトリに置きます。
$ sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
$ sudo vi /etc/nginx/sites-available/wordpress
IPアドレスを自分の環境に合わせて書き換えてください
それぞれの意味はググってください
ポイントだけ解説します。
listen : ポート番号
root : コンテンツ(今回はWordPress)を配置するディレクトリ
server {
listen 80;
listen [::]:80;
server_name <IPアドレス>;
root /var/www/wordpress;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
# A long browser cache lifetime can speed up repeat visits to your page
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
}
PHP動作確認
nginxとphpが連携しているか確認します。
そのためにまずディレクトリを作ります。
$ sudo mkdir /var/www/wordpress
テスト用のPHPファイルを作成します。
$ sudo vi /var/www/wordpress/info.php
info.php
<?php phpinfo();
nginxを再起動する
$ sudo systemctl restart nginx
ブラウザで下記URLにアクセスする
PHPの情報が出力されたらOK
http://<IPアドレス>/info.php
データベースのインストールと設定
前回まででWebとアプリケーション(PHP)のインストールと設定が終わりました。
今回はデータベースです。
データベースソフトウェア(mysql)をインストールする
$ sudo apt install mysql-server mysql-client -y
データベースとユーザを作成するため、データベースにログインする
$ sudo mysql -u root -p
Enter password:
wordpress用のデータベースとユーザを作成する
CREATE DATABASE wordpress CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON wordpress.* to 'wpuser'@'localhost';
先ほど作成したデータベースとユーザがあることを確認する
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wordpress |
+--------------------+
5 rows in set (0.00 sec)
mysql> SELECT User, Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
| wpuser | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)
mysql> quit
WordPressをインストールする
Webとアプリケーション(PHP)、データベースが終わりました。
これでWordPressをインストールできるようになったので、やっていきます。
動作確認のために作成したフォルダを削除する
$ sudo rm -rf /var/www/wordpress
wordpressをダウンロードして解凍する
$ cd /var/www/
$ sudo wget https://ja.wordpress.org/latest-ja.tar.gz
$ sudo tar -xzvf latest-ja.tar.gz
wordpressの設定ファイルを編集する
wordpressからデータベースに接続するための設定をする
$ cd /var/www/wordpress/
$ sudo mv wp-config-sample.php wp-config.php
$ sudo vi /var/www/wordpress/wp-config.php
データベースに接続するために必要な情報を書いていきます。
これらはデータベースのセクションで設定したものを入力していきます。
wp-config.php
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'wordpress' );
/** データベースのユーザー名 */
define( 'DB_USER', 'wpuser' );
/** データベースのパスワード */
define( 'DB_PASSWORD', 'password' );
ファイルやフォルダのアクセス権を設定し、nginxを再起動する
$ sudo chown -R www-data:www-data /var/www/wordpress
$ sudo systemctl restart nginx
ブラウザでアクセスする
http://<ipアドレス>/
ログインして下記のような画面が表示されればOK
[ツール]-[サイトヘルス]へ移動
サイトヘルスで致命的な問題が1件あることを確認します。
詳細な内容を確認するとPHPモジュールが足りないと言われます。
足りないphpモジュールをインストールする
$ sudo apt install php-curl php-dom php-imagick php-gd php-mbstring php-zip php-intl -y
インストール後にブラウザを更新してサイトヘルスを確認
良好になっていればOK
WordPressをインストールしてアクセスできるようになりました