このチュートリアルでは、Apache、MariaDB、PHP7.4(LAMPスタック)を使用して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でLAMPスタックをすでにセットアップしていることを前提としています。そうでない場合は、次のチュートリアルを確認してください。
- Ubuntu 20.04にLAMPスタック(Apache、MariaDB、PHP7.4)をインストールする方法
LAMPのインストールが完了したら、ここに戻って読み進めてください。
ステップ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
次に、アーカイブを/var/www/
に抽出します unzip
のあるディレクトリ 。
sudo apt install unzip sudo mkdir -p /var/www/ sudo unzip latest.zip -d /var/www/
-d
オプションは、ターゲットディレクトリを指定します。 WordPressWebファイルは/var/www/wordpress
に抽出されます 。このディレクトリの名前は次のように変更できるため、各ディレクトリを簡単に識別できます。 example.com
を置き換えます 実際のドメイン名を使用します。
sudo mv /var/www/wordpress /var/www/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 /var/www/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');
ファイルを保存して閉じます。 Nanoテキストエディタでファイルを保存するには、Ctrl+O
を押します。 、次にEnter
を押します 確認するために。次に、Ctrl+X
を押します 終了します。
また、Apacheユーザー(www-data
)を設定する必要があります )次のコマンドを使用して、WordPressサイトディレクトリの所有者として。
sudo chown www-data:www-data /var/www/example.com/ -R
ステップ4:WordPress用のApache仮想ホストファイルを作成する
次のコマンドを実行して、WordPressサイトの仮想ホストファイルを/etc/apache2/sites-available/
に作成します。 ディレクトリ。
sudo nano /etc/apache2/sites-available/example.com.conf
次のテキストをファイルに入れます。赤いテキストを独自のドメイン名に置き換えます。 DNSマネージャーでドメイン名のAレコードを作成することを忘れないでください。
<VirtualHost *:80> ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example.com #This enables .htaccess file, which is needed for WordPress Permalink to work. <Directory "/var/www/example.com"> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/example.com.error.log CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined </VirtualHost>
ファイルを保存して閉じます。次に、構成をテストします。
sudo apache2ctl configtest
「SyntaxOK」が表示されたら、この仮想ホストを有効にします。
sudo a2ensite example.com.conf
変更を有効にするには、Apacheをリロードします。
sudo systemctl reload apache2
ドメイン名に正しいAレコードを設定し、ブラウザのアドレスバーにドメイン名を入力します。
example.com
または
example.com/wp-admin/install.php
WordPressインストールウィザードが表示されます。言語を選択してください。
インストールウィザードが表示されない場合は、PHP7拡張機能をインストールする必要があります。
sudo apt install php7.4-mbstring php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-bcmath php7.4-json php7.4-cli php7.4-curl php7.4-zip
次に、Apacheをリロードすると、ウィザードが表示されます。
sudo systemctl reload apache2
セットアップウィザードに機密情報を入力する前に、トラフィックの乗っ取りを防ぐためにHTTPSを有効にすることをお勧めします。
ステップ5:HTTPSを有効にする
HTTPトラフィックを暗号化するには、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にします。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntu20.04サーバーにインストールします。
sudo apt install certbot python3-certbot-apache
そして、このコマンドを実行してTLS証明書を取得してインストールします。
sudo certbot --apache --agree-tos --redirect --hsts --uir --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com
どこで
-
--apache
:Apacheプラグインを使用してください。 -
--agree-tos
:利用規約に同意します。 --redirect
:301リダイレクトでHTTPSを強制します。-
--hsts
:すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。 -
--uir
:すべてのHTTP応答に「Content-Security-Policy:upgrade-insecure-requests」ヘッダーを追加します。 -
--staple-ocsp
:OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。 --email
:登録と復旧の連絡に使用されるメール。-
-d
フラグの後には、コンマで区切られたドメイン名のリストが続きます。最大100個のドメイン名を追加できます。
これで、証明書が取得され、自動的にインストールされます。
これで、WordPressセットアップウィザードをリロードすると、HTTPが自動的にHTTPS接続にリダイレクトされることがわかります。
ステップ6:セットアップウィザードを使用してインストールを完了する
管理者アカウントを作成し、WordPressのインストールをクリックします ボタン。
これで、新しいWordPressサイトがインストールされました。
WWWを非WWWにリダイレクトする(またはその逆)
HTTPからHTTPSへのリダイレクトはすでに有効になっています。あとは、wwwをwww以外にリダイレクトするか、その逆を行う必要があります。 WordPressを使用している場合は、非常に簡単です。 WordPressダッシュボードに移動するだけです>設定>一般 WordPressアドレスでお好みのバージョン(wwwまたはwww以外)を設定します およびサイトアドレス 。必ずhttps://
を含めてください プレフィックス。
ダブル301リダイレクトの修正
WordPressアドレスで優先ドメインバージョンを設定します およびサイトアドレス 田畑。ただし、二重の301リダイレクトの問題があります。まず、ApacheサーバーがHTTPをHTTPSにリダイレクトし、次にWordPressがwwwまたはwww以外のドメインにリダイレクトします。
ダブル301リダイレクトを行うとSEOリンクジュースを失う可能性があると主張する人もいるかもしれません。それが心配な場合は、以下の方法を使用して、すべてのドメインバージョンを最終的な宛先に直接移動させることができるため、301リダイレクトが1つ発生します。
仮想ホストファイルを編集します。 (SSL仮想ホストではありません)
sudo nano /etc/apache2/sites-enabled/example.com.conf
CertBotクライアントは、HTTPをHTTPSにリダイレクトするために、ファイルに次の行を追加しました。
RewriteEngine on RewriteCond %{SERVER_NAME} =example.com [OR] RewriteCond %{SERVER_NAME} =www.example.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
wwwまたはwww以外のドメインにリダイレクトするには、最後の行を変更する必要があります。 %{SERVER_NAME}
を置き換えます 以下のようなご希望のドメインバージョンで。 (wwwドメイン)
RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]
www以外のドメインを使用する場合は、次のように変更してください。
RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]
次に、ファイルを保存して閉じます。 SSL仮想ホストも編集する必要があります。
sudo nano /etc/apache2/sites-enabled/example.com-le-ssl.conf
www以外のドメインをwwwドメインにリダイレクトするには、終了タグの上に次の行を追加します。
RewriteEngine on RewriteCond %{SERVER_NAME} =example.com RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]
wwwをwww以外のドメインにリダイレクトする場合は、代わりに次の行を追加してください。
RewriteEngine on RewriteCond %{SERVER_NAME} =www.example.com RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]
ファイルを保存して閉じます。変更を有効にするには、Apacheサービスをリロードします。
sudo systemctl reload apache2
より明確にするために、以下は、www以外のドメインをwwwドメインにリダイレクトするためのApache仮想ホストファイルとSSL仮想ホストファイルのスクリーンショットです。

Apache仮想ホストファイル

ApacheSSL仮想ホストファイル
WoredPress Addressでご希望のドメインバージョンを設定してください およびサイトアドレス Apache仮想ホストファイルを編集する前。 WordPressの設定がApacheの構成と矛盾する場合、サイトはリダイレクトループに陥ります。
TLS証明書の自動更新
Let's Encrypt証明書を自動的に更新するには、rootユーザーのcrontabファイルを編集するだけです。
sudo crontab -e
次に、下部に次の行を追加します。
@daily certbot renew --quiet && systemctl reload apache2
新しい証明書をクライアントに提示するには、Apacheをリロードする必要があります。
アップロードファイルのサイズ制限を増やす
Apache PHPモジュールを使用してPHPスクリプトを実行する場合、アップロードファイルのサイズに制限はありません。 PHP-FPMを使用してPHPスクリプトを実行する場合は、ファイルサイズの制限を変更して、大きなファイルをWordPressメディアライブラリにアップロードできるようにします。 PHP-FPMでアップロードするためのデフォルトの最大ファイルサイズは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
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ダッシュボードからログアウトしてメール送信をテストし、[パスワードを紛失した]をクリックします。 パスワードをリセットするメールを送信するためのリンク。