Ubuntu 22.04、Apache2、MariaDB、PHP 8.2-FPMでWordPressをインストールする。

クラウドサーバーでWordPressをホストすることを計画している場合、このガイドはあなたのために役立つことでしょう。LAMPとは、Linux、Apache、MariaDB、PHPの頭文字を取ったもので、これらを組み合わせたものをLAMPスタックと呼びます。

NGINXではなくApacheのWebサーバを選択するメリットとデメリット

  • Pros: 多くのページキャッシュ&最適化で一般的に使用されている.htaccessファイルに対応しています。ノンコーディングの方にもおすすめです。
  • Cons: NGINXより若干パフォーマンスが劣りますが、APOで管理することができます。高トラフィックのサイトでは、LEMPスタックが最適です。

以下の3つのステップを踏んで、ビデオをご覧ください。ヘルプが必要ですか?ご連絡ください😊。

  1. Cloudflare DNSの設定
  2. Cloudflare DNSの設定
  3. LAMPスタックのデプロイ

パート A: Cloudflare ネームサーバーをアクティブに保つ

Let’s Encrypt Wildcard SSL証明書を取得するために、Cloudflare DNSを使用する予定です。ダウンタイムなしの移行を実現するために、まずこのステップを完了させてください。

現在のネームサーバーを確認する

  • アクティブなネームサーバーを https://www.whatsmydns.net/#NS/example.com で検索してください。
  • もし、以前のホスティングサービスやドメインレジストラのデフォルトNSを使用している場合は、Cloudflareに置き換える必要があります。
  • Cloudflare DNSの使用方法について

パートB:Ubuntu Server 22.04 LTS サーバーを準備する

Ubuntu
Ubuntu logo

1. Vultrに登録して$100の無料クレジットを手に入れよう(14日間有効)

多くのクラウドサーバー会社を試してきた者として、私の経験ではVultrを選べば間違いはないと思います。彼らはサポートとサービスに関して、誠実で思いやりのある人たちです。

vultr

⚡ パフォーマンス

  • 第3世代AMD EPYC™
  • NVME / SSD
  • 最大4GHzのCPU
  • 最大5Gbpsのネットワークスピード
  • アメリカ、ヨーロッパ、アジア、オーストリアのデータセンター
  • IPV6対応

💡 特徴

  • 初心者にやさしいダッシュボード
  • ワンクリックでスナップショット
  • オートマティックバックアップ(有料)
  • 無料クラウドファイアウォール
  • DDoS対策(有償)
  • KVM100%使用仮想化

⚙ サポート

  • PayPal/カード
  • 24時間365日チケットサポート
  • ドキュメンテーション

2. 新しいサーバーをデロイする

プラスボタンをクリックするだけで、簡単に始められます

Deploy New Server

3. サーバーの種類を選択

共有CPUを手頃な価格で利用するなら、クラウドコンピューティングをお選びください。

Cloud Compute

次に、CPU & Storage Technologyを選択する必要がありますが、「AMD High Performance」を選択すればよいでしょう。

CPU Technology

4. サーバーの場所を選択する

Vultrは4つの大陸でサーバーを提供しています。 最も低いレイテンシと最高のパフォーマンスを得るためには、常にオーディエンスに最も近い地域を選択する必要があります。

vultr server region

例えば、99%のトラフィックが日本から来る場合、最も近い地域である東京を選択します。

Asia

  • インド・ムンバイ
  • インド・デリーNCR
  • インド・ベンガルール
  • シンガポール、シンガポール
  • 東京、日本
  • 韓国・ソウル

アメリカ

  • アメリカ・マイアミ
  • 米国アトランタ
  • アメリカ・シカゴ
  • アメリカ・ダラス
  • アメリカ・ホノルル
  • アメリカ・ロサンゼルス
  • メキシコシティ(メキシコ
  • 米国ニューヨーク(NJ)州
  • アメリカ・シアトル
  • 米国・シリコンバレー
  • カナダ・トロント、サンパウロ

ヨーロッパ

  • スウェーデン・ストックホルム
  • スウェーデン・ストックホルム
  • オランダ・アムステルダム
  • ドイツ・フランクフルト
  • スペイン・マドリード
  • フランス・パリ
  • ポーランド・ワルシャワ

オーストラリア

  • オーストラリア・シドニー
  • オーストラリア・メルボルン

5. サーバーイメージ > オペレーティングシステム > Ubuntu 22.04 LTS x64を選択します。

ubuntu os

長期サポート(LTS)とは、コンピュータソフトウェアの安定したリリースを通常版よりも長い期間維持する製品ライフサイクル管理方針のことです。

ubuntu releases 2

6. サーバーサイズの選択

server size

月々6ドルのプランは、新しいブログのスタート地点として最適です。ご要望に応じていつでもアップグレード可能です。.

ヒント: 移行する場合は、[サイトの健全性情報]の[合計インストールサイズ]を確認してください。

Site health info

7. IPV6の有効化、バックアップ

vultr enable backup ipv6

8. SSHキーの追加

これは、セキュリティ強化のために推奨されるオプションのステップです。

Add SSH key
  • Add Newボタンをクリックして、🔒公開鍵を提出するために新しいSSH鍵を追加します。
  • お使いのOSに合わせて、以下の方法でキーを生成してください。
win os
  • PuTTYアプリケーションをダウンロードします。
  • スタートメニューから「PuTTYgen」を検索します。
  • Generateボタンをクリックし、マウスポインタを合わせます。
  • 公開鍵をコピーし、Vultrに提供
  • キー・パスフレーズの入力
  • 最も安全な場所に🔑プライベートキーを保存してください。SSHやSFTPへのログインに使用することができます。
linux 2
  • 実行: ssh-keygen -t rsa. より安全な4096ビット鍵の場合は: ssh-keygen -t rsa -b 4096
  • キーを保存する場所を聞かれたら、エンターキーを押します(この場合、デフォルトの場所が使用されます)。
  • 鍵のパスフレーズを入力します。
  • 実行 cat ~/.ssh/id_rsa.pub -をクリックすると、コントロールパネルに貼り付けるための適切な形式のキーが得られます。
  • ~/.ssh/id_rsa ファイルを必ずバックアップしてください。これを失うと復元できません。

SSHキーを選択する

この手順で、公開鍵が新しいインスタンスにアタッチされます。その後、平文パスワードとSSH鍵の両方を使用してSSHにログインできるようになります。

select SSH public key

9. Webファイアウォールのルールをサーバーインスタンスにリンクさせる

Firewall
  1. 管理]をクリックし、新しいファイアウォールグループを作成します。
  2. SSHのTCPポート22を許可する。IPV4、IPV6ルールともに、HTTPは80、HTTPSは443。
  3. Firewall グループをインスタンスにリンクします。
firewall status
22, 80, 443 からのみの TCP 接続を受け付ける。
Link Firewall Group
ファイアウォールルールを新しいインスタンスにリンクさせる

10. ホスト名とラベルを入力し、「今すぐデプロイ」をクリックします。

server hostname label

これで、インストールが進行中であることが確認できます

Instance Installing

11. 新規インスタンス作成ページに移動します

IPアドレス、ユーザー名、パスワードをコピーします。あなたのデフォルトのポートは22です。

new instance info page

12. パスワードログインを無効にする

セキュリティ上の理由から、パスワード認証は無効にし、キーベースの認証のみを許可することをお勧めします。

  1. コンフィグレーションファイルの編集 nano /etc/ssh/sshd_config
  2. 探す(CTRL + W) and 探索 PasswordAuthentication
  3. 値を「はい」から「いいえ」に変更する
  4. 保存する場合は、次のように入力します。, CTRL + O
  5. コマンドを使用して、SSHサービスを再起動します。 sudo service ssh restart
disable password auth
パスワード認証の無効化

次回からは、動画にあるように鍵経由のSSHのみでご利用いただけます。

LinuxまたはMacの場合、ターミナルを使用して、次のようなコマンドを実行します。

ssh [email protected] -p 22 -i id_rsa

UFWを無効にする

VULTR で新しいインスタンスをデプロイすると、UFW (Uncomplicated Firewall) が有効になり、SSH ポート 22 を除くすべてのポートがブロックされたままになります。このため、ブラウザで ERR_CONNECTION_REFUSED Error が返されることがあります。これを解決するには、UFWを無効にしておくことをお勧めします。

ufw disable

さて、LAMPスタックにWordPressをデプロイするための本来のプロセスをスピードアップしてみます。

さて、LEMPスタックにWordPressをデプロイするための本来のプロセスをスピードアップしてみます。

1. リポジトリの更新

以下のコマンドを入力し、Enterキーを押してください。

sudo -s
apt update && apt upgrade -y && apt dist-upgrade && apt autoclean && apt autoremove -y && reboot

または

wget -qO update https://dl.gulshankumar.net/update && chmod +x update

次回は、必ず下記のショートカットコマンドで更新してください。

./update

セキュリティ付きMariaDBをインストールする

再度ログインし、以下のコマンドを入力します。

sudo apt install mariadb-server -y && sudo mysql_secure_installation

以下の質問にお答えください。

  • Enter current password for root (enter for none): Enterキーを押す
  • Switch to unix_socket authentication [Y/n]: 返信N
  • Set root password? [Y/n]: Enterキーを押す
  • New password: パスワードを入力し、Dashlaneを使用して生成することができます。右クリックでペースト。
  • Re-enter new password: パスワードを再入力してください。

パスワードの設定に成功すると、次のような画面が表示されます。

Password updated successfully!
Reloading privilege tables..
... Success!

Also, you need answer following questions.

Remove anonymous users? [Y/n]: Yを押して入力
Disallow root login remotely? [Y/n]: Yを押して入力
Remove test database and access to it? [Y/n]: Yを押して入力
Reload privilege tables now? [Y/n]: Yを押して入力

WordPress用のデータベースを新規に作成する

WordPress用のデータベースを新規に作成する

mysql -u root -p

新しいデータベースを作成し、そのユーザーをパスワード付きで使用できるように権限を付与します。このデータベースには、WordPressのすべての投稿、ページ、テーマ、プラグインなどの情報が保存されます。

create database wordpress;
grant all on wordpress.* to gulshan@localhost identified by '5pY8CKJxDRJEGQNkX7';
flush privileges;
exit;

どこであなたの …
データベースは wordpress
ユーザー名は gulshan
パスワードは 5pY8CKJxDRJEGQNkX7

ヒント ユニークなログイン資格の使用を検討する

4. PHP 8.2、Apache2のインストールとPermissionの設定

sudo add-apt-repository ppa:ondrej/php -y && apt update && apt install php8.2-fpm php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-soap php8.2-zip php8.2-bcmath -y && sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/8.2/fpm/php.ini && service php8.2-fpm restart && apt install apache2 -y && chown -R www-data:www-data /var/www/ && chmod -R 755 /var/www/

PHPの設定を変更する

ほとんどのファンシーなテーマやプラグインは、実行するためにハイエンドのPHP設定を必要とします。そのため、この変更を行う必要があります。

sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_file_uploads = 20/max_file_uploads = 30/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 900/g' /etc/php/8.2/fpm/php.ini
sed -i 's/max_input_time = 60/max_input_time = 3000/g' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 128M/g' /etc/php/8.2/fpm/php.ini
service php8.2-fpm restart

5. PHPの設定を変更する

/root/.secrets/ディレクトリ内にcloudflare.iniファイルを作成します。

mkdir -p /root/.secrets/ && cd /root/.secrets/ && nano cloudflare.ini

以下のコードを追加し、CTRL+Oで保存、CTRL+Xで終了します。

dns_cloudflare_email = "[email protected]"
dns_cloudflare_api_key = "XXXXXXXXXXXXXXXXX"

CloudflareのメールアドレスとグローバルAPIキーは、”My Profile” > API Tokens > Global API Keyで確認できます。

chmod 0400 /root/.secrets/cloudflare.ini

OSやHTTPウェブサーバーに合わせてCertbotとDNS Authenticatorをインストールします。

apt install snapd -y
snap install --beta --classic certbot
snap set certbot trust-plugin-with-root=ok
snap install --beta certbot-dns-cloudflare
snap connect certbot:plugin certbot-dns-cloudflare

ワイルドカードSSL証明書の取得

certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d example.com,*.example.com --preferred-challenges dns-01

Cronジョブによる自動更新の設定

  • タイプ crontab -e
  • タイプ1用 nano editor
  • 以下のコマンドを入力し、保存してください。
0 0 * * *  /etc/init.d/apache2 reload >/dev/null 2>&1

タイプ

certbot renew --dry-run

これらの便利なモジュールを有効にする

a2enmod proxy_fcgi ssl http2 expires headers rewrite remoteip
systemctl restart apache2

6. インストールするWordPressサイトごとにApp Directoryを作成します。

mkdir -p /var/www/example.com/public

これは、Apacheの設定ファイル内のドキュメントルートのパスになります。wwwの中にexample.comを作ったのは、各サイトを整理しておくためです。次に、publicディレクトリを作成し、WordPressのコアファイル以外はそこに置くようにしました。ただし、wp-config.phpは一階層上(/var/www/example.com/)に置いています。

7. Apache2の設定を作成する

これは、ドメインを設定し、Apache2がHTTPリクエストをどのように処理すべきかを設定する必要がある場合に重要です。

Apache2のデフォルトサーバーブロック設定ファイルの削除

rm /etc/apache2/sites-available/000-default.conf
rm /etc/apache2/sites-available/default-ssl.conf
rm /etc/apache2/sites-enabled/000-default.conf
source /etc/apache2/envvars

ここで、新しいサーバーブロックの設定ファイルを作成します。同じサーバーに新しいWordPressを追加するたびに、このステップを実行する必要があります。

example.comを独自ドメインに置き換え、設定ファイル名の最後に拡張子.confを付けることを忘れないでください。さもないと、動作しません。

cd /etc/apache2/sites-available/
nano example.com.conf
  1. example.comを独自ドメインに置き換える
  2. 以下のコードを入力し、Ctrl+oで保存、Ctrl+xで終了してください。
##############################################################
#                                                               
# NOTES: Kindly make search and replace of example.com to own domain.  
#                                                                
##############################################################


# We are going to Force HTTPS non-www
# If you want HTTPS www please keep https://www.example.com/ in the last line.
# Or you may face redirect loop issue.

<VirtualHost *:80>
   ServerSignature Off
   ServerName example.com
   ServerAlias www.example.com
   Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
   ServerSignature Off
   ServerName example.com
   ServerAlias www.example.com
   Protocols h2 h2c http/1.1
   DirectoryIndex index.php index.html
    
   # Recommended for Cloudflare users
   # RemoteIPHeader X-Forwarded-For
   
   # Document Root Path (Pay attention to this path to avoid 404)
   DocumentRoot /var/www/example.com/public
   
   # Logs Path is /var/log/apache2/example.com-access.log
   ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
   CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
   
   # Let's Encrypt SSL
   SSLEngine On
   SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
   
   # Allow use of .htaccess file to override configuration
   <Directory /var/www/example.com/public>
     Options FollowSymLinks
     AllowOverride All
     Require all granted
   </Directory>
   
   # Block PHP execution inside Uploads Directory
   <Directory /var/www/example.com/public/wp-content/uploads>
    <Files *.php>
      deny from all
    </Files>
   </Directory>
   
   # Protect wp-config.php
   <files wp-config.php>
      order allow,deny
      deny from all
   </files>

  # HTTP Auth for additional security
  # If you want HTTP Auth for WordPress Login page then consider uncommenting this block of code.
  # If you do so you must generate .htpasswd file as well.
  # <Files wp-login.php>
  #  AuthName "Admins Only"
  #    AuthUserFile /var/www/.htpasswd
  #   AuthType basic
  #    require user gulshan
  #   <RequireAny>
  #      Require ip 127.0.0.1
  #       Require valid-user
  #   </RequireAny>
  # </Files>
   
   # Block XML-RPC to prevent DDoS Attack. 
   <Files xmlrpc.php>
      Order Deny,Allow
      Deny from all
   </Files>
   
   # Handle PHP execution
   <FilesMatch ".php$">
      SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost/"
   </FilesMatch>
</VirtualHost>

To save, press CTRL+O and Enter key. Then, exit nano editor using command CTRL+X.

サーバーブロックを有効にするには、次のコマンドを入力します。

以下のコマンドを実行する前に、example.comを独自ドメインに置き換えてください。

a2ensite example.com.conf

テスト構成(オプション)

apache2 -t

再起動とアップデート

service apache2 restart && service php8.1-fpm restart && service mysql restart && apt-get update && apt upgrade -y

8. WordPressのファイルをインストールする

WordPressのファイルを/var/www/example.com/public/ディレクトリにダウンロードし、パーミッションを設定してください。

cd /var/www/example.com/public && wget https://ja.wordpress.org/latest-ja.tar.gz && tar -xvzf latest-ja.tar.gz && mv -v wordpress/* /var/www/example.com/public && rm -rf index.nginx-debian.test latest-ja.tar.gz wordpress && chown -R www-data:www-data /var/www/ && sudo chmod -R 755 /var/www

WordPressのファイルを/var/www/example.com/public/ディレクトリにダウンロードし、パーミッションを設定してください。

chown -R www-data:www-data /var/www/example.com/public/ && sudo chmod -R 755 /var/www/example.com/public/

9. DNSの更新

WordPressをローカルでホスティングしている場合、プロキシを回避したい場合、ダウンタイムなしの移行を行いたい場合、この手順が有効です。私は一般的に、静的なWordPressの開発領域の場合に適しています。

  • DNSを指定するには、2つの方法があります。Vultr “にサイトを移行する場合、まずローカルでテストしたい場合は、hostsファイルを編集して、そこにDNSを指定します。

For Windows

  • ‪C:\Windows\System32\drivers\etc\hosts のプロパティに移動します。
  • 現在のユーザー名で「セキュリティ」権限をフルコントロールに変更する。
  • これで、自分のSystem userでhostsファイルを自由に編集し、保存することができます。
# For same machine you can have localhost address else public IP
127.0.0.1 example.com
127.0.0.1 www.example.com

例として、このように表示されます。

MacまたはLinuxの場合

hosts ファイルは、sudo ユーザでこのコマンドを使用して編集することができます。

sudo nano /etc/hosts

CloudflareでDNSを更新する

  • 全て完璧に見え、サイトを公開したい場合は、Cloudflare DNSにログインし、新しいIPを更新してください。
Record TypeNameValue
A@IPV4
AAAA@IPV6
CNAMEwwwexample.com


ここで、@ はルート ドメイン example.com を示します

9. ドメイン名にアクセスして WordPress をセットアップする

WordPress で非 www バージョンのドメインを維持したい場合は、非 www バージョンの場合は www にアクセスしてください。

https://example.com
  • WordPressのセットアップを開始するために、データベースにログインするためのクレデンシャルを提供します。
  • ラン・インストール
  • 新しいサイトの基本情報を入力し、WordPressをインストールします。
  • WordPressにログインする

その他必要なもの

  • 急激な負荷に対応するためスワップメモリを増設
swapoff -a
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  • サーバーの負荷を抑えるために、必ずPage Cachingプラグインを使用してください。LAMPスタックなので、WP Fastest Cacheをお勧めします。
  • 常にバックアップをとっておく。
  • WordPress の送信メールには SMTP プラグインサービスを使用してください。そうしないと、パスワードリセットリンク、コンタクトフォーム 7 のメッセージを受信することができません。

最後に、WordPressのインストールが完了しました。

この記事を読んでくださったあなたの貴重なお時間に大変感謝いたします。次回のチュートリアルでお会いしましょう

コメントする