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

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

このチュートリアルでは、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をインストールするのに役立つことを願っています。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、より多くのヒントやコツを入手してください。気をつけて🙂


Ubuntu
  1. Ubuntu18.04にNginxでWordPressをインストールする方法

  2. UbuntuにMemcachedとNginxを使用してWordPressをインストールする

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

  1. Ubuntu16.04にNginxを使用してSuiteCRMをインストールする方法

  2. Ubuntu 16.04 LTSにNginx、MariaDB、HHVMを使用してWordpressをインストールする方法

  3. Ubuntu16.04LTSにNginxを使用してOroCRMをインストールする方法

  1. Ubuntu20.04にNginxを使用して複数のDrupalインスタンスをインストールする

  2. Ubuntu 15.04にNginx、MariaDB、HHVMを使用してWordpressをインストールする方法

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