WordPressの設定まとめ|アップロード上限・メンテナンスモード・Docker
/ 7 min read
Table of Contents
はじめに
WordPressを運用していると、決まったところで同じ設定に触ることになります。この記事では、実際に手を入れた設定をまとめました。
ファイルアップロードの上限を変える
「アップロードできるファイルの最大サイズ」に引っかかったときの対処です。設定を書く場所が環境によって違うので、順に見ていきます。
変更する3つの値
どの環境でも、指定するのはこの3つです。
memory_limit = 256Mpost_max_size = 128Mupload_max_filesize = 100Mレンタルサーバーの場合
ホームディレクトリに php.ini を作成して書き込みます。
memory_limit = 50Mpost_max_size = 40Mupload_max_filesize = 30MDockerや自前サーバーの場合
php.ini の実体を直接編集します。場所は環境によりますが、公式のWordPressイメージでは次の場所にあります。
/usr/local/etc/php/php.ini.htaccess に書く方法もあります。WordPressの設置ディレクトリ(/var/www/html など)にあり、隠しファイルなので ls -a で確認します。
php_value memory_limit 256Mphp_value post_max_size 128Mphp_value upload_max_filesize 100Mメンテナンスモードにする
テーマの functions.php に追記すると、管理者以外にメンテナンス画面を表示できます。
function maintenance_mode() { if (!current_user_can('edit_themes') || !is_user_logged_in()) { wp_die('当サイトはメンテナンス中です。'); }}add_action('get_header', 'maintenance_mode');wp_die() に渡した文言がそのまま表示されます。
検索エンジンに一時的な停止だと伝えたい場合は、ステータスコードを指定します。
wp_die('当サイトはメンテナンス中です。', 'メンテナンス中', ['response' => 503]);503(Service Unavailable)は「一時的に利用できない」という意味なので、恒久的な削除と誤解されずに済みます。
Dockerで言語設定画面がスキップされる
WSL2のUbuntu上のDockerでWordPressを立ち上げたところ、インストール時の言語設定画面が出ずに英語で進んでしまう、という現象がありました。
原因は、言語ファイルを取得する api.wordpress.org への通信がタイムアウトしていることでした。docker-compose.yml のWordPress側にホストを追加すると解決します。
extra_hosts: - "api.wordpress.org:198.143.164.251"インストール後であれば、管理画面の 設定 > 一般 > サイトの言語 からいつでも変更できます。
Xserverでサブドメインを常時SSL化する
Xserverのレンタルサーバーで運用している場合の手順です。
通常のドメインであれば、公式の手順に従ってコントロールパネルから設定できます。しかしサブドメインは、コントロールパネルのメニューから直接操作できません。
FTPソフトかファイルマネージャーで .htaccess を直接編集します。ファイルの場所は次のとおりです。
対象ドメイン > public_html > サブドメイン > .htaccessファイルの冒頭に3行を追加します(通常のドメインをSSL化する場合と同じ内容です)。
RewriteEngine OnRewriteCond %{HTTPS} !onRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]おわりに
アップロード上限は、3つの値の大小関係と、設定ファイルの場所が環境ごとに違うという2点さえ押さえれば迷いません。functions.php の編集は影響範囲が大きいので、戻せる手段を用意してから触るようにしてください。
