


Comment créer un blog personnel en utilisant nginx et WordPress
0x01 Conditions préalables
-
Il y a un nom de domaine, mon propre nom de domaine est nomansky.xyz
#🎜 🎜# - Un hôte vps ou cloud, s'il s'agit d'une IP domestique, il doit être enregistré
- Utilisateurs avec des autorisations sudo ou root , ici, j'ai créé un nouvel utilisateur wordpress pour exécuter le programme et je l'ai défini sur nologin à l'aide de la commande suivante : #
- Fermer firewalld, je je préfère utiliser iptables pour le renforcement de la sécurité
- #🎜🎜 #a. sudo systemctl arrêter le pare-feu
- b. sudo systemctl désactiver le pare-feu
- # 🎜🎜#0x02 Installez nginx
- # 🎜🎜#Exécutez sudo yum install nginx pour installer nginx
- Utilisez sudo yum install -y epel-release pour installer la source epel
#🎜 🎜#
a sudo systemctl start nginx-
.
b. sudo systemctl activate nginx - Ajoutez l'utilisateur wordpress au groupe nginx usermod -a -g nginx wordpress et définissez le répertoire autorisations chmod 770 -r /var/lib/nginx/
- À ce moment, visitez http://nomansky.xyz et vous verrez la page suivante, ce qui signifie que nginx a été installé avec succès. #
- 0x03 Installer mariadb mariadb, en tant que branche open source de mysql, est devenue la base de données par défaut utilisée par centos pour remplace mysql, j'utilise donc également mariadb comme base de données.
- Exécutez sudo yum install mariadb-server -y pour installer mariadb
Démarrez mariadb et réglez-le sur Boot Sudo SystemCTL Démarrer MariaDB # 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 # # b. pour renforcer mariadb. Vous verrez les exigences pour définir le mot de passe root de la base de données, supprimer les utilisateurs anonymes, limiter l'utilisateur root de la base de données pour qu'il puisse se connecter à l'utilisateur root de la base de données uniquement via localhost et supprimer la base de données de test. Il est recommandé de sélectionner y (oui). pour tous, comme le montre la figure ci-dessous. Le mot de passe racine de la base de données par défaut est Vide
In. De plus, changez l'adresse d'écoute de mariadb en 127.0.0.1:3306
a vim /etc/my.cnf.d/server.cnf.
Ouvrez le fichier de configuration mariadb#🎜 🎜#
- b Ajoutez
- #🎜🎜 #
#🎜 🎜#
c. Exécutez -
d . Exécutez
netstat -lntp
Vous pouvez voir qu'il a été surveillé en tant qu'adresse de bouclage locale - 0x04 Créer une base de données #🎜 🎜#Après avoir installé la base de données mariadb et l'avoir renforcée, nous devons naturellement créer une nouvelle base de données pour stocker les données. Tout d'abord, nous utilisons le mot de passe du compte root précédemment défini pour nous connecter à la base de données
mysql -uroot -p et exécutez les instructions suivantes
- 0x05 Install php La version par défaut de php dans centos est 5.4, mais la version recommandée par wordpress est 7.2, nous installons donc la version de php7.2 ici
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
Copier après la connexionNous avons installé php fpm car nous utilisons nginx comme serveur Web , et nginx n'est pas fourni avec ce composant. De plus, php fpm s'exécute par défaut sur le port 9000 en tant qu'utilisateur Apache. Nous avons changé cet utilisateur en wordpress et l'avons changé de socket TCP en socket Unix. Pour des modifications spécifiques, veuillez consulter les étapes suivantes
Open./etc/php-fpm.d/www.conf
, et modifiez les endroits suivants
bind=127.0.0.1
sous [mysqld]
, comme indiqué. ci-dessoussystemctl restart mariadb
pour redémarrer la base de donnéescreate database wordpress character set utf8mb4 collate utf8mb4_general_ci; # 创建数据库 grant all on wordpress.* to 'wordpress'@'localhost' identified by '你的密码'; # 创建用户 flush privileges; # 刷新数据库权限 exit;
... user = wordpress ... group = wordpress ... listen = /run/php-fpm/www.sock ... listen.owner = wordpress listen.group = wordpress
sudo chown -r root:wordpress /var/ lib/php< /code>Assurez-vous que toutes les autorisations de groupe du répertoire sont wordpress<p ><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168380394650486.png" class="lazy" alt="Comment créer un blog personnel en utilisant nginx et WordPress" />Redémarrez et démarrez php fpm</p><p ><code>127.0.0.1:3306
a. vim /etc/my.cnf.d/server.cnf
打开mariadb的配置文件
b. 在[mysqld]
下面加上bind=127.0.0.1
,如下图所示
c. 执行systemctl restart mariadb
重启数据库
d. 执行netstat -lntp
可以看到已经监听为本地回环地址了
0x04 创建数据库
在安装完mariadb数据库,并对其进行加固后,我们自然需要新建一个数据库来存放数据,这里首先我们用之前设置的root账号密码来登陆数据库mysql -uroot -p
,并执行以下几条语句
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/ permanent; } }
0x05 安装php
centos的php默认版本为5.4,但是wordpress推荐的版本为7.2,所以我们这里安装php7.2的版本
执行下列命令安装php和所有需要的php扩展
wget -o - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem cat signed.crt intermediate.pem > chained.pem
我们安装php fpm是因为我们是用nginx作为web server,而nginx并没有自带这个组件。此外,php fpm 默认是以apache用户运行在9000端口,我们把这个用户改为wordpress并且把它从tcp socket改为unix socket,具体怎么修改查看下面的步骤
打开/etc/php-fpm.d/www.conf
,并修改如下地方
wget -o - https://letsencrypt.org/certs/isrgrootx1.pem > root.pem cat intermediate.pem root.pem > full_chained.pem
用命令sudo chown -r root:wordpress /var/lib/php
确保目录的所有组权限为wordpress
重启并开机自启动php fpm
a. sudo systemctl restart php-fpm
b. sudo systemctl enable php-fpm
0x06 申请免费证书
作为一个技(qiong)术(bi)宅,自然有免费的证书就肯定用免费的。因此我们可以申请免费的let's encrypt证书,这个证书不但免费,而且操作非常简单,虽然每次只有90天的有效期,但可以通过脚本配置crontab定期更新。
a. mkdir -p /etc/nginx/ssl
目录存放证书
b. openssl genrsa 4096 > account.key
进入这个目录,创建一个 rsa 私钥用于 let's encrypt 识别你的身份
c. openssl genrsa 4096 > domain.key
a sudo systemctl. redémarrer php-fpm< /code><br/>b. <code>sudo systemctl activer php-fpm
mkdir -p /etc/nginx/ssl
stocke le certificat #🎜🎜##🎜🎜##🎜🎜#b. > openssl genrsa 4096 > account.keyEntrez dans ce répertoire et créez une clé privée rsa pour que nous puissions vous identifier #🎜🎜##🎜🎜##🎜🎜#c openssl genrsa 4096 > ; domain.key
Créer un nom de domaine clé privée rsa#🎜🎜##🎜🎜#d. 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页面成功打开了,就此大功告成啦
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Il existe quatre façons d'ajuster la liste des articles WordPress: utilisez des options de thème, utilisez des plugins (tels que l'ordre des types de publication, la liste des publiques WP, des trucs boxy), utilisez du code (ajoutez des paramètres dans le fichier functions.php), ou modifiez directement la base de données WordPress.

