Bagaimana untuk membina blog peribadi menggunakan nginx dan WordPress

WBOY
Lepaskan: 2023-05-11 19:19:04
ke hadapan
1964 orang telah melayarinya

Prasyarat 0x01

  • Ada nama domain, nama domain saya sendiri ialah nomansky.xyz

  • Satu vps Taiwan atau hos awan, jika ia adalah IP domestik, ia perlu didaftarkan

  • Pengguna dengan kebenaran sudo atau kebenaran root, di sini saya mencipta pengguna wordpress baharu untuk menjalankan program , dan gunakan perintah berikut untuk menetapkannya sebagai nologin

    • a sudo useradd -s /sbin/nologin wordpress

  • <.>Gunakan sudo yum install -y epel- release memasang sumber epel

  • Tutup firewall, saya lebih suka menggunakan iptables untuk pengukuhan keselamatan

    • a. sudo systemctl menghentikan firewall

    • b. >

    Laksanakan sudo yum install nginx untuk memasang nginx

Mulakan daemon nginx dan tetapkannya supaya bermula secara automatik semasa but

  • a. sudo systemctl mulakan nginx
  • b sudo systemctl dayakan nginx
    • Tambah. pengguna wordpress ke kumpulan nginx usermod -a -g nginx wordpress, dan tetapkan kebenaran direktori chmod 770 -r /var/lib/nginx/
    • Pada masa ini, lawati http:// nomansky.xyz dan anda akan melihat halaman berikut, yang bermaksud nginx Berjaya dipasang

  • 0x03 Pasang mariadb

mariadb ialah cawangan sumber terbuka mysql, Ia telah menjadi pangkalan data lalai yang digunakan oleh centos untuk menggantikan mysql, jadi saya juga menggunakan mariadb sebagai pangkalan data di sini.

Bagaimana untuk membina blog peribadi menggunakan nginx dan WordPress

Laksanakan sudo yum install mariadb-server -y untuk memasang mariadb

Mulakan mariadb dan tetapkannya supaya bermula secara automatik semasa but

  • a. sudo systemctl mulakan mariadb
  • b. sudo systemctl enable mariadb
    • laksanakan sudo mysql_secure_installation untuk mengeraskan mariadb. Anda akan melihat keperluan untuk menetapkan kata laluan akar pangkalan data, mengalih keluar pengguna tanpa nama, mengehadkan pengguna akar pangkalan data untuk boleh log masuk ke pengguna akar pangkalan data hanya melalui localhost, dan mengalih keluar pangkalan data ujian Adalah disyorkan untuk memilih y (ya) untuk semua, seperti yang ditunjukkan dalam rajah di bawah Kata laluan akar pangkalan data lalai ialah Kosong
  • Selain itu, tukar alamat yang dipantau oleh mariadb kepada

a.

Buka fail konfigurasi mariadbBagaimana untuk membina blog peribadi menggunakan nginx dan WordPress

b. Tambahkan 127.0.0.1:3306 di bawah
, seperti yang ditunjukkan dalam rajah di bawah

vim /etc/my.cnf.d/server.cnf

[mysqld]c. Laksanakan bind=127.0.0.1mulakan semula pangkalan data

d ia sedang mendengar alamat gelung balik tempatan Bagaimana untuk membina blog peribadi menggunakan nginx dan WordPress

0x04 Cipta pangkalan data

systemctl restart mariadb
Selepas memasang pangkalan data mariadb dan mengukuhkannya, kita semestinya perlu mencipta pangkalan data baharu untuk menyimpan data. Di sini, mula-mula kami menggunakan kata laluan akaun akar yang ditetapkan sebelum ini untuk log masuk ke pangkalan data

, dan laksanakan pernyataan berikut

