GNU/Linux >> Linux の 問題 >  >> Ubuntu

Apache、MariaDB、PHP7.4(LAMP)を使用してUbuntu20.04にWordPressをインストールします

このチュートリアルでは、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ダッシュボードからログアウトしてメール送信をテストし、[パスワードを紛失した]をクリックします。 パスワードをリセットするメールを送信するためのリンク。


Ubuntu
  1. Ubuntu18.04にApacheを使用してWordPressをインストールする方法

  2. Ubuntu18.04にApacheを使用してJoomlaをインストールする方法

  3. Ubuntu18.04にNginxで複数のWordPressをインストールする方法

  1. Ubuntu20.04にLAMPスタックを使用してWordPressをインストールする

  2. Ubuntu20.04にApacheを使用してphpBBをインストールする方法

  3. Ubuntu 22.04にLAMPスタック(Apache、MariaDB、PHP)をインストールします

  1. LAMPを使用してUbuntu16.04/Ubuntu14.04にWordPressをインストールします

  2. Ubuntu 18.04 /Ubuntu16.04にNginxを使用してWordPress5.xをインストールする方法

  3. Apacheを使用してUbuntu20.04にNextCloudをインストールする方法