掘金 后端 ( ) • 2024-04-20 15:00

如何在 CentOS 7 上配置 WordPress 并解决常见问题

在本文中,我将指导如何在 CentOS 7 上安装和配置 WordPress,以及如何解决配置过程中可能遇到的一些常见问题。

步骤 1: 安装 LEMP (Linux, Nginx, MySQL, PHP) 栈

WordPress 需要一个 web 服务器,一个数据库和 PHP 来运行。以下步骤将指导安装所需的软件。

1.1 安装 Nginx

Nginx 是一个高性能的 web 服务器,可以通过以下命令安装它:

sudo yum install epel-release
sudo yum install nginx

启动 Nginx 并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

1.2 安装 MySQL (MariaDB)

MariaDB 是 MySQL 的一个分支,兼容 MySQL。安装 MariaDB:

sudo yum install mariadb-server mariadb

启动 MariaDB 并设置开机自启:

sudo systemctl start mariadb
sudo systemctl enable mariadb

运行 mysql_secure_installation 脚本来设置 root 密码和删除测试数据库。

1.3 安装 PHP

WordPress 至少需要 PHP 7.0.0。CentOS 7 默认的 PHP 版本较低,因此我们需要安装一个更高的版本。以下是安装 PHP 7.4 的步骤:

首先,移除旧版本的 PHP:

sudo yum remove php*

然后安装 EPEL 和 Remi 仓库:

sudo yum install epel-release
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

启用 Remi 仓库:

sudo yum-config-manager --enable remi-php74

安装 PHP 和必要的模块:

sudo yum install php php-mysql php-fpm php-xml php-xmlrpc php-gd php-mbstring php-json

启动 PHP-FPM 并设置开机自启:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

步骤 2: 配置 Nginx 和 PHP-FPM

2.1 配置 PHP-FPM

编辑 /etc/php-fpm.d/www.conf 文件,更改 user 和 group 为 nginx

sudo vi /etc/php-fpm.d/www.conf

找到并更改以下行:

user = nginx
group = nginx

2.2 配置 Nginx

编辑 Nginx 的配置文件以包含以下内容:

