운영 및 유지보수 엔진스 nginx와 WordPress를 사용하여 개인 블로그를 구축하는 방법

nginx와 WordPress를 사용하여 개인 블로그를 구축하는 방법

May 11, 2023 pm 07:19 PM
wordpress nginx

0x01 전제 조건

  • 도메인 이름이 있고, 나만의 도메인 이름은 nomansky.xyz

  • vps나 클라우드 호스트, 국내 IP라면 등록이 필요합니다

  • Sudo를 가지고 권한 또는 루트 권한 사용자인 경우 여기에서는 프로그램을 실행하기 위한 새 wordpress 사용자를 만들고 다음 명령을 사용하여 nologin

    • a로 설정합니다. sudo useradd -s /sbin/nologin wordpress

  • 사용 sudo yum install -y epel- release는 epel 소스

  • 를 설치하고 방화벽을 종료합니다. 저는 보안 강화를 위해 iptables를 사용하는 것을 선호합니다

    • a sudo systemctl stop Firewalld

    • b.

0x 02 설치 sudo systemctl 활성화 ngin x

  • wordpress 사용자를 nginx 그룹 usermod -a -g nginx wordpress에 추가하고 디렉터리 권한을 설정합니다 chmod 770 -r /var/lib/nginx /

  • 이제 http://nomansky.xyz를 방문하여 확인하세요. 다음 페이지로 이동하면 nginx가 성공적으로 설치되었음을 알 수 있습니다.

    • 0x03 mariadb

    mariadb를 오픈 소스로 설치하세요. mysql의 분기는 mysql을 대체하기 위해 centos에서 사용하는 기본 데이터베이스가 되었기 때문에 여기서도 mariadb를 데이터베이스로 사용하고 있습니다.
  • sudo yum install mariadb-server -y를 실행하여 mariadb를 설치하세요

  • mariadb를 시작하고 boot

nginx와 WordPress를 사용하여 개인 블로그를 구축하는 방법

a에서 자동으로 시작되도록 설정하세요. sudo systemctl start mariadb

b. 내가 가능하게 해줘 mari adb

  • sudo mysql_secure_installation을 실행하여 mariadb를 강화하세요. 데이터베이스 루트 비밀번호를 설정하고, 익명 사용자를 제거하고, 데이터베이스 루트 사용자가 localhost를 통해서만 데이터베이스 루트 사용자에 로그인할 수 있도록 제한하고, 테스트 데이터베이스를 제거하기 위한 요구 사항이 표시됩니다. y(예)를 선택하는 것이 좋습니다. 모두 아래 그림과 같이 기본 데이터베이스 루트 비밀번호는 비어있습니다

    • 또한, mariadb에서 모니터링하는 주소를 127.0.0.1:3306

    • 으로 변경하세요. a. vim /etc/my.cnf .d/server.cnfmariadb 구성 파일을 엽니다
    • b. 아래에 <code>bind=127.0.0.1을 추가합니다. mysqld], 아래 그림과 같이
  • 방법을 표시하세요. nginx 및 WordPress를 사용하여 개인 블로그 구축


    c. systemctl restart mariadb를 실행하여 데이터베이스를 다시 시작합니다

d. netstat -lntp를 실행하면 로컬 루프백 주소 nginx와 WordPress를 사용하여 개인 블로그를 구축하는 방법

0x04 데이터베이스 생성 127.0.0.1:3306

a. vim /etc/my.cnf.d/server.cnf打开mariadb的配置文件

b. 在[mysqld]下面加上bind=127.0.0.1,如下图所示

nginx와 WordPress를 사용하여 개인 블로그를 구축하는 방법

c. 执行systemctl restart mariadb重启数据库

d. 执行netstat -lntp可以看到已经监听为本地回环地址了

0x04 创建数据库

在安装完mariadb数据库,并对其进行加固后,我们自然需要新建一个数据库来存放数据,这里首先我们用之前设置的root账号密码来登陆数据库mysql -uroot -p,并执行以下几条语句

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 安装php

