色々なページのブログの立ち上げ方を見ていると、説明不足だったり情報が古くなっているものもあったので、全10回でブログの立ち上げ方をまとめました。
- 【Blogサーバ構築①】Ubuntu MATE 20.04 のSSH接続とファイアウォール設定
- 【Blogサーバ構築②】nginxでサーバ化してWordPressをインストール ( ← 本記事 )
- 【Blogサーバ構築③】WordPressへのログインと初期設定
- 【Blogサーバ構築④】”IPアドレス(or ドメイン名)/wordpress” 表示を ”IPアドレス(or ドメイン名)” 表示にしてすっきりさせる
- 【Blogサーバ構築⑤】WordPressアドレスを間違えた時の対応
- 【Blogサーバ構築⑥】無料/有料ドメインを取得してみる
- 【Blogサーバ構築⑦】DDNSサービスでドメイン名とIPアドレスを紐づける
- 【Blogサーバ構築⑧】ルーターのポート開放をして、外部からのアクセスを許可する
- 【Blogサーバ構築⑨】WordPress アドレス (URL)をIPアドレスからドメイン名に変更する
- 【Blogサーバ構築⑩】Certbotでhttps対応(sslの設定)
今回のまとめ
- nginxを入れてサーバ化し、Wordpressをインストールするためには、nginx、MySQL(or MariaDB)、Wordpressのインストールが必要です。(※MySQL, MariaDBはデータベース管理クライアント)
- インストール途中でwifi環境が変わったりするとwordpressが参照するURLがおかしくなってしまい403Fobbidenエラーに悩まされます。同じネットワーク環境で作業することをお勧めします。
- 導入はそれほど難しくないです。
手順
- nginxのインストール
- nginxへphpを追加
- MySQLのインストール
- WordPressのインストール
nginxのインストール
nginxはWebサーバー用のソフトウェアです。インストールするとPCをWebサーバー化してくれるため、インストールしたPCのIPアドレスを入力することで、他のPCからサーバPCへアクセスできるようになります。同じWebサーバソフトとしてApacheも有名ですが、Apacheの方は動画を多く含むページ向けとされています。
早速インストールしていきましょう。Ubuntuではapt-getでインストールすることができます。updateして情報を最新にしてnginxをインストールします。
$ sudo apt-get update
$ sudo apt-get install nginx
nginxではファイルのアップロードサイズ制限の初期設定が1Mbyteになっているため、インストール後にこの値を変更しておきます。.confファイルを編集して、32Mbyteにします。ただこのファイルの変更はsudo コマンドではうまくいかずroot権限に入る必要があります。まずは下記コマンドでroot権限に変更します。
$sudo su
rootに変更できると、ターミナルの$が#に変わっていると思います。
次に.confファイルを編集します。
# vim /etc/nginx/nginx.conf
vimエディターが開くと思いますので「i」を押し、入力します(iは挿入モードです)。太文字のところclient_max_body_sizeを記載します。
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
client_max_body_size 32M;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
「esc」キーで書きこみモードを終了して、「!wq」と入力することで、上書き保存します。間違えた場合は「!q」で上書きせず抜けられます。
設定を反映するためにnginxを再起動します。
# service nginx restart
最後にnginx が正常に起動しているかチェックしましょう。
# service nginx status
上記のコマンドでstatus確認をして、下記のようにactiveの文字が出ればOKです。

nginxを入れたPCでifconfigと入力し、IPを調べます。
同じネットワークに接続している他のパソコンでブラウザを立ち上げ、nginxを入れたPCのIPアドレスを打ってみましょう。192.168.xxx.xxxといったIPアドレスです。ブラウザに下の絵のような画面がでていれば他のPCから接続できていることになります。なお、192.168.xxx.xxxといたIPは内部IPと言われ、同じネットワーク内でのみ有効で、外部からアクセスできません。

nginxにphpの追加
wordpressを使うにはnginxにphpサポートを追加する必要があるとのことでphpを追加します。2021/11時点でのphpのバージョンは7.4でした。 ※既にroot権限になっている前提で書いています。(rootになる為にはsudo su)
# apt-get update
# apt-get install php7.4-fpm
phpインストール後にphp.iniを編集します。php.iniファイルを開いて、先ほどと同様に編集します。このファイルは大きさが大きくて、編集が厄介です。
# vim /etc/php/7.4/fpm/php.ini
下記の記載を探して、編集しました。
file_uploads = On
max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
max_input_time = 60
max_input_vars = 4440
upload_max_filesize = 32M
phpのインストール後にnginxのデフォルトのwebサイトの設定ファイルを編集します。
# vim /etc/nginx/sites-available/default
server内の記載、太字のところを修正します。
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
上書き保存後に下記のコマンドでnginxの設定ファイルに間違いがないか確認できます。
# nginx -t
間違いがなければ下記のように出力されます。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
OKであればnginxもphpも再起動しましょう。
# service php7.4-fpm restart
# service nginx restart
念の為、ここでphpがきちんと動いているか確認します。私の場合はphp7.4-fpm.sockがうまく生成されておらず、一度phpを再インストールしました。
phpの状態を確認するためにphpの状態を表示するページを作ります。下記入力でinfo.phpというファイルを新規作成し、
# vim /var/www/html/info.php
一行目に下記記載をします。
<?php phpinfo();
変更を保存してファイルを閉じます。(esc -> !wqです)
同じネットワークの他のPCからブラウザを立ち上げ、サーバPCのIPアドレスの後に/info.phpをいれてみます。

このような画面が表示されるはずです。
MySQLのインストールと設定
データベース管理ソフトであるMySQLをインストールします。下記を入力します。 ※既にroot権限になっている前提で書いています。(rootになる為にはsudo su)
# apt-get update
# apt-get install mysql-server mysql-client
mySQLのインストールが完了したら、mySQLのroot権限でログインし、アカウントとデータベースを作ります。まずはrootログイン
# mysql -u root -p
以下、作成例です。ここで設定したDB名、アカウント名、パスワードはWordpressインストール後に設定ファイルに記述する必要があるため、覚えておいてください。
- wp_dbというデータベースを作成 (データベース名にハイフンは使用不可でした。2022/4/28訂正)
- wp-userというアカウントを作成し、WPpassというパスワードを設定
- wp-userにwp_dbへのすべての権限を設定
- 権限の再設定
- 終了
CREATE DATABASE wp_db CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'wp-user'@'%' IDENTIFIED BY 'WPpass';
GRANT ALL PRIVILEGES ON wp_db.* TO 'wp-user'@'%';
FLUSH PRIVILEGES;
quit;
ここでmySQLのインストール・設定は終了です。
WordPressインストールの為のダウンロードと設定
wordpressの最新ファイルをダウンロードして解凍します。まずtmpフォルダに移動した後、そこにwordpressの最新ファイル(latest.tar.gz)をダウンロード、解凍します。
# cd /tmp
# wget https://wordpress.org/latest.tar.gz
# tar -zxvf latest.tar.gz
解凍するとtmpフォルダ内にwordpressというフォルダができていますので、下記スクリプトでwordpressフォルダを移動します。移動先は/var/www/html/です。wordpressの初期ユーザがwww-dataとなっていますので、www-dataというアカウントにwordpressフォルダの権限を与えます。
# mv wordpress /var/www/html/
# chown www-data.www-data /var/www/html/wordpress/* -R
(2022/07/21追記)
chownの権限の設定がうまくいかない場合はこちらもお試しください。www-dataを「コロン」でつないで、最後に「半角スペース」と「ピリオド」をつけます。
# chown www-data:www-data . /var/www/html/wordpress/* -R
WordPressのフォルダの中にはwp-configというconfigファイルのサンプルが用意されています。このサンプルファイルの名前を書き替え、wp-config.phpという実際に参照されるファイル名に変更して、中身の書き換えを行います。
# cd /var/www/html/wordpress
# mv wp-config-sample.php wp-config.php
# vim wp-config.php
wp-config.phpには先ほどmySQLで作成したアカウントとデータベースの情報を入れます。
define('DB_NAME', 'wp_db');
define('DB_USER', 'wp-user');
define('DB_PASSWORD', 'WPpass');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
上書き保存すればwp-config.phpファイルの設定完了です。
WordPressをサーバにインストールする
サーバーPCと同じネットワークにある別のPCからブラウザを立ち上げ、”サーバPCのIPアドレス”/wordpressと検索バーに入力します。
言語選択するとwordpressのインストール画面が表示されるはずです。

あとは言われたとおりに入力するとWordPressのインストールができます。お疲れ様でした!
参考リンク
参考にさせて頂いたページです。ありがとうございました。