La sélection des plugins de blocage IP WordPress est cruciale. Les types suivants peuvent être pris en compte: basé sur .htaccess: fonctionnement efficace mais complexe; Fonctionnement de la base de données: flexible, mais faible efficacité; pare-feu: performances de haute sécurité, mais configuration complexe; Autécrit: le plus haut contrôle, mais nécessite un niveau plus technique.

Pour vous connecter à un compte de site Web WordPress: Visitez la page de connexion: entrez l'URL du site Web plus "/wp-login.php". Entrez votre nom d'utilisateur et votre mot de passe. Cliquez sur "Connexion". Vérification Vérification en deux étapes (facultative). Après avoir réussi à vous connecter, vous verrez le tableau de bord du site Web.

Guide de résolution d'erreur WordPress: 500 Erreur du serveur interne: désactivez le plug-in ou vérifiez le journal d'erreur du serveur. 404 Page introuvable: Vérifiez le permalien et assurez-vous que le lien de la page est correct. Écran blanc de la mort: augmentez la limite de mémoire PHP du serveur. Erreur de connexion de la base de données: vérifiez l'état du serveur de base de données et la configuration WordPress. Autres conseils: activer le mode de débogage, vérifier les journaux d'erreur et rechercher le support. Empêcher les erreurs: mettre à jour régulièrement WordPress, installer uniquement les plugins nécessaires, sauvegarder régulièrement votre site Web et optimiser les performances du site Web.

Les étapes pour créer un en-tête personnalisé dans WordPress sont les suivantes: modifier le fichier de thème "header.php". Ajoutez le nom et la description de votre site Web. Créez un menu de navigation. Ajoutez une barre de recherche. Enregistrez les modifications et affichez votre en-tête personnalisé.

Activer les commentaires dans le site Web de WordPress: 1. Connectez-vous au panneau d'administration, accédez à "Paramètres" - "Discussions" et vérifiez "Autoriser les commentaires"; 2. Sélectionnez un emplacement pour afficher les commentaires; 3. Personnaliser les commentaires; 4. Gérer les commentaires, approuver, rejeter ou supprimer; 5. Utiliser & lt ;? php commentaires_template (); ? & gt; Tags pour afficher les commentaires; 6. Activer les commentaires imbriqués; 7. Ajuster la forme du commentaire; 8. Utilisez des plugins et des codes de vérification pour empêcher les commentaires du spam; 9. Encouragez les utilisateurs à utiliser Gravatar Avatar; 10. Créer des commentaires pour se référer à

Un guide étape par étape pour remplacer une image d'en-tête de WordPress: connectez-vous au tableau de bord WordPress et accédez à l'apparence & gt; thème. Sélectionnez le sujet que vous souhaitez modifier et cliquez sur Personnaliser. Ouvrez le panneau Options de thème et recherchez les options d'image d'en-tête ou d'en-tête du site. Cliquez sur le bouton Sélectionner l'image et télécharger une nouvelle image de tête. Cramez l'image et cliquez sur Enregistrer et recadrer. Cliquez sur le bouton Enregistrer et publier pour mettre à jour les modifications.

Les dates d'édition WordPress peuvent être annulées de trois manières: 1. Installez le plug-in Disable Activer la date de post; 2. Ajouter du code dans le fichier functions.php; 3. Modifiez manuellement la colonne post_modified dans la table WP_Posts.
