このチュートリアルでは、Nginx、MariaDB、PHP7.4(LEMP Stack)を使用してUbuntu20.04にWordPressをインストールする方法を紹介します。 WordPressは、世界で最も人気のあるCMS(コンテンツ管理システム)です。今日のウェブサイトの3分の1以上がWordPressを利用していると推定されています。 PHP7.4はUbuntu20.04リポジトリに組み込まれ、WordPressはそれで完全に動作します。
前提条件
このチュートリアルに従うには、少なくとも1GBのRAMを搭載したUbuntu20.04サーバーが必要です。 VPS(仮想プライベートサーバー)をお探しの場合は、この特別なリンクをクリックして、DigitalOceanで50ドルの無料クレジットを取得できます。 (新規ユーザーのみ)。すでにDigitalOceanユーザーである場合は、この特別なリンクをクリックして、Vultrで$ 50の無料クレジットを取得できます(新規ユーザーのみ)。
ドメイン名も必要なので、訪問者はWebブラウザのアドレスバーにドメイン名を入力してサイトにアクセスできます。ドメイン名をNameCheapに登録したのは、価格が安く、whoisのプライバシー保護が一生無料になるからです。
このチュートリアルは、Ubuntu20.04でLEMPスタックをすでにセットアップしていることを前提としています。そうでない場合は、次のチュートリアルを確認してください。
- Ubuntu 20.04にLEMPスタック(Nginx、MariaDB、PHP7.4)をインストールする方法
LEMPのインストールが完了したら、ここに戻って読み進めてください。
ステップ1:WordPressをダウンロードする
Ubuntu 20.04サーバーにSSHで接続し、既存のソフトウェアを更新します。
sudo apt update && sudo apt upgrade
次に、wordpress.orgのダウンロードページにアクセスして、zipアーカイブをダウンロードします。ダウンロードボタンを右クリックしてcopy link location
を選択すると、直接ダウンロードリンクを取得できます。 。
次に、コマンドラインプロンプトで、 wgetと入力します 続いて、WordPressをUbuntu20.04サーバーにダウンロードするための直接ダウンロードリンクが続きます。
wget https://wordpress.org/latest.zip
次に、以下のコマンドを使用してzipアーカイブを抽出します。
sudo apt install unzip sudo mkdir -p /usr/share/nginx sudo unzip latest.zip -d /usr/share/nginx/
アーカイブは/usr/share/nginx/
に抽出されます ディレクトリ。 wordpress
という名前の新しいディレクトリ 作成されます(/ usr / share / nginx / wordpress)。これで、次のように名前を変更できるため、各ディレクトリを簡単に識別できます。 example.com
を置き換えます 実際のドメイン名を使用します。
sudo mv /usr/share/nginx/wordpress /usr/share/nginx/example.com
ステップ2:WordPressサイトのデータベースとユーザーを作成する
次のコマンドを使用して、rootとしてMariaDBシェルにログインします。
sudo mariadb -u root
または
sudo mysql -u root
ログインしたら、次のコマンドを使用してWordPressのデータベースを作成します。 wordpress
という名前を付けました 、ただし、サイト名など、好きな名前を使用できます。 (セミコロンを省略しないでください。)
create database wordpress;
次に、以下のコマンドを入力して、WordPressのデータベースユーザーを作成します。このコマンドは、WordPressデータベースのすべての権限もユーザーに付与します。 wpuser
を置き換えます およびyour-password
ご希望のユーザー名とパスワードを使用してください。
grant all privileges on wordpress.* to wpuser@localhost identified by 'your-password';
変更を有効にするために特権テーブルをフラッシュしてから、MariaDBシェルから抜け出します。
flush privileges; exit;
ステップ3:WordPressを構成する
WordPressディレクトリに移動します。
cd /usr/share/nginx/example.com/
サンプル構成ファイルをコピーして、名前をwp-config.php
に変更します。 。
sudo cp wp-config-sample.php wp-config.php
次に、Nanoなどのコマンドラインテキストエディタを使用して新しい構成ファイルを編集します。
sudo nano wp-config.php
次の行を見つけて、赤いテキストを前の手順で作成したデータベース名、ユーザー名、パスワードに置き換えます。
/** The name of the database for WordPress */ define('DB_NAME', 'database_name_here'); /** MySQL database username */ define('DB_USER', 'username_here'); /** MySQL database password */ define('DB_PASSWORD', 'password_here');
次に、下にスクロールして次の行を見つけます。
$table_prefix = 'wp_';
デフォルトでは、すべてのWordPressデータベーステーブル名はwp_
で始まります プレフィックスとして。セキュリティを向上させるために、別のものに変更することを強くお勧めします。以下のようなランダムな文字を使用してください。
$table_prefix = '9OzB3g_';
ファイルを保存して閉じます。 Nanoテキストエディタでファイルを保存するには、Ctrl+O
を押します。 、次にEnter
を押します 確認するために。次に、Ctrl+X
を押します 終了します。
Nginxユーザー(www-data
)も設定する必要があります )次のコマンドを使用して、WordPressサイトディレクトリの所有者として。
sudo chown www-data:www-data /usr/share/nginx/example.com/ -R
ステップ4:WordPress用のNginxサーバーブロックを作成する
/etc/nginx/conf.d/
にサーバーブロックファイルを作成します ディレクトリ。ファイル名は.conf
で終わる必要があります 。
sudo nano /etc/nginx/conf.d/example.com.conf
次のテキストをファイルに入れます。赤いテキストを独自のドメイン名に置き換えます。 DNSマネージャーでドメイン名のAレコードを作成することを忘れないでください。
server { listen 80; listen [::]:80; server_name www.example.com example.com; root /usr/share/nginx/example.com/; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php; } location ~ ^/wp-json/ { rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last; } location ~* /wp-sitemap.*\.xml { try_files $uri $uri/ /index.php$is_args$args; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; client_max_body_size 20M; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } #enable gzip compression gzip on; gzip_vary on; gzip_min_length 1000; gzip_comp_level 5; gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml; gzip_proxied any; # 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; } # disable access to hidden files location ~ /\.ht { access_log off; log_not_found off; deny all; } }
ファイルを保存して閉じます。次に、Nginx構成をテストします。
sudo nginx -t
テストが成功した場合は、Nginxをリロードします。
sudo systemctl reload nginx
ブラウザのアドレスバーにドメイン名を入力します。
example.com
または
example.com/wp-admin/install.php
WordPressインストールウィザードが表示されます。言語を選択してください。
インストールウィザードが表示されない場合は、PHP7拡張機能をインストールする必要があります。
sudo apt install php-imagick php7.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-json php7.4-cli php7.4-curl php7.4-zip
次に、PHP-FPMとNginxをリロードします。ウィザードが表示されます。
sudo systemctl reload php7.4-fpm nginx
セットアップウィザードに機密情報を入力する前に、トラフィックの乗っ取りを防ぐためにHTTPSを有効にすることをお勧めします。
ステップ5:HTTPSを有効にする
HTTPトラフィックを暗号化するには、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にします。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntu20.04サーバーにインストールします。
sudo apt install certbot python3-certbot-nginx
そして、このコマンドを実行してTLS証明書を取得してインストールします。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com
どこで
-
--nginx
:Nginxプラグインを使用してください。 -
--agree-tos
:利用規約に同意します。 --redirect
:301リダイレクトでHTTPSを強制します。-
--hsts
:すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。 -
--staple-ocsp
:OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。 --email
:登録と復旧の連絡に使用されるメール。-
-d
フラグの後には、コンマで区切られたドメイン名のリストが続きます。最大100個のドメイン名を追加できます。
これで、証明書が取得され、自動的にインストールされます。
これで、WordPressセットアップウィザードをリロードすると、HTTPが自動的にHTTPS接続にリダイレクトされることがわかります。
ステップ6:セットアップウィザードを使用してインストールを完了する
管理者アカウントを作成し、WordPressのインストールをクリックします ボタン。
これで、新しいWordPressサイトがインストールされました。
wwwをwww以外(またはその逆)にリダイレクトする方法
HTTPからHTTPSへのリダイレクトはすでに有効になっています。あとは、wwwをwww以外にリダイレクトするか、その逆を行う必要があります。それは超簡単。 WordPressダッシュボードに移動するだけです>設定>一般 WordPressアドレスでお好みのバージョン(wwwまたはwww以外)を設定します およびサイトアドレス 。必ずhttps://
を含めてください プレフィックス。
WordPressでメールを送信する方法
WordPressサイトは、アカウント登録メール、パスワードリセットメール、コメント通知メールなどのメールを送信する必要があります。Gsuiteなどの高価なサードパーティソリューションを使用してWebサイトのプロフェッショナルなメールアドレスを作成する代わりに、このiRedMailチュートリアルに従って設定できます。独自のドメイン名で独自のメールサーバーを起動して、無制限のメールボックスを作成し、銀行を壊すことなく無制限のメールを送信できるようにします。
メールサーバーがWordPressサイトの速度を低下させたくないため、メールサーバーとWordPressを2つの異なる仮想プライベートサーバーにインストールすることをお勧めします。メールサーバーがWordPressサイトのIPアドレスをリークする場合は同じ仮想プライベートサーバー上にあります。つまり、ハッカーは使用しているCDN(Content Delivery Network)をバイパスして、オリジンサーバーで直接DDoS攻撃を開始できます。
メールサーバーが起動して実行されたら、WordPressにSMTPプラグインをインストールして、メールサーバーに接続してメールを送信できるようにします。 WordPressダッシュボードに移動します ->プラグイン 、[新規追加]をクリックします 新しいプラグインをインストールします。
次に、 WP Mail SMTPと入力します 検索ボックスで。 WPFormsによるWPメールSMTPをインストールしてアクティブ化します プラグイン。
WordPressダッシュボードのWebページをリロードすると、 WP Mail SMTPが表示されます。 左側のメニューバーにあります。それをクリックして、設定を選択します 。
次に、[メーラー]セクションまで下にスクロールします。デフォルトでは、PHPメーラーが選択されています。 その他のSMTPに変更する必要があります 。
下にスクロールすると、SMTP設定を入力する必要があります。
- メールサーバーのホスト名を入力します。
- 暗号化としてTLSを選択します。
- ポート587を使用します。
- 認証を有効にします。
- ドメインのメールアドレスとパスワードを入力してください。
設定を保存したら、WordPressダッシュボードからログアウトしてメール送信をテストし、[パスワードを紛失した]をクリックします。 パスワードをリセットするメールを送信するためのリンク。
アップロードファイルのサイズ制限を増やす
デフォルトでは、WordPressメディアライブラリにアップロードされた画像やPDFファイルなどのファイルは2MBを超えることはできません。アップロードサイズの制限を増やすには、PHP構成ファイルを編集します。
sudo nano /etc/php/7.4/fpm/php.ini
次の行を見つけます(行846)。
upload_max_filesize = 2M
次のように値を変更します:
upload_max_filesize = 20M
次に、次の行を見つけます(694行目)。
post_max_size = 8M
PHPが受け入れるPOSTデータの最大サイズを変更します。
post_max_size = 20M
ファイルを保存して閉じます。または、次の2つのコマンドを実行して、ファイルを手動で開かずに値を変更することもできます。
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/7.4/fpm/php.ini sudo sed -i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php/7.4/fpm/php.ini
次に、PHP-FPMを再起動します。
sudo systemctl restart php7.4-fpm
Nginxは、アップロードファイルサイズの制限も設定します。 Nginxによって設定されるデフォルトの最大アップロードファイルサイズ制限は1MBです。大きなファイルをWordPressサイトにアップロードできるようにするには、Nginx構成ファイルを編集します。
sudo nano /etc/nginx/conf.d/example.com.conf
で示されているように、このファイルにはすでに最大ファイルサイズが設定されています。
client_max_body_size 2M;
20Mのように、必要に応じて変更できます。
client_max_body_size 20M;
ファイルを保存して閉じます。次に、変更を有効にするためにNginxをリロードします。
sudo systemctl reload nginx
次のステップ
- WP-CLIコマンドラインツールを使用して、WordPressサイトを管理することもできます。
- WPScanを使用して、WordPressサイトの脆弱性をスキャンできます。
- WordPressサイトのバックエンドのパフォーマンスを監視するには、NginxAmplifyを使用できます。
このチュートリアルが、Nginx、MariaDB、PHP7.4(LEMPスタック)を使用してUbuntu20.04にWordPressをインストールするのに役立つことを願っています。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、より多くのヒントやコツを入手してください。気をつけて🙂