WordPress 环境搭建教程

为什么要写该教程

本文是对自己安装 WordPress 过程的一个总结。在安装过程中,翻阅了很多资料、教程,但是没有完全满足个人要求的教程。有的是其他环境比如 Apache2 ,有的是 CentOS。

所以既然自己成功安装了 WordPress,就顺便记录一下自己的安装过程,给可能需要的人提供一点帮助。

搭建过程主要参考了 总结|在Ubuntu 22.04上设立WordPress – frank3215 – 博客园,是在该作者的基础上进行增改,也增加了一些操作解释。

环境要求

  1. Ubuntu
  2. PHP 7.4 / PHP 8.0 (据说 PHP 8.1 可能会产生错误,但没亲自试过)
  3. Nginx
  4. MySQL 8.0+

如果是其他的环境,本文可能提供不了帮助。

安装依赖

开始之前,更新软件包索引

sudo apt-get update

Nginx

sudo apt-get install nginx

MySQL

# 安装 mysql 及所需依赖
sudo apt-get install mysql-client-core-8.0 mysql-server-core-8.0 mysql-server mysql-client --fix-missing 
# 启动 mysql 服务
sudo service mysql start

PHP

添加第三方软件源以安装 PHP

sudo apt install software-properties-common ca-certificates lsb-release apt-transport-https
LC_ALL=C.UTF-8 sudo add-apt-repository ppa:ondrej/php

更新软件源

sudo apt update

安装 php8.0

sudo apt-get install php8.0 php8.0-cli php8.0-fpm php8.0-mysql php8.0-opcache php8.0-mbstring php8.0-xml php8.0-gd php8.0-curl php8.0-cgi

如果要安装 php7.4 ,请参考 总结|在Ubuntu 22.04上设立WordPress – frank3215 – 博客园

设置开机自启动

sudo systemctl enable php8.0-fpm

下面的命令可以查看运行状态

sudo systemctl status php8.0-fpm

注意:/etc/php/8.0/fpm/php.ini 中可修改上传文件的大小限制

安装并配置 WordPress

下载 WordPress

下载并解压最新版的 WordPress

wget https://wordpress.org/latest.zip 
unzip latest.zip

# 如果未安装 unzip 请提前安装
sudo apt install unzip

用 MySQL 建立数据库

以管理员登录数据库

sudo mysql -u adminusername -p

创建数据库 wordpress

CREATE DATABASE wordpress;

创建用户和设置密码( password 可以自己任意设置),并给予权限

CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
EXIT;

修改 wp-config.php

进入 wordpress 文件夹,复制 wp-config-sample.phpwp-config.php

cd wordpress 
cp wp-config-sample.php wp-config.php

打开 wp-config.php ,修改以下内容

首先修改数据库设置, password 为前面设置的密码

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

/** Database username */
define( 'DB_USER', 'wordpress' );

/** Database password */
define( 'DB_PASSWORD', 'password' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

然后找到以下内容,填入 生成器 中随机生成的值

/** Authentication Unique Keys and Salts. */
define( 'AUTH_KEY',         '' );
define( 'SECURE_AUTH_KEY',  '' );
define( 'LOGGED_IN_KEY',    '' );
define( 'NONCE_KEY',        '' );
define( 'AUTH_SALT',        '');
define( 'SECURE_AUTH_SALT', '' );
define( 'LOGGED_IN_SALT',   '' );
define( 'NONCE_SALT',       '' );

最后回到上一级目录,将整个 wordpress 移动到 /var/www/html/ 中,这是 Nginx 服务器的默认文件目录

cd ..
sudo mv wordpress /var/www/html/wordpress

设置正确的文件权限和所有权,以确保

  • Web 服务器(www-data 用户)能够读取和写入必要的文件。
  • 其他用户只能读取文件和目录,而不能修改它们。
chown -R www-data:www-data /var/www/html
sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;

配置 Nginx

修改 /etc/nginx/sites-available/wordpress,没有则自己创建,其中 example.com 改为自己的域名

# WordPress 站点配置文件
server {
    # 监听 HTTP 请求
    listen 80;
    listen [::]:80;

    # 定义网站的域名
    server_name example.com;

    # 设置网站的根目录
    root /var/www/html/wordpress;

    # 定义默认的索引文件
    index index.php index.html index.htm index.nginx-debian.html;

    # 处理网站根路径请求
    location / {
        # 如果请求的文件或目录不存在,则转发到 index.php
        try_files $uri $uri/ /index.php?$args;
    }

    # 处理 WordPress 站点地图
    location ~* /wp-sitemap.*\.xml {
        # 如果站点地图文件不存在,则转发到 index.php
        try_files $uri $uri/ /index.php$is_args$args;
    }

    # 设置上传文件大小限制
    client_max_body_size 100M;

    # 处理 PHP 文件
    location ~ \.php$ {
        # 将 PHP 文件的处理请求转发到 PHP-FPM 服务
        fastcgi_pass unix:/run/php/php8.0-fpm.sock;

        # 设置脚本文件路径
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        # 包含 FastCGI 参数文件
        include fastcgi_params;
        include snippets/fastcgi-php.conf;

        # 设置 FastCGI 缓冲区大小
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 128k;

        # 拦截并处理 PHP 错误
        fastcgi_intercept_errors on;
    }

    # 启用 Gzip 压缩
    gzip on;
    gzip_comp_level 6;  # 压缩级别
    gzip_min_length 1000;  # 最小压缩长度
    gzip_proxied any;  # 允许对代理请求进行压缩
    gzip_disable "msie6";  # 禁止对 IE6 浏览器进行压缩

    # 定义需要压缩的 MIME 类型
    gzip_types
        application/atom+xml
        application/geo+json
        application/javascript
        application/x-javascript
        application/json
        application/ld+json
        application/manifest+json
        application/rdf+xml
        application/rss+xml
        application/xhtml+xml
        application/xml
        font/eot
        font/otf
        font/ttf
        image/svg+xml
        text/css
        text/javascript
        text/plain
        text/xml;

    # 处理静态资源(图片、音频、视频等)
    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)$ {
        # 设置缓存过期时间为 90 天
        expires 90d;

        # 关闭访问日志记录
        access_log off;
    }

    # 处理字体和 SVG 文件
    location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
        # 允许跨域请求这些资源
        add_header Access-Control-Allow-Origin "*";

        # 设置缓存过期时间为 90 天
        expires 90d;

        # 关闭访问日志记录
        access_log off;
    }

    # 保护敏感文件(如 .htaccess)
    location ~ /\.ht {
        # 禁止访问这些文件
        deny all;

        # 关闭日志记录
        access_log off;
        log_not_found off;
    }
}

最后在 Nginx Web 服务器中启动 WordPress 站点,并检查配置文件是否正确,最后重启 Nginx 服务

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

现在应该可以在 example.com 上看见 WordPress 页面

如果没有域名,则可通过 80 端口访问,在此之前,先将服务器上的 80 端口转发到本地

WordPress 安装界面如下

wordpress 安装界面

更简单的方法

如果在阿里云上购买的云服务器,可以直接在镜像市场中寻找对应的 WordPress 镜像,即开即用。

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
B站基础表情
B站节日表情
B站游戏表情
B站活动表情
下一篇