0x01 前提条件
#ドメイン名があります。私のドメイン名は nomansky.xyz
です。台湾の vps またはクラウド ホスト、国内 IP の場合は登録する必要があります。
sudo 権限または root 権限を持つユーザー。ここでプログラムを実行するための新しい wordpress ユーザーを作成します。し、次のコマンドを使用して nologin
a として設定します。 sudo useradd -s /sbin/nologin wordpress
#sudo yum install -y epel- release を使用して epel ソースをインストールしました
ファイアウォールを閉じます。セキュリティ強化のために iptables を使用することを好みます
#a. sudo systemctl stop firewalld
- #b. sudo systemctl disable firewalld
#0x02 nginx## をインストールする
##sudo yum install nginx を実行して nginx をインストールします- nginx デーモンを起動し、ブート時に自動的に起動するように設定します
- a. sudo systemctl start nginx
- b. sudo systemctl Enable nginx
- WordPress ユーザーを追加nginx グループ usermod -a -g nginx wordpress を実行し、ディレクトリのアクセス許可を設定します chmod 770 -r /var/lib/nginx/
- この時点で、http://nomansky.xyz にアクセスしてください。次のページが表示されます。これは、nginx が正常にインストールされたことを意味します。
0x03 mariadb
をインストールします。 mysql のオープンソース ブランチとしての mariadb は、mysql を置き換えるために centos によって使用されるデフォルトのデータベースになっているため、ここでも mariadb をデータベースとして使用します。
#sudo yum install mariadb-server -y を実行して mariadb をインストールします
mariadb を起動し、ブート時に自動的に起動するように設定します
- a. sudo systemctl start mariadb
b. sudo systemctlenable mariadb
- sudo mysql_secure_installation を実行して mariadb を強化します。データベース root パスワードの設定、匿名ユーザーの削除、ローカルホスト経由でのみデータベース root ユーザーにログインできるようにデータベース root ユーザーを制限する、およびテスト データベースを削除するための要件が表示されます。y (はい) を選択することをお勧めします。デフォルトのデータベース root パスワードは Empty です。
127.0.0.1:3306
a.
vim /etc/my.cnf.d/server.cnf
mariadb 設定ファイルを開きます
b.
[mysqld]
に、下の図に示すように、
を追加します。
systemctl restart mariadbデータベースを再起動
netstat -lntp を実行します。ローカル ループバック アドレスをリッスンします
mariadb データベースをインストールして強化した後、データを保存するための新しいデータベースを作成する必要があります。まず、前に設定した root アカウントのパスワードを使用してデータベースにログインします
、次のステートメントを実行します create database wordpress character set utf8mb4 collate utf8mb4_general_ci; # 创建数据库
grant all on wordpress.* to 'wordpress'@'localhost' identified by '你的密码'; # 创建用户
flush privileges; # 刷新数据库权限
exit;
## をインストールします#centos の php のデフォルトのバージョンは 5.4 ですが、wordpress が推奨するバージョンです。バージョンは 7.2 なので、ここでは php7.2 のバージョンをインストールします。
次のコマンドを実行して、php と必要なすべての php をインストールします。 extensions
sudo yum install yum-utils sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum-config-manager --enable remi-php72 sudo yum install php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl
Web サーバーとして nginx を使用しているため、php fpm をインストールしましたが、nginx このコンポーネントは付属していません。さらに、php fpm はデフォルトで Apache ユーザーとしてポート 9000 で実行されます。このユーザーを wordpress に変更し、tcp ソケットから unix ソケットに変更しました。変更方法の詳細については、次の手順を参照してください。
/etc/php-fpm.d/www.conf を開き、次の場所を変更します。
... user = wordpress ... group = wordpress ... listen = /run/php-fpm/www.sock ... listen.owner = wordpress listen.group = wordpressコマンド
sudo chown -r root:wordpress /var/lib/ を使用します。 php
ディレクトリがすべてのグループの権限が wordpress であることを確認します再起動して php fpm
a. sudo systemctl restart php-fpm
sudo systemctl enable php-fpm
0x06 無料の証明書を申請する
技術 (qiong) 技術 (bi) オタクとして, 無料の証明書があればぜひ使います。無料です。したがって、無料の let's encrypt 証明書を申請できます。この証明書は無料であるだけでなく、操作も非常に簡単です。一度に 90 日間しか有効ではありませんが、crontab はスクリプトを通じて定期的に更新されるように設定できます。
a. mkdir -p /etc/nginx/ssl証明書を保存するディレクトリ
b.
このディレクトリに入り、あなたの身元を識別するために暗号化しましょう
c.
ドメイン名を作成しますrsa 秘密鍵キー #<p>d. <code>openssl req -new -sha256 -key domain.key -out domain.csr
有了私钥文件,就可以生成 csr 文件了。生成csr会要求填入一些东西信息,这里common name为你的域名
我们知道,ca 在签发 dv(domain validation)证书时,需要验证域名所有权。传统 ca 的验证方式一般是往 admin@yoursite.com 发验证邮件,而 let's encrypt 是在你的服务器上生成一个随机验证文件,再通过创建 csr 时指定的域名访问,如果可以访问则表明你对这个域名有控制权。所以首先创建用于存放验证文件的目录,例如:mkdir /home/wordpress/challenges
然后配置一个http服务,以nginx为例:
server { server_name www.nomansky.xyz nomansky.xyz; location ^~ /.well-known/acme-challenge/ { alias /home/wordpress/challenges/; try_files $uri =404; } location / { rewrite ^/(.*)$ https://nomansky.xyz/$1 permanent; } }
以上配置表示查找 /home/wordpress/challenges/ 目录下的文件,如果找不到就重定向到 https 地址。这个验证服务以后更新证书还要用到,要一直保留。
接下来把acme-tiny保存到ssl目录wget https://raw.githubusercontent.com/diafygi/acme-tiny/master/acme_tiny.py
然后指定账户私钥、csr 以及验证目录,执行脚本python acme_tiny.py --account-key ./account.key --csr ./domain.csr --acme-dir /home/wordpress/challenges/ > ./signed.crt
,看到如下图所示,则说明生成成功了
最后还要下载let's encrypt 的中间证书,配置https证书时既不要漏掉中间证书,也不要包含根证书。在 nginx 配置中,需要把中间证书和网站证书合在一起:
wget -o - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem cat signed.crt intermediate.pem > chained.pem
为了后续能顺利启用ocsp stapling,我们再把根证书和中间证书合在一起(此步也可省略)
wget -o - https://letsencrypt.org/certs/isrgrootx1.pem > root.pem cat intermediate.pem root.pem > full_chained.pem
let's encrypt签发的证书只有90天有效期,推荐使用脚本定期更新。创建一个renew_cert.sh
并通过chmod a+x renew_cert.sh
赋予执行权限。文件内容如下:
#!/bin/bash cd /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 > intermediate.pem cat signed.crt intermediate.pem > chained.pem systemctl restart nginx
在crontabl中配置定时任务0 0 1 * * /etc/nginx/ssl/renew_cert.sh >/dev/null 2>&1
0x07 下载wordpress并配置nginx
将wordpress下载到/home/wordpress/
目录下wget https://wordpress.org/latest.tar.gz
tar zxvf latest.tar.gz
解压wordpress文件
chown -r wordpress:wordpress wordpress
将wordpress目录的所有者改为wordpress用户
接着,打开vim /etc/nginx/nginx.conf
将nginx的运行角色改为wordpress
··· user wordpress; worker_processes auto; ···
然后这里我把处于解耦合的目的,把主配置文件nginx.conf里的server配置块注释掉
新建sudo mkdir /etc/nginx/snippets
目录并vim letsencrypt.conf
来将以下配置粘贴到里面
location ^~ /.well-known/acme-challenge/ { alias /home/wordpress/challenges/; try_files $uri =404; }
接下来新建vim /etc/nginx/conf.d/wordpress.conf
配置文件,修改成如下配置
# redirect http -> https server { listen 80; server_name www.nomansky.xyz nomansky.xyz; include snippets/letsencrypt.conf; return 301 https://nomansky.xyz$request_uri; } # redirect www -> non www server { listen 443 ssl http2; server_name www.nomansky.xyz; ssl_certificate /etc/nginx/ssl/chained.pem; ssl_certificate_key /etc/nginx/ssl/domain.key; return 301 https://nomansky.com$request_uri; } server { listen 443 ssl http2; server_name nomansky.com; root /home/wordpress/wordpress; index index.php; # ssl parameters ssl_certificate /etc/nginx/ssl/chained.pem; ssl_certificate_key /etc/nginx/ssl/domain.key; # log files access_log /home/wordpress/log/nomansky.xyz.access.log; error_log /home/wordpress/log/nomansky.xyz.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param script_filename $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires max; log_not_found off; }
创建日志目录mkdir -p /home/wordpress/log
,并设置权限chown -r wordpress:wordpress /home/wordpress/log
nginx -t
查看是否是否语法检查正常,如正常则nginx -s reload
重载nginx
接下来看到wordpress页面成功打开了,就此大功告成啦
以上がnginx と WordPress を使用して個人ブログを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Nginxは、高い同時コンテンツと静的コンテンツの処理に適していますが、Apacheは複雑な構成と動的コンテンツに適しています。 1。NGINXは、交通量の多いシナリオに適した同時接続を効率的に処理しますが、動的コンテンツを処理するときは追加の構成が必要です。 2。Apacheは、複雑なニーズに適したリッチモジュールと柔軟な構成を提供しますが、並行性のパフォーマンスが低いです。

NginxとApacheにはそれぞれ独自の利点と欠点があり、選択は特定のニーズに基づいている必要があります。 1.Nginxは、非同期の非ブロッキングアーキテクチャのため、高い並行性シナリオに適しています。 2。Apacheは、モジュラー設計のため、複雑な構成を必要とする低変動シナリオに適しています。

Nginxunitは、複数のプログラミング言語をサポートし、動的構成、ゼロダウンタイム更新、組み込みのロードバランシングなどの機能を提供するオープンソースアプリケーションサーバーです。 1。動的構成:再起動せずに構成を変更できます。 2。多言語サポート:Python、Go、Java、PHPなどと互換性があります。 4。ビルトインロードバランシング:リクエストは、複数のアプリケーションインスタンスに配布できます。

nginxunitは、多言語プロジェクトや動的な構成要件に適した、apachetomcat、gunicorn、node.jsビルトインHTTPサーバーよりも優れています。 1)複数のプログラミング言語をサポートします。2)動的な構成リロード、3)高いスケーラビリティと信頼性を必要とするプロジェクトに適した組み込みの負荷分散機能を提供します。

Nginxunitは、モジュラーアーキテクチャと動的な再構成機能により、アプリケーションのパフォーマンスと管理性を向上させます。 1)モジュラー設計には、マスタープロセス、ルーター、アプリケーションプロセスが含まれ、効率的な管理と拡張をサポートします。 2)動的再構成により、CI/CD環境に適した、実行時に構成をシームレスに更新できます。 3)多言語サポートは、言語ランタイムの動的なロードを通じて実装され、開発の柔軟性が向上します。 4)イベント駆動型モデルと非同期I/Oによって高性能が達成され、高い並行性の下でも効率的なままです。 5)申請プロセスを分離し、アプリケーション間の相互の影響を減らすことにより、セキュリティが改善されます。

nginxunitを使用して、アプリケーションを複数の言語で展開および管理できます。 1)nginxunitをインストールします。 2)PythonやPHPなどのさまざまなタイプのアプリケーションを実行するように構成します。 3)アプリケーション管理に動的構成関数を使用します。これらの手順を通じて、アプリケーションを効率的に展開および管理し、プロジェクトの効率を向上させることができます。

NGINXは、高い並行接続の処理に適していますが、Apacheは複雑な構成とモジュール拡張が必要なシナリオにより適しています。 1.Nginxは、高性能と低リソース消費で知られており、高い並行性に適しています。 2. Apacheは、その安定性とリッチモジュール拡張機能で知られています。これは、複雑な構成ニーズに適しています。

Nginxunitは、動的な構成と高性能アーキテクチャにより、アプリケーションの柔軟性とパフォーマンスを向上させます。 1.動的構成により、サーバーを再起動せずにアプリケーション構成を調整できます。 2.高性能は、イベント駆動型および非ブロッキングアーキテクチャおよびマルチプロセスモデルに反映され、同時接続を効率的に処理し、マルチコアCPUを利用できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック









