使用lnmp一键安装包快速搭建一个wordpress站点

  wordpress是开一个快速搭建网站的利器,WordPress 被称为世界上最受欢迎的网站建设工具。它为互联网上超过 40% 的网站提供支持。主要原因是因为 WordPress 易于安装,这使得任何人都可以轻松创建网站。所有最好的 WordPress 网络托管公司都允许您只需点击几下即可安装WordPress。在大多数情况下,WordPress安装是一个简单的过程,只需不到五分钟即可完成。
  wordpress可以用nginx,apache等web服务器,但用的最多的还是nginx,性能也比apache好,所以我们使用lnmp来搭建一个wordpress站点。下面开始本教程。

lnmp是linux,nginx,mysql,php的缩写,同理lamp就是linux,apache,mysql,php的缩写


购买服务器

  搭建站点当然需要一台服务器,当然你也可以直接使用现成的虚拟主机,能直接用别人给你配置好的环境,但那样的自由度不高,所以我们首先购买一台vps或者云服务器。这里选择的是腾讯云香港2c4g的轻量服务器(别问为什么是香港,问就是因为香港不用备案)。
wp1.webp

  • 更新服务器
    购买完成后我们使用ssh登录vps内,首先需要进行一次完整更新。

    1. debain系列
sudo apt update && sudo apt upgrade

wp2.webp

  1. 如果是rhel(红帽)系列则
sudo yum update

环境安装

  • 安装lnmp
      现在开始正式安装lnmp环境,我们使用lnmp.org的lnmp一键安装包来安装lnmp环境,详细的安装过程和安装要求可以去他们的官网查看教程lnmp.org
    wp3.webp

  • 配置数据库
    安装完成后我们为wordpress创建一个数据库,这里我安装的数据库版本是MySQL8.0.30版本

也可以换成MairaDB

#以下命令必须在具有相关权限的用户才能操作
#创建数据库wordpress
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
#创建用户wordpress,如果需要远程连接数据库将localhost改为%
CREATE USER 'wordpress'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
#赋予基本权限
GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE ON `wordpress`.* TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
  • 配置nginx
      创建完数据库和wordpress数据库用户后我们配置nginx,在nginx.conf(这里的路径是/usr/local/nginx/conf/nginx.conf,你的可能和我的不一样,如果你使用lnmp.org提供的安装包那就是这个路径)的http段内内加入下列内容:

    server {
    listen                  443 ssl http2;
    #listen                  [::]:443 ssl http2;   #如果vps有ipv6则取消注释
    server_name             你的域名;
    
    ssl_certificate         你的证书;
    ssl_certificate_key     你的私钥;
    ssl_protocols          TLSv1.3 TLSv1.2;
    ssl_ciphers            ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    #ssl_early_data         on;   #tls1.3 0-RTT
    ssl_prefer_server_ciphers    off;
    ssl_session_tickets    off;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout    1d;
    
    ssl_stapling           on;
    ssl_stapling_verify    on;
    resolver               1.1.1.1 1.0.0.1 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=60s;
    resolver_timeout       2s;
    
    set                     $base 你的wordpress安装路径;
    root                    $base;
    # . files
    location ~ /\.(?!well-known) {
        deny all;
    }
    index                   index.php;
    # index.php fallback
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    # favicon.ico
    location = /favicon.ico {
        log_not_found off;
        access_log    off;
    }
    # robots.txt
    location = /robots.txt {
        log_not_found off;
        access_log    off;
    }
    # assets, media
    location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
        expires    7d;
        access_log off;
    }
    # svg, fonts
    location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
        add_header Access-Control-Allow-Origin "*";
        expires    7d;
        access_log off;
    }
    
    # WordPress: allow TinyMCE
    location = /wp-includes/js/tinymce/wp-tinymce.php {
        fastcgi_pass 127.0.0.1:9000;
    
        try_files                     $fastcgi_script_name =404;
        # default fastcgi_params
        include                       fastcgi_params;
        # fastcgi settings
        fastcgi_index                 index.php;
        fastcgi_buffers               8 16k;
        fastcgi_buffer_size           32k;
        # fastcgi params
        fastcgi_param DOCUMENT_ROOT   $realpath_root;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param PHP_ADMIN_VALUE "open_basedir=$base/:/usr/lib/php/:/tmp/";
    }
    # WordPress: deny wp-content, wp-includes php files
    location ~* ^/(?:wp-content|wp-includes)/.*\.php$ {
        deny all;
    }
    # WordPress: deny wp-content/uploads nasty stuff
    location ~* ^/wp-content/uploads/.*\.(?:s?html?|php|js|swf)$ {
        deny all;
    }
    # WordPress: SEO plugin
    location ~* ^/wp-content/plugins/wordpress-seo(?:-premium)?/css/main-sitemap\.xsl$ {
    
    }
    # WordPress: deny wp-content/plugins (except earlier rules)
    location ~ ^/wp-content/plugins {
        deny all;
    }
    # WordPress: deny general stuff
    location ~* ^/(?:xmlrpc\.php|wp-links-opml\.php|wp-config\.php|wp-config-sample\.php|readme\.html|license\.txt)$ {
        deny all;
    }
    
    # handle .php
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
    
        try_files                     $fastcgi_script_name =404;
        # default fastcgi_params
        include                       fastcgi_params;
        # fastcgi settings
        fastcgi_index                 index.php;
        fastcgi_buffers               8 16k;
        fastcgi_buffer_size           32k;
        # fastcgi params
        fastcgi_param DOCUMENT_ROOT   $realpath_root;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param PHP_ADMIN_VALUE "open_basedir=$base/:/usr/lib/php/:/tmp/";
    }
    
    # security headers
    add_header X-XSS-Protection          "1; mode=block" always;
    add_header X-Content-Type-Options    "nosniff" always;
    add_header Referrer-Policy           "no-referrer-when-downgrade" always;
    add_header Content-Security-Policy   "default-src 'self' http: https: ws: wss: data: blob: 'unsafe-inline'; frame-ancestors 'self';" always;
    add_header Permissions-Policy        "interest-cohort=()" always;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    }
  • 配置php
    找到你的php-fpm.conf和www.conf,确保你的php-fpm监听地址为127.0.0.1:9000(图中的端口为9001,你自己需要将它改为9000)

wp4.webp

这样所有的就配置完毕了,现在该启动所有服务了,如果已经启动了则跳过这一步:

systemctl start mysql php-fpm nginx

现在你可以在浏览器输入https://你的域名来访问你的wordpress站点了。

配置wordpress

在浏览器打开你的域名,出现wordpress数据库设置界面,按照提示根据你前面的配置进行设置。

wp5.webp

如果数据库可连接,则会出现成功提示并且进入wordpress安装向导:按照你自己的喜好填写

wp6.webp
wp7.webp

如果全部配置正常并且出现下图界面,那么恭喜你,安装成功了!:satisfied:
wp8.webp

版权声明:
作者:anoixa
链接:https://blog.imtop1.moe/archives/35/
来源:anoixa的博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录