0x00 はじめに WordPress は、世界で最も人気のある CMS システムです。PHP と MySQL のテクノロジー スタックをベースとしており、多くのプラグインを備えているため、拡張性が非常に高くなっています。最近、たまたま余った ECS があったので、楽しみのために 1 つ作ってみました。このチュートリアルは、LEMP テクノロジー スタックに基づいて構築されています。バージョンは次のとおりです。
さらに、完全なhttpsがトレンドになっており、当然遅れるわけにはいかないので、Let's Encryptを使用して構成用の無料のSSL証明書も生成します。 0x01 前提条件
0x02 nginxをインストールする
0x03Mariadbをインストールする Mariadb は MySQL のオープンソース ブランチとして、MySQL に代わる CentOS のデフォルト データベースとして使用されているので、ここでもデータベースとして Mariadb を使用します。
さらに、mariadbがリッスンするアドレスを a. b. c. d. 0x04 データベースを作成する mariadbデータベースをインストールして強化した後は、当然、データを保存するための新しいデータベースを作成する必要があります。ここでは、最初に以前に設定したルートアカウントのパスワードを使用してデータベースにログインします。mysql CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # データベースを作成 GRANT ALL ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY 'your password'; # ユーザーを作成 FLUSH PRIVILEGES; # データベース権限を更新 EXIT; 0x05 PHPをインストールする CentOSのデフォルトのPHPバージョンは5.4ですが、WordPressの推奨バージョンは7.2なので、ここではPHP 7.2バージョンをインストールします。以下のコマンドを実行して、PHPと必要なPHP拡張機能をすべてインストールします。 sudo yum yum-utilsをインストールします sudo yum インストール http://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum-config-manager --enable remi-php72 sudo yum インストール php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl 私たちは Web サーバーとして Nginx を使用していますが、Nginx にはこのコンポーネントが付属していないため、PHP FPM をインストールします。さらに、PHP FPM はデフォルトでポート 9000 で apache ユーザーとして実行されます。このユーザーを wordpress に変更し、TCP ソケットから Unix ソケットに変更します。変更方法の詳細については、以下の手順を参照してください。 ... ユーザー = wordpress ... グループ = wordpress ... listen = /run/php-fpm/www.sock ... listen.owner = wordpress listen.group = ワードプレス
PHP FPMを自動的に再起動して起動する a. 0x06 無料証明書を申請する 技術オタクとして、無料の証明書が利用できる場合は必ずそれを利用します。したがって、無料の Let's Encrypt 証明書を申請することができます。これは無料であるだけでなく、非常に使いやすいものです。有効期間は 90 日間のみですが、スクリプト構成 crontab を通じて定期的に更新できます。 a. b. c. d. CA が DV (ドメイン検証) 証明書を発行する場合、ドメイン名の所有権を確認する必要があることはわかっています。従来の CA 検証方法では、通常、[email protected] に検証メールを送信しますが、Let's Encrypt はサーバー上にランダムな検証ファイルを生成し、CSR の作成時に指定したドメイン名を通じてそのファイルにアクセスします。アクセスできる場合、ドメイン名を制御できることを意味します。まず、検証ファイルを保存するディレクトリを作成します。例: 次に、Nginx を例にして HTTP サービスを設定します。 サーバー{ サーバー名 www.nomansky.xyz nomansky.xyz; 場所 ^~ /.well-known/acme-challenge/ { エイリアス /home/wordpress/challenges/; try_files $uri =404; } 位置 / { ^/(.*)$ https://nomansky.xyz/$1 を永久に書き換えます。 } } 上記の設定は、/home/wordpress/challenges/ ディレクトリ内のファイルを検索し、見つからない場合は HTTPS アドレスにリダイレクトすることを意味します。この検証サービスは、将来証明書を更新するときに再度使用されるため、常に保持する必要があります。 次に、acme-tiny を ssl ディレクトリに保存します 次に、アカウントの秘密鍵、CSR、検証ディレクトリを指定して、スクリプト 最後に、Let's Encrypt の中間証明書をダウンロードする必要があります。HTTPS 証明書を構成するときは、中間証明書を省略したり、ルート証明書を含めたりしないでください。 Nginx の設定では、中間証明書と Web サイト証明書を組み合わせる必要があります。 wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > 中間.pem cat signed.crt 中間.pem > 連鎖.pem 後でOCSP Staplingをスムーズに有効化するために、ルート証明書と中間証明書を結合します(この手順は省略することもできます) wget -O - https://letsencrypt.org/certs/isrgrootx1.pem > root.pem cat 中間.pem ルート.pem > フルチェーン.pem Let's Encrypt によって発行された証明書は 90 日間のみ有効です。スクリプトを使用して定期的に更新することをお勧めします。 #!/bin/bash /etc/nginx/ssl/ をコピーします python acme_tiny.py --account-key account.key --csr domain.csr --acme-dir /home/wordpress/challenges/ > signed.crt || exit wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > 中間.pem cat signed.crt 中間.pem > 連鎖.pem systemctl nginx を再起動します crontabl 0x07 WordPressをダウンロードしてNginxを設定する WordPressを 次に、 ··· ユーザー wordpress; ワーカープロセスは自動です。 ··· 次に、分離を目的として、メイン構成ファイル nginx.conf 内のサーバー構成ブロックをコメント アウトします。 新しい 場所 ^~ /.well-known/acme-challenge/ { エイリアス /home/wordpress/challenges/; try_files $uri =404; } 次に、新しい # HTTP -> HTTPS にリダイレクト サーバー{ 聞く 80; サーバー名 www.nomansky.xyz nomansky.xyz; snippets/letsencrypt.conf を含めます。 301 https://nomansky.xyz$request_uri を返します。 } # WWW を NON WWW にリダイレクト サーバー{ 443 ssl http2 をリッスンします。 サーバー名 www.nomansky.xyz; ssl_certificate /etc/nginx/ssl/chained.pem; ssl_certificate_key /etc/nginx/ssl/domain.key; 301 https://nomansky.com$request_uri を返します。 } サーバー{ 443 ssl http2 をリッスンします。 サーバー名 nomansky.com; ルート /home/wordpress/wordpress; インデックスindex.php; # SSLパラメータ ssl_certificate /etc/nginx/ssl/chained.pem; ssl_certificate_key /etc/nginx/ssl/domain.key; # ログファイル アクセスログ /home/wordpress/log/nomansky.xyz.access.log; error_log /home/wordpress/log/nomansky.xyz.error.log; 場所 = /favicon.ico { log_not_found オフ; access_log オフ; } 場所 = /robots.txt { すべて許可する。 log_not_found オフ; access_log オフ; } 位置 / { try_files $uri $uri/ /index.php?$args; } 場所 ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index インデックス.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_params を含めます。 } 場所 ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { 有効期限が最大になります。 log_not_found オフ; } ログディレクトリ 次に、WordPress ページが正常に開かれ、完了していることが確認できます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Vue はグラフィック検証コードログインを実装します
>>: MySQL はエンタープライズレベルのログ管理、バックアップ、リカバリの実践的なチュートリアルを実装します
目次序文仮想DOM仮想DOMとは仮想DOMの利点レンダリング関数とは何ですか? jsx Vue3 で...
mysqlはbinlogログを正しくクリーンアップします序文: MySQL の binlog はデー...
承認とは、ユーザーに特定の権限を付与することです。たとえば、新しく作成したユーザーに、すべてのデータ...
1. Python 3をインストールする1. 依存パッケージをインストールしますyum instal...
序文最近のプロジェクトでは、大量のデータを保存する必要があり、このデータには有効期限があります。クエ...
Portainer は、Docker ホストと Docker Swarm クラスターの管理に使用でき...
入力ファイルの HTML コントロールを Web ページに追加します。 <input id=&...
序文カバーリング インデックスについて説明する前に、まずそのデータ構造である B+ ツリーを理解する...
目次MySQL フェデレーテッド クエリ実行戦略。実行計画フェデレーテッドクエリオプティマイザーMy...
CSS操作 CS $("").css(名前|プロ|[,値|関数]) 位置$(&q...
背景VirtualBox 仮想マシン (Ubuntu 16.04 システムがロードされている) には...
リッチ テキスト コンポーネントは、Web プログラムで、特にブログやフォーラムなどの Web サイ...
mysql データベースには student テーブルがあり、その構造は次のとおりです。 Oracl...
美しいコードは美しい Web サイトの基礎です。優れた CSS は、同様に優れた HTML の上にの...
以下の目標を達成するため: Mysql データベースは、一定の間隔 (2 時間または 1 日、カスタ...