create database wordpress character set utf8mb4 collate utf8mb4_general_ci; # 创建数据库
grant all on wordpress.* to &#39;wordpress&#39;@&#39;localhost&#39; identified by &#39;你的密码&#39;; # 创建用户
flush privileges;                              # 刷新数据库权限
exit;
Salin selepas log masuk
netstat -lntp

0x05 Pasang php

Versi lalai php untuk centos ialah 5.4, tetapi versi yang disyorkan untuk wordpress ialah 7.2, jadi kami memasangnya di sini Versi php7.2

Laksanakan arahan berikut untuk memasang php dan semua sambungan php yang diperlukan

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
Salin selepas log masuk
mysql -uroot -pKami memasang php fpm kerana kami menggunakan nginx sebagai pelayan web, dan nginx tidak disertakan dengan komponen ini. Selain itu, php fpm berjalan pada port 9000 sebagai pengguna apache secara lalai Kami menukar pengguna ini kepada wordpress dan menukarnya daripada soket tcp kepada soket unix Untuk pengubahsuaian tertentu, sila lihat langkah berikut

Buka <🎜. >, Dan ubah suai tempat berikut

...
user = wordpress
...
group = wordpress
...
listen = /run/php-fpm/www.sock
...
listen.owner = wordpress
listen.group = wordpress
Salin selepas log masuk
Gunakan arahan

untuk memastikan semua kebenaran kumpulan direktori adalah wordpress


Mulakan semula dan but untuk memulakan php fpm secara automatik

a.

/etc/php-fpm.d/www.confb.

sudo chown -r root:wordpress /var/lib/php

0x06 Mohon sijil percuma


Sebagai teknikal (qiong) (bi). ) geek, saya pasti mendapat sijil percuma Gunakan percuma. Oleh itu, kami boleh memohon sijil mari menyulitkan percuma Sijil ini bukan sahaja percuma, tetapi juga sangat mudah untuk dikendalikan Walaupun ia hanya sah selama 90 hari pada satu masa, crontab boleh dikonfigurasikan untuk dikemas kini secara berkala melalui skrip. .

sudo systemctl restart php-fpm
a. sudo systemctl enable php-fpmDirektori menyimpan sijil

b. >

c.

Buat nama domain rsa kunci peribadi

d. openssl req -new -sha256 -key domain.key -out domain.csr有了私钥文件,就可以生成 csr 文件了。生成csr会要求填入一些东西信息,这里common name为你的域名

Bagaimana untuk membina blog peribadi menggunakan nginx dan WordPress

我们知道,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;
  }
}
Salin selepas log masuk

以上配置表示查找 /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,看到如下图所示,则说明生成成功了

Bagaimana untuk membina blog peribadi menggunakan nginx dan WordPress

最后还要下载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
Salin selepas log masuk

为了后续能顺利启用ocsp stapling,我们再把根证书和中间证书合在一起(此步也可省略)

wget -o - https://letsencrypt.org/certs/isrgrootx1.pem > root.pem
cat intermediate.pem root.pem > full_chained.pem
Salin selepas log masuk

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
Salin selepas log masuk

在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;
···
Salin selepas log masuk

然后这里我把处于解耦合的目的,把主配置文件nginx.conf里的server配置块注释掉

新建sudo mkdir /etc/nginx/snippets目录并vim letsencrypt.conf来将以下配置粘贴到里面

location ^~ /.well-known/acme-challenge/ {
   alias /home/wordpress/challenges/;
   try_files $uri =404;
}
Salin selepas log masuk

接下来新建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;
    }
Salin selepas log masuk

创建日志目录mkdir -p /home/wordpress/log,并设置权限chown -r wordpress:wordpress /home/wordpress/log

nginx -t查看是否是否语法检查正常,如正常则nginx -s reload重载nginx

接下来看到wordpress页面成功打开了,就此大功告成啦

Bagaimana untuk membina blog peribadi menggunakan nginx dan WordPress

Atas ialah kandungan terperinci Bagaimana untuk membina blog peribadi menggunakan nginx dan WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan