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 はエンタープライズレベルのログ管理、バックアップ、リカバリの実践的なチュートリアルを実装します
分離レベル:隔離はあなたが考えるよりも複雑です。 SQL 標準では 4 つの分離レベルが定義されてお...
はじめに使えるかもしれないが、あまり使われていない、シンプルで実用的なDockerコマンドをいくつか...
MySQL クエリ結果の行フィールドの結合は、次の 2 つの関数を使用して実装できます。 1. co...
序文TCP サーバの最大同時接続数に関して、「ポート番号の上限が 65535 であるため、TCP サ...
1. はじめに周知のように、データベース ミドルウェアの読み取り/書き込み分離のアプリケーション シ...
Win10 で csv をエクスポートする方法は 2 つあります。1 つ目はツールを使用することです...
Linuxの操作では、ファイル内の文字列を置換したりカウントしたりすることが多いです。ここでまとめを...
実際、XHTML 1.0 は、Transitional DOCTYPE と Strict DOCTY...
目次序文最適化ソ連オンデマンドインポート1. ルーティングファイルでコンポーネントをオンデマンドでイ...
1. 透明度を変更してテキストを徐々に点滅させると、次のような効果が得られます。 <!DOCT...
フォーム入力ボックスの入力をdisable属性に設定して送信すると、入力ボックスの値を取得できなくな...
Web ページ エンコーディングは英語では web page encoding と翻訳され、Web ...
レンガを移動するプロセスでは、さまざまな環境および構成の問題があり、毎回異なるエラーが発生します。 ...
#事例: 従業員の給与水準を照会する 選択 給与、等級 から 従業員 参加する ジョブグレード g ...