centos的php默认版本为5.4,但是wordpress推荐的版本为7.2,所以我们这里安装php7.2的版本
执行下列命令安装php和所有需要的php扩展

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
로그인 후 복사

我们安装php fpm是因为我们是用nginx作为web server,而nginx并没有自带这个组件。此外,php fpm 默认是以apache用户运行在9000端口,我们把这个用户改为wordpress并且把它从tcp socket改为unix socket,具体怎么修改查看下面的步骤

打开/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
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

mariadb 데이터베이스를 설치하고 강화한 후에는 당연히 데이터를 저장할 새 데이터베이스를 만들어야 합니다. 여기서는 먼저 루트 계정 비밀번호를 사용합니다. 이전에 데이터베이스 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
로그인 후 복사
로그인 후 복사
🎜 저희는 nginx를 웹서버로 사용하기 때문에 php fpm을 설치했는데 nginx가 안 나오네요. 이 구성 요소로. 또한, php fpm은 기본적으로 apache 사용자로 포트 9000에서 실행됩니다. 이 사용자를 wordpress로 변경하고 tcp 소켓에서 unix 소켓으로 변경했습니다. 수정 방법에 대한 자세한 내용은 아래 단계를 참조하세요.🎜🎜 열기 /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. >🎜🎜🎜0x06 무료 인증서 신청🎜 🎜🎜기술(qiong)(비) 괴짜로서 당연히 무료 인증서가 있으면 꼭 사용하겠습니다. 따라서 무료 Let's encrypt 인증서를 신청할 수 있습니다. 이 인증서는 무료일 뿐만 아니라, 한 번에 90일 동안만 유효하지만 스크립트를 통해 crontab을 구성하여 정기적으로 업데이트할 수 있습니다. . 🎜🎜🎜a. mkdir -p /etc/nginx/ssl인증서🎜🎜🎜b를 ​​저장합니다. openssl genrsa 4096 > 하나 만들기 rsa 개인 키는 let's encrypt에서 사용자를 식별하는 데 사용됩니다🎜🎜🎜c. openssl genrsa 4096 > domain.key도메인 이름 rsa 개인 키를 만듭니다🎜🎜

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

nginx와 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,看到如下图所示,则说明生成成功了

nginx와 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页面成功打开了,就此大功告成啦

nginx와 WordPress를 사용하여 개인 블로그를 구축하는 방법

위 내용은 nginx와 WordPress를 사용하여 개인 블로그를 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

WordPress 기사 목록을 조정하는 방법 WordPress 기사 목록을 조정하는 방법 Apr 20, 2025 am 10:48 AM

WordPress 기사 목록을 조정하는 4 가지 방법이 있습니다. 테마 옵션 사용, 플러그인 사용 (예 : Post Type Order, WP Post List, Boxy Sitture), 코드 사용 (Functions.php 파일의 설정 추가) 또는 WordPress 데이터베이스를 직접 수정하십시오.

WordPress 차단 IP 용 플러그인은 무엇입니까? WordPress 차단 IP 용 플러그인은 무엇입니까? Apr 20, 2025 am 08:27 AM

WordPress IP 차단 플러그인 선택이 중요합니다. 다음 유형을 고려할 수 있습니다. .htaccess : 효율적이지만 복잡한 작동; 데이터베이스 작동 : 유연하지만 효율성이 낮습니다. 방화벽 : 높은 보안 성능이지만 복잡한 구성; 자체 작성 : 가장 높은 제어력이 있지만 더 많은 기술적 수준이 필요합니다.

WordPress의 편집 날짜를 취소하는 방법 WordPress의 편집 날짜를 취소하는 방법 Apr 20, 2025 am 10:54 AM

WordPress 편집 날짜는 세 가지 방법으로 취소 할 수 있습니다. 1. Post Date Disable 플러그인 설치; 2. functions.php 파일에 코드를 추가합니다. 3. WP_Posts 테이블에서 Post_Modified 열을 수동으로 편집합니다.

WordPress의 헤더를 작성하는 방법 WordPress의 헤더를 작성하는 방법 Apr 20, 2025 pm 12:09 PM

WordPress에서 사용자 정의 헤더를 만드는 단계는 다음과 같습니다. 테마 파일 "header.php"편집. 웹 사이트 이름과 설명을 추가하십시오. 탐색 메뉴를 만듭니다. 검색 표시 줄을 추가하십시오. 변경 사항을 저장하고 사용자 정의 헤더를보십시오.

WordPress 테마의 헤드 이미지를 변경하는 방법 WordPress 테마의 헤드 이미지를 변경하는 방법 Apr 20, 2025 am 10:00 AM

WordPress의 헤더 이미지를 교체하기위한 단계별 안내서 : WordPress 대시 보드에 로그인하고 모양 & gt; 테마로 이동하십시오. 편집 할 주제를 선택하고 사용자 정의를 클릭하십시오. 테마 옵션 패널을 열고 사이트 헤더 또는 헤더 이미지 옵션을 찾으십시오. 이미지 선택 버튼을 클릭하고 새 헤드 이미지를 업로드하십시오. 이미지를 자르고 저장 및 자르기를 클릭하십시오. 저장 및 게시 버튼을 클릭하여 변경 사항을 업데이트하십시오.

WordPress 호스트를위한 웹 사이트를 구축하는 방법 WordPress 호스트를위한 웹 사이트를 구축하는 방법 Apr 20, 2025 am 11:12 AM

WordPress 호스트를 사용하여 웹 사이트를 구축하려면 다음과 같이 필요합니다. 신뢰할 수있는 호스팅 제공 업체를 선택하십시오. 도메인 이름을 구입하십시오. WordPress 호스팅 계정을 설정하십시오. 주제를 선택하십시오. 페이지와 기사를 추가하십시오. 플러그인을 설치하십시오. 웹 사이트를 사용자 정의하십시오. 귀하의 웹 사이트를 게시하십시오.

WordPress에 오류가 있으면해야 할 일 WordPress에 오류가 있으면해야 할 일 Apr 20, 2025 am 11:57 AM

WordPress 오류 해상도 안내서 : 500 내부 서버 오류 : 플러그인을 비활성화하거나 서버 오류 로그를 확인하십시오. 404 페이지를 찾을 수 없습니다 : Permalink를 점검하고 페이지 링크가 올바른지 확인하십시오. 흰색 사망 화면 : 서버 PHP 메모리 제한을 늘리십시오. 데이터베이스 연결 오류 : 데이터베이스 서버 상태 및 WordPress 구성을 확인하십시오. 기타 팁 : 디버그 모드 활성화, 오류 로그 검사 및 지원을 찾으십시오. 오류 방지 : 정기적으로 WordPress를 업데이트하고 필요한 플러그인 만 설치하고 웹 사이트를 정기적으로 백업하고 웹 사이트 성능을 최적화하십시오.

WordPress 의견을 표시하는 방법 WordPress 의견을 표시하는 방법 Apr 20, 2025 pm 12:06 PM

WordPress 웹 사이트에서 댓글 활성화 : 1. 관리자 패널에 로그인하고 "설정" - "토론"으로 이동하여 "주석 허용"을 확인하십시오. 2. 주석을 표시 할 위치를 선택하십시오. 3. 주석을 사용자 정의합니다. 4. 의견을 관리하고 승인, 거부 또는 삭제합니다. 5. 사용 & lt;? php comment_template (); ? & gt; 주석을 표시하는 태그; 6. 중첩 된 주석 활성화; 7. 주석 모양 조정; 8. 스팸 주석을 방지하기 위해 플러그인 및 검증 코드를 사용하십시오. 9. 사용자가 그라바타 아바타를 사용하도록 권장합니다. 10. 참조 할 주석을 만듭니다

See all articles