wordpress5.xでは パーマリンクを変更するとページが開けず(404エラー)等々インストール時のトラブルが多発しました。
Apacheなら当たり前でやっていた設定もNginxでは苦労しました。そのトラブル内容を含めインストール手順をここにまとめました。
目 次
- 環境確認
- mysql ユーザー、データベース作成
- wordpress5.6バージョンダウンロード
- nginxの実行ユーザー確認、フォルダー権限設定
- 独自ドメイン、公開用フォルダー作成
- 独自ドメインのnginxの設定ファイルの編集
環境確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// ubuntu バージョン khagiwara@sakura3:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.2 LTS Release: 20.04 Codename: focal // nginx バージョン khagiwara@sakura3:~$ nginx -v nginx version: nginx/1.18.0 (Ubuntu) // php バージョン khagiwara@sakura3:~$ php -v PHP 7.4.3 (cli) (built: Oct 6 2020 15:47:56) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies |
mysql ユーザー、データベース作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// ワードプレス用データベース作成 mysql> create database wp; Query OK, 1 row affected (0.01 sec) // ワードプレスでmysqlを扱うユーザー作成 mysql> create user 'wpuser'@'localhost' IDENTIFIED WITH mysql_native_password BY '******************'; Query OK, 0 rows affected (0.01 sec) // 作成したユーザーの権限設定 mysql> GRANT ALL PRIVILEGES ON wp.* TO 'wpuser'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> SELECT user,host,plugin FROM mysql.user; +------------------+-----------+-----------------------+ | user | host | plugin | +------------------+-----------+-----------------------+ ・ ・ | wpuser | localhost | mysql_native_password | ・ ・ +------------------+-----------+-----------------------+ |
wordpress5.6バージョンダウンロード
ワードプレス5.6の最新バージョンを公式サイトからダウンロードします。
公式サイトからワードプレスを入手
動作要件: PHP バージョン7.4以上、MySQL バージョン5.6または MariaDB バージョン10.1以上のサーバーの推奨
Webサーバー: Apache または Nginx を推奨
nginxの実行ユーザー確認、フォルダー権限設定
php-fpmは 「root」でインストールしているので作成された環境のユーザー、グループは rootとなっています。また、php-fpmの実行ユーザーは /etc/nginx/nginx.confで設定されています。
Webで公開するフォルダーは定義しているユーザーが実行、書き込み権限を付与する必要があります
1 2 3 4 5 6 7 8 9 10 11 12 |
// /etc/nginx/nginx.confのデフォルトの内容 user www-data; // 実行ユーザーの定義 worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; events { worker_connections 768; # multi_accept on; } ・ ・ |
独自ドメイン、公開用フォルダー作成
公式サイトからダウンロードしてきたZipファイルを公開フォルダーに展開して所有者及びファイルをメンテナンスルルユーザー及びグループに権限を与えます。
ここでは、user: nginx.confで定義してあるユーザーとします。
グループに私の所属しているグループを設定して、 フォルダーの権限を 775とします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
フォルダー権限 khagiwara@sakura3:~$ sudo chown -R www-data:khagiwara /var/www/docs.codingstock.jp/wordpress khagiwara@sakura3:~$ sudo chmod -R 775 /var/www/docs.codingstock.jp/wordpress khagiwara@sakura3:~$ cd khagiwara@sakura3:/var/www/docs.codingstock.jp/wordpress khagiwara@sakura3:/var/www/docs.codingstock.jp/wordpress$ ls -al total 236 drwxrwxr-x 5 www-data khagiwara 4096 Feb 23 06:25 . drwxrwxr-x 6 root khagiwara 4096 Feb 22 10:19 .. -rwxrwxr-x 1 www-data khagiwara 405 Feb 6 2020 index.php -rwxrwxr-x 1 www-data khagiwara 19915 Feb 23 06:25 license.txt -rwxrwxr-x 1 www-data khagiwara 10089 Feb 23 06:25 readme.html -rwxrwxr-x 1 www-data khagiwara 7101 Jul 29 2020 wp-activate.php drwxrwxr-x 9 www-data khagiwara 4096 Feb 12 17:00 wp-admin -rwxrwxr-x 1 www-data khagiwara 351 Feb 6 2020 wp-blog-header.php -rwxrwxr-x 1 www-data khagiwara 2328 Oct 9 06:15 wp-comments-post.php -rwxrwxr-x 1 www-data khagiwara 3931 Feb 12 17:00 wp-config-sample.php -rw-rw-rw- 1 www-data khagiwara 4314 Feb 22 17:47 wp-config.php drwxrwxr-x 7 www-data khagiwara 4096 Feb 23 08:24 wp-content -rwxrwxr-x 1 www-data khagiwara 3939 Jul 31 2020 wp-cron.php drwxrwxr-x 25 www-data khagiwara 12288 Feb 12 17:00 wp-includes -rwxrwxr-x 1 www-data khagiwara 2496 Feb 6 2020 wp-links-opml.php -rwxrwxr-x 1 www-data khagiwara 3300 Feb 6 2020 wp-load.php -rwxrwxr-x 1 www-data khagiwara 49831 Nov 9 19:53 wp-login.php -rwxrwxr-x 1 www-data khagiwara 8509 Apr 14 2020 wp-mail.php -rwxrwxr-x 1 www-data khagiwara 20975 Nov 12 23:43 wp-settings.php -rwxrwxr-x 1 www-data khagiwara 31337 Oct 1 06:54 wp-signup.php -rwxrwxr-x 1 www-data khagiwara 4747 Oct 9 06:15 wp-trackback.php -rwxrwxr-x 1 www-data khagiwara 3236 Jun 9 2020 xmlrpc.php |
独自ドメインのnginxの設定ファイルの編集
ここで先に述べたトラブル対策を記述します。
- ワードプレスのパーマリンクを変更すると 404エラーとなり、表示できない。
try_files $uri $uri/ /index.php?$args の記述 - テーマ等の大きなファイルをアップロードする際、ファイルサイズがサイズ制限にかかりアップロードできない。
client_max_body_size 20M の記述
php.ini にて upload_max_filesize の記述変更
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
//----------------------------- // /etc/nginx/sites-available/docs.codingsocks.jp.conf //----------------------------- server { server_name docs.codingstock.jp; root /var/www/docs.codingstock.jp/wordpress; index index.php index.html index.htm; # アップロードファイル制限 ここでは20MBまでのファイルをアップロードできるようにする。 client_max_body_size 20M; # パーマリンクを変更したとき 404エラーとなる対策 location /{ try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; include fastcgi_params; } # .htaccess等のファイルをアクセスできないようにする。 location ~ /\.ht { deny all; } # let's Encrypt で SSL化で自動的に付加される listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/docs.codingstock.jp/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/docs.codingstock.jp/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } |
php-fpm の php.iniでもアップロードするファイルの制限を解除する必要があります。
1 2 3 4 5 6 |
// php.iniの場所を検索 khagiwara@sakura3:~$ sudo find / -name php.ini /etc/php/7.4/fpm/php.ini /etc/php/7.4/cli/php.ini |
1 2 3 4 5 6 7 8 9 |
// php.iniファイルを編集 // アップロードできるサイズ変更 ・ ・ ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 20M // アップロードできるファイルのサイズを20MBまでに変更 ・ ・ |
1 2 3 4 5 6 |
khagiwara@sakura3:~$ sudo php-fpm7.4 -t khagiwara@sakura3:~$ sudo service php7.4-fpm restart khagiwara@sakura3:~$ sudo nginx -t khagiwara@sakura3:~$ sudo systemctl restart nginx |
以上の設定で wordpress5.6.2をインストールできました。
あとは設定したアドレスにアクセスしてインストールを進めていきます。