WordPress作为全球最流行的内容管理系统,在Linux服务器上的部署是许多网站管理员和开发者的必备技能。本指南将带您从零开始,在Linux服务器上搭建一个安全、高效的WordPress网站。
一、环境准备
1.1 服务器要求
-
Linux服务器(推荐Ubuntu 20.04+或CentOS 7+)
-
最小1GB内存
-
至少20GB存储空间
-
稳定的网络连接
1.2 安装必要的软件包
Ubuntu/Debian系统:
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装LAMP栈(Linux, Apache, MySQL, PHP)
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y
CentOS/RHEL系统:
# 安装EPEL仓库
sudo yum install epel-release -y
# 安装LAMP栈
sudo yum install httpd mariadb-server mariadb php php-mysql php-gd php-mbstring php-xml php-soap php-curl -y
# 启动服务
sudo systemctl start httpd
sudo systemctl start mariadb
sudo systemctl enable httpd
sudo systemctl enable mariadb
二、配置数据库
2.1 安全配置MySQL/MariaDB
# 运行安全安装脚本
sudo mysql_secure_installation
# 登录MySQL
sudo mysql -u root
# 创建WordPress数据库
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
# 创建专用用户
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
# 授予权限
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
# 刷新权限
FLUSH PRIVILEGES;
# 退出
EXIT;
三、安装和配置WordPress
3.1 下载WordPress
# 进入web目录
cd /var/www/html
# 下载最新版WordPress
sudo wget https://wordpress.org/latest.tar.gz
# 解压
sudo tar -xzvf latest.tar.gz
# 重命名目录(可选)
sudo mv wordpress mysite
# 设置权限
sudo chown -R www-data:www-data /var/www/html/mysite/
sudo chmod -R 755 /var/www/html/mysite/
3.2 配置wp-config.php
# 复制配置文件
cd /var/www/html/mysite
sudo cp wp-config-sample.php wp-config.php
# 编辑配置文件
sudo nano wp-config.php
在配置文件中,找到以下行并修改数据库信息:
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'YourStrongPassword123!');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
// 为WordPress设置唯一的密钥
// 您可以从 https://api.wordpress.org/secret-key/1.1/salt/ 获取
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', '在此放置您唯一的短语');
四、配置Apache虚拟主机
4.1 创建虚拟主机配置文件
# 创建配置文件
sudo nano /etc/apache2/sites-available/mysite.conf
添加以下内容:
<VirtualHost *:80>
ServerAdmin admin@yourdomain.com
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/html/mysite
<Directory /var/www/html/mysite>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
4.2 启用站点和模块
# 禁用默认站点
sudo a2dissite 000-default.conf
# 启用新站点
sudo a2ensite mysite.conf
# 启用rewrite模块
sudo a2enmod rewrite
# 重启Apache
sudo systemctl restart apache2
五、SSL证书配置(Let’s Encrypt)
5.1 安装Certbot
# Ubuntu/Debian
sudo apt install certbot python3-certbot-apache -y
# CentOS/RHEL
sudo yum install certbot python3-certbot-apache -y
5.2 获取SSL证书
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
六、安全加固
6.1 文件权限优化
# 设置安全权限
sudo find /var/www/html/mysite -type d -exec chmod 755 {} \;
sudo find /var/www/html/mysite -type f -exec chmod 644 {} \;
# wp-config.php特殊权限
sudo chmod 440 /var/www/html/mysite/wp-config.php
# 限制访问wp-config.php
sudo nano /var/www/html/mysite/.htaccess
在
.htaccess中添加:# 保护wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# 禁用目录浏览
Options -Indexes
# 限制XML-RPC访问
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
6.2 防火墙配置
# Ubuntu使用UFW
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw enable
# CentOS使用firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
七、性能优化
7.1 安装和配置缓存插件
# 安装OPcache
sudo apt install php-opcache -y
# 编辑PHP配置
sudo nano /etc/php/7.4/apache2/php.ini
修改以下设置:
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
7.2 启用Gzip压缩
sudo a2enmod deflate
sudo a2enmod headers
sudo systemctl restart apache2
八、自动备份脚本
创建一个简单的备份脚本:
#!/bin/bash
# 备份脚本:/usr/local/bin/backup-wordpress.sh
# 配置变量
BACKUP_DIR="/backups/wordpress"
DATE=$(date +%Y%m%d_%H%M%S)
DB_NAME="wordpress"
DB_USER="wpuser"
DB_PASS="YourStrongPassword123!"
SITE_PATH="/var/www/html/mysite"
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份数据库
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/db_backup_$DATE.sql
gzip $BACKUP_DIR/db_backup_$DATE.sql
# 备份网站文件
tar -czf $BACKUP_DIR/files_backup_$DATE.tar.gz $SITE_PATH
# 删除7天前的旧备份
find $BACKUP_DIR -type f -mtime +7 -delete
echo "备份完成:$BACKUP_DIR/files_backup_$DATE.tar.gz"
设置定时任务:
# 每天凌晨2点执行备份
sudo crontab -e
# 添加以下行
0 2 * * * /usr/local/bin/backup-wordpress.sh
九、故障排查常用命令
# 查看Apache错误日志
sudo tail -f /var/log/apache2/error.log
# 检查PHP错误
sudo tail -f /var/log/apache2/php_error.log
# 检查MySQL状态
sudo systemctl status mysql
# 测试PHP配置
php -i | grep "Loaded Configuration File"
# 检查磁盘空间
df -h
# 检查内存使用
free -m
十、最佳实践建议
-
定期更新:保持WordPress核心、主题和插件为最新版本
-
使用子主题:修改主题时创建子主题,避免直接修改父主题
-
实施备份策略:除了自动备份,定期进行异地备份
-
监控性能:使用如New Relic、Blackfire等工具监控性能
-
使用CDN:通过aiwcloud等CDN提升全球访问速度
-
限制登录尝试:安装登录保护插件,防止暴力破解
-
禁用文件编辑:在
wp-config.php中添加define('DISALLOW_FILE_EDIT', true);
通过遵循本指南,您将能够在Linux服务器上部署一个安全、高效且易于维护的WordPress网站。记得根据实际需求调整配置参数,并定期进行安全扫描和性能优化。

kkce - 国外主机测评、国外VPS、国外服务器、国外云服务器