server {
    listen       80;
    server_name  example.com;
    
    root         /usr/share/nginx/html;
    index        index.php index.html index.htm;
    
    location / {
        try_files $uri $uri/ =404;
    }
    
    location ~ .php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

保存配置并重启 Nginx 和 PHP-FPM:

sudo systemctl restart nginx
sudo systemctl restart php-fpm

步骤 3: 安装 WordPress

下载最新的 WordPress 并解压到网站根目录:

wget http://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
sudo cp -r wordpress/* /usr/share/nginx/html/

赋予 Nginx 用户对 WordPress 文件的所有权:

sudo chown -R nginx:nginx /usr/share/nginx/html/

创建一个 MySQL 数据库和用户给 WordPress 使用:

mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

完成 WordPress 的 web 安装向导。

解决常见问题

问题: WordPress 提示 PHP 版本太低

如果在访问 WordPress 时得到错误提示,说# 在 CentOS 7 上成功配置 WordPress:一步步指南和问题解决方案

WordPress 是目前最流行的内容管理系统之一,允许用户轻松创建和管理网站。本文旨在提供一个清晰的指南,帮助用户在 CentOS 7 上配置 WordPress,并解决可能遇到的常见问题。

步骤 1: 初始服务器设置

在开始之前,请确保 CentOS 7 系统已经更新。运行以下命令来更新系统:

sudo yum update

接下来,确保系统有一个静态 IP 地址,并且防火墙配置允许 HTTP 和 HTTPS 通信。

步骤 2: 安装 LEMP (Linux, Nginx, MySQL, PHP) 栈

WordPress 需要 web 服务器,MySQL/MariaDB 数据库,和 PHP 来运行。

安装 Nginx

Nginx 是一个高性能的 web 服务器。使用以下命令安装 Nginx:

sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable nginx

安装 MariaDB

MariaDB 是 MySQL 的一个分支。使用以下命令安装 MariaDB:

sudo yum install mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation

安装 PHP

WordPress 需要 PHP 7.0.0 或更高版本。因为 CentOS 7 的默认仓库中的 PHP 版本可能不足以满足 WordPress 的要求,所以我们需要从第三方仓库安装 PHP。以下是升级到 PHP 7.4 的步骤:

  1. 移除旧版本的 PHP(如果已安装):

    sudo yum remove php*
    
  2. 安装 EPEL 和 Remi 仓库:

    sudo yum install epel-release
    sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
    
  3. 启用 Remi 仓库:

    sudo yum-config-manager --enable remi-php74
    
  4. 安装 PHP 7.4 及扩展:

    sudo yum install php php-mysql php-fpm php-xml php-xmlrpc php-gd php-mbstring php-json
    
  5. 启动 PHP-FPM:

    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
    

步骤 3: 配置 Nginx 和 PHP-FPM

配置 PHP-FPM 以确保 Nginx 可以处理 PHP 文件。编辑 /etc/php-fpm.d/www.conf 文件,更改 user 和 group 为 nginx

在 Nginx 配置文件中添加对 PHP 文件的处理指令,并设置 WordPress 的根目录。

server {
    listen 80;
    server_name example.com; # 替换为你的域名或 IP 地址
 
    root /usr/share/nginx/html;
    index index.php index.html index.htm;
 
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
 
    location ~ .php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

完成配置后,重启 Nginx 和 PHP-FPM 服务:

sudo systemctl restart nginx
sudo systemctl restart php-fpm

步骤 4: 安装 WordPress

下载 WordPress 并解压到 Nginx 的根目录:

cd ~
wget http://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
sudo cp -r wordpress/* /usr/share/nginx/html/

设置正确的文件权限:

sudo chown -R nginx:nginx /usr/share/nginx/html/

创建 WordPress 数据库和用户:

mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress

创建WordPress数据库和用户

接下来,我们需要为WordPress创建一个专用的数据库和用户。首先,登录到MySQL命令行界面:

mysql -u root -p

在MySQL提示符下,执行以下命令来创建一个新的数据库和用户,并授予用户对数据库的全部权限:

CREATE DATABASE wordpress_db;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

请确保替换 your_password 为一个强密码。

安装WordPress

下载WordPress并将其解压到Web根目录。现在,我们需要配置WordPress连接到我们刚刚创建的数据库。

配置WordPress

前往 /usr/share/nginx/html/ 目录,重命名 wp-config-sample.php 文件为 wp-config.php

cd /usr/share/nginx/html/
cp wp-config-sample.php wp-config.php

使用文本编辑器编辑 wp-config.php 文件,填入之前创建的数据库信息:

vi wp-config.php

找到以下行,并用数据库信息替换:

define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'your_password');

关闭编辑器并保存文件。

完成安装

现在,转到Web浏览器并访问服务器的域名或IP地址。现在应该看到的是WordPress的安装向导。通过界面完成安装步骤,创建管理员账户,并完成安装。

解决常见问题

在配置WordPress的过程中,可能会遇到一些常见问题。以下是一些解决方案:

问题:无法连接到数据库

如果WordPress提示无法连接到数据库,可能需要检查以下几点:

  • 确保MySQL服务正在运行。
  • 检查 wp-config.php 文件中的数据库名称、用户和密码是否正确。
  • 确认MySQL用户有从WordPress服务器访问MySQL的权限。

问题:上传文件大小限制

默认情况下,PHP有一个上传文件大小的限制。如果需要上传大文件,可能需要增加这个限制。编辑 php.ini 文件:

vi /etc/php.ini

修改以下值:

upload_max_filesize = 64M
post_max_size = 64M

然后重启PHP-FPM服务:

sudo systemctl restart php-fpm

问题:永久链接问题

如果发现WordPress的永久链接不工作,可能需要在Nginx配置文件中添加一些配置。确保在Nginx配置文件中包含了以下内容:

location / {
    try_files $uri $uri/ /index.php?$args;
}

重启Nginx服务:

sudo systemctl restart nginx

这应该会解决永久链接问题。

到此就结束了,如果有任何问题,评论区讨论!~😎