Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So erstellen Sie einen persönlichen Blog mit Nginx und WordPress

So erstellen Sie einen persönlichen Blog mit Nginx und WordPress

WBOY
WBOYnach vorne
2023-05-11 19:19:041852Durchsuche

0x01 Voraussetzungen Berechtigungen oder Root-Berechtigungen Benutzer, hier erstelle ich einen neuen WordPress-Benutzer, um das Programm auszuführen, und verwende den folgenden Befehl, um ihn auf „nologin“ zu setzen sudo yum install -y epel- release installierte die epel-Quelle

und schloss Firewalld ab
  • 0x 02 Installation sudo systemctl start nginx

  • lib/nginx/
  • Besuchen Sie jetzt http://nomansky.xyz, um zu sehen: Gehen Sie zur folgenden Seite. Dies bedeutet, dass Nginx erfolgreich installiert wurde Ein Open-Source-Zweig von MySQL ist zur Standarddatenbank geworden, die von Centos als Ersatz für MySQL verwendet wird. Daher verwende ich hier auch Mariadb als Datenbank.
    • Führen Sie sudo yum install mariadb-server -y aus, um mariadb zu installieren.
  • Starten Sie mariadb und stellen Sie ein, dass es beim Booten automatisch gestartet wird. sudo systemctl aktivieren mari adb

  • Führen Sie sudo mysql_secure_installation aus, um mariadb zu härten. Es werden Anforderungen zum Festlegen des Datenbank-Root-Passworts, zum Entfernen anonymer Benutzer, zum Beschränken des Datenbank-Root-Benutzers auf die Anmeldung beim Datenbank-Root-Benutzer nur über „localhost“ und zum Entfernen der Testdatenbank angezeigt. Es wird empfohlen, „y“ (Ja) auszuwählen. für alle, wie in der Abbildung unten gezeigt. Das Standard-Datenbank-Root-Passwort ist Empty
    • Ändern Sie außerdem die von mariadb überwachte Adresse in 127.0.0.1:3306

    a. vim /etc/my.cnf .d/server.cnfÖffnen Sie die Mariadb-Konfigurationsdatei

b Fügen Sie bind=127.0.0.1 unter hinzu. mysqld], wie in der Abbildung unten gezeigt Show

    Wie um einen persönlichen Blog mit Nginx und WordPress zu erstellen“ /><li><p></p> c. Führen Sie <code>systemctl restart mariadb</code> aus, um die Datenbank neu zu starten </li><li><p>d. Führen Sie <code>netstat -lntp</code> und Sie aus Sie können sehen, dass die lokale Loopback-Adresse abgehört wird </p></li><ul class=0x04 Datenbank erstellen
  • Nachdem wir die Mariadb-Datenbank installiert und gestärkt haben, müssen wir natürlich eine neue Datenbank erstellen, um die Daten zu speichern. Hier verwenden wir zuerst das Root-Konto Passwort zuvor festgelegt, um sich bei der Datenbank anzumelden mysql -uroot -p, und führen Sie die folgenden Anweisungen aus
  • 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;
  • 0x05, um PHP zu installieren

Die Standardversion von PHP in Centos ist 5.4, aber die Die empfohlene Version von WordPress ist 7.2, daher installieren wir hier die PHP7.2-Version.
  • Führen Sie die folgenden Befehle aus, um PHP und alle erforderlichen PHP-Erweiterungen zu installieren.

    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

    Wir haben PHP FPM installiert, weil wir Nginx als Webserver verwenden, Nginx jedoch nicht kommen mit dieser Komponente. Darüber hinaus wird PHP FPM standardmäßig auf Port 9000 als Apache-Benutzer ausgeführt. Wir haben diesen Benutzer in WordPress geändert und ihn von TCP-Socket in Unix-Socket geändert. Weitere Informationen zum Ändern finden Sie in den folgenden Schritten. Öffnen Sie /etc/php- fpm.d/www.conf und ändern Sie die folgenden Stellen
  • ...
    user = wordpress
    ...
    group = wordpress
    ...
    listen = /run/php-fpm/www.sock
    ...
    listen.owner = wordpress
    listen.group = wordpress
  • Verwenden Sie den Befehl sudo chown -r root:wordpress /var/lib/php, um sicherzustellen dass alle Gruppenberechtigungen des Verzeichnisses WordPress sind.

    PHP FPM automatisch neu starten >

  • 0x06 Kostenloses Zertifikat beantragen

    So erstellen Sie einen persönlichen Blog mit Nginx und WordPressAls Technikfreak (Qiong) (Bi) werde ich natürlich, wenn es ein kostenloses Zertifikat gibt, es auf jeden Fall verwenden. Daher können wir ein kostenloses Let's-Encrypt-Zertifikat beantragen. Dieses Zertifikat ist nicht nur kostenlos, sondern auch sehr einfach zu bedienen. Obwohl es jeweils nur 90 Tage gültig ist, kann es durch die Konfiguration der Crontab über ein Skript regelmäßig aktualisiert werden .

    a. mkdir -p /etc/nginx/sslDas Verzeichnis speichert das Zertifikat

    b openssl genrsa 4096 > Erstellen Sie einen privaten RSA-Schlüssel, der von Let's Encrypt verwendet wird, um Sie zu identifizieren.

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

      So erstellen Sie einen persönlichen Blog mit Nginx und 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;
        }
      }

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

      So erstellen Sie einen persönlichen Blog mit Nginx und 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

      为了后续能顺利启用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页面成功打开了,就此大功告成啦

      So erstellen Sie einen persönlichen Blog mit Nginx und WordPress

    Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen persönlichen Blog mit Nginx und WordPress. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen