Nginx で WordPress を設定する方法

Nginx で WordPress を設定する方法

以前、私は自分で WordPress を構築していましたが、当時はサードパーティの仮想ホストを使用していたため、1 台のマシンに数十の Web サイトが存在することもありました。当時、仮想マシンはまだ物理的な分離を実現しておらず、1 つの Web サイトがリソースを占有すると、すべての Web サイトがクラッシュする可能性がありました。

最近、Alibaba Cloud ECS 上に独立した WordPress を構築してみて、その構築過程を記録しました。

もともと私は、Apache を WordPress のコンテナとして使用し、Apache への直接のリバース プロキシとして nginx を使用することを考えていました。しかし、Apache を使ってみて問題が見つかりました。リバースプロキシとして nginx を直接使用し、Apache に切り替えると、疑似静的 URL にアクセスできなくなったようです。URL ごとに nginx の場所を設定する必要があるようでした。面倒すぎると感じたので、諦めました。

もちろん、他の解決策もあるかもしれませんが、試していません。後で調べたところ、nginx はサードパーティのプラグインを使用して PHP をサポートできることがわかりました。 nginx をコンテナとして直接使用することにも利点があります。デプロイが比較的簡単で、単一の nginx コンテナを通じて複数の Web サイトを直接デプロイできます。

1. ドメイン名の購入

これについては詳しく説明しません。ドメイン名プラットフォームにアクセスしてドメイン名を申請するだけです。

2.MySQLのインストール

MySQL のインストール方法についてはすでに説明しました。詳細はこちらをご覧ください。インストールが完了したら、WordPress 用に別のアカウントを作成する必要があります。なぜ別のアカウントを作成する必要があるのでしょうか?これは主にセキュリティ上の理由によるものです。WordPress が攻撃され、ルート アカウントを使用すると、データベース内のすべてのテーブルが公開されます。

// wordpress ユーザーを作成し、パスワードを設定します。パスワードはランダムに生成し、大文字と小文字、数字、特殊文字を組み合わせて 8 文字以上にすることをお勧めします。CREATE USER 'wordpress'@'%' IDENTIFIED BY 'password';

//WordPress アカウントに、選択、削除、更新、挿入、作成、変更など、すべての操作権限を付与します。GRANT all ON wordpress.* TO 'wordpress'@'%';

権限に関する詳細情報は、こちらをご覧ください。

3. nginxのインストール

Nginx は yum を使用してインストールされますが、非常に簡単です。

インストール:

yum -y nginx をインストールします。

起動する:

systemctl で nginx.service を起動します。

2 つのステップで nginx のインストールが完了します。

4. PHPをインストールする

4.1 PHPのインストール

yum -y php をインストールします。

PHP のインストールは非常に簡単です。インストールが完了したら、次のコマンドを実行してバージョンを表示します。バージョンが表示されれば、インストールが正しいことがわかります。

php -v;

4.2 php-fpmのインストール

PHP に加えて、fast-cgi と php-fpm の 2 つも必要です。それで、これら 2 つとは何でしょうか?詳細を知りたい場合は、こちらをご覧ください。簡単に言うと、fpm は fastcgi のマネージャーです。これまでは、php ファイルを正しく解析するために fpm をインストールする必要があることを知らず、長い間苦労していました。

yum で php-fpm をインストールします。

//インストールが成功したかどうかを確認します php-fpm -v;

php-fpmを起動する 
systemctl で php-fpm を起動します。

デフォルトでは、fpm はポート 9000 を占有します。

5. WordPressをインストールする

https://wordpress.org/latest.tar.gz をダウンロードしてください。

//解凍 tar -xzf latest.tar.gz -C /var/www/html;

解凍後、:/wordpress/wp-config-sample.php ファイルを見つけて、データベース名、ユーザー名、パスワードを変更します。フィールドは次のとおりです。

// ** MySQL 設定 - この情報は Web ホストから取得できます ** //
/** WordPress のデータベース名 */
define('DB_NAME', 'データベース名');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'ユーザー名');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'パスワード');

/** MySQL ホスト名 */
define('DB_HOST', 'あなたのホスト');

変更が完了したら、wp-config-sample.php のファイル名を wp-config.php に変更します。

6. nginxを設定する

以下は私の設定です。参考にしてください。

# * 公式英語ドキュメント: http://nginx.org/en/docs/
# * 公式ロシア語ドキュメント: http://nginx.org/ru/docs/

アップストリームphp {
 #サーバー unix:/tmp/php-cgi.socket;
 #fpmのデフォルトポート9000を指定します。
 サーバー 127.0.0.1:9000;
}

サーバー{ 
 聞く 80 ;
 聞く [::]:80 ;
 サーバー名 www.domain.com;
 ルート /web/www.domain.com/;
 インデックスindex.php;
 
 場所 ~ \.php$ {
  #注意: php.ini に「cgi.fix_pathinfo = 0;」と記述する必要があります
  fastcgi.conf をインクルードします。
  fastcgi_intercept_errors をオン;
  fastcgi_passphp;
 }

 # デフォルトのサーバー ブロックの構成ファイルを読み込みます。
 /etc/nginx/default.d/*.conf を含めます。
 }

7. セキュリティ設定

世界中のウェブサイトの約 20% が WordPress システムを使用しており、WordPress はハッカー攻撃の標的にもなっています。個人でも企業でも、セキュリティの問題は無視できません。一般ユーザーがセキュリティ保護を迅速に強化できる簡単な方法はありますか?いくつかのセキュリティ プラグインを調べたところ、セキュリティ戦略の改善に役立つプラグインが 1 つ見つかりました。そのプラグインは、All In One WP Security & Firewall です。このプラグインは比較的シンプルで、一般ユーザーにとって使いやすいです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WordPress をベースに個人ブログをゼロから構築する方法を教える 6 つのステップ
  • nginx+WordPressで個人ブログを構築するプロセス全体の詳細な説明
  • ホストNginx + Docker WordPress Mysqlを設定するための詳細な手順
  • Nginx 環境での WordPress マルチサイト構成の詳細な説明
  • Nginx で WordPress 擬似静的を設定する方法の例
  • WordPress ウェブサイトのアクセスが遅い問題を解決する方法に関する詳細なグラフィックチュートリアル

<<:  Vueはクリックを実装し、イベントオブジェクトとカスタムパラメータを同時に渡します。

>>:  Mysql5.7 サービスを開始できません。グラフィカル ソリューション チュートリアル

推薦する

Dockerを使用してLaravelおよびVueプロジェクトの開発環境を構築する詳細な説明

この記事では、Docker で構築された Laravel および Vue プロジェクトの開発環境を紹...

MySQL の group by に関する簡単な説明

目次1. はじめに2. ユーザーテーブルを準備する2.1 グループ化ルール2.2 グループの使用2....

実践で遭遇するフロントエンドの基本(HTML、CSS)

1. div css マウスの手の形は cursor:pointer; です。 2. HTML の相...

MySQLのよくある間違い

NULL 値によると、MySQL の NULL 値は単にデータがないことを意味します。NULL 値は...

MYSQL大規模書き込み問題の最適化の詳細な説明

概要: MySQL のパフォーマンス最適化について話すとき、誰もがクエリ パフォーマンスを向上させる...

Dockerリンクはコンテナの相互接続を実現します

目次1.1. IP経由のコンテナ間のネットワークアクセス1.2. コンテナ名またはコンテナIDによる...

Expressプロジェクトファイルディレクトリの説明と詳細な機能の説明

app.js: スタートアップファイル、またはエントリファイルpackage.json: プロジェク...

SQL と MySQL のステートメント実行順序の分析

今日、問題が発生しました: MySQL の insert into、update、delete ステ...

mysqlはルートユーザーと一般ユーザーを作成し、機能を変更および削除します。

方法1: SET PASSWORDコマンドを使用する mysql -u ルート mysql> ...

JavaScript マクロタスクとマイクロタスクの実行順序についての簡単な説明

目次1. JavaScriptはシングルスレッドです1. 同期タスク2. 非同期タスク2. タスクキ...

Reactのdiffアルゴリズムの詳細な分析

Reactのdiffアルゴリズムの理解diffアルゴリズムは、 Virtual DOMの変更された部...

NginxはURLのパスに応じてアップストリームに動的に転送します

Nginx では、URL のパス パラメータに基づいて、到達不可能なアップストリームに動的に転送する...

WeChatアプレット学習ノート: ページ構成とルーティング

最近、小さなプログラムの開発を勉強して見直しており、学習結果のいくつかをメモしています。公式の We...

jsでの位置計算を徹底的に理解するのに役立つ記事

目次導入スクロール要素.スクロール()要素.scrollHeight/scrollWidth要素.s...

フレームセットを使用して複雑なページレイアウトを実装するためのテクニックの概要

コードをコピーコードは次のとおりです。 <html> <!--混合フレームレイアウ...