Ubuntu 22.04部署WordPress遇阻,求最优解决方案
Ubuntu 22.04 部署 WordPress 的最佳实践及问题修复
一、原生 LAMP 栈部署(生产环境首选)
这是最稳定、可控的部署方式,适合长期运行的站点:
1. 安装依赖组件
执行以下命令一次性安装 Apache、MySQL 和 WordPress 所需的 PHP 扩展:
sudo apt update && sudo apt install apache2 mysql-server php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
2. 配置 MySQL 数据库
进入 MySQL 命令行并创建 WordPress 专属的数据库和用户:
sudo mysql
在 MySQL 交互界面执行:
-- 给root用户设置密码(首次配置需要) ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_root_password'; -- 创建WordPress数据库 CREATE DATABASE wordpress; -- 创建数据库用户 CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_user_password'; -- 授予用户数据库全部权限 GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost'; -- 刷新权限 FLUSH PRIVILEGES; EXIT;
3. 下载并配置 WordPress
# 进入Apache根目录 cd /var/www/html # 下载最新版WordPress sudo wget https://wordpress.org/latest.tar.gz # 解压压缩包 sudo tar -xzf latest.tar.gz # 设置目录权限(让Apache进程能读写) sudo chown -R www-data:www-data wordpress/ # 复制并修改配置文件 sudo cp wordpress/wp-config-sample.php wordpress/wp-config.php
编辑配置文件,替换数据库相关参数:
sudo nano wordpress/wp-config.php
找到以下行并替换为你创建的数据库信息:
define( 'DB_NAME', 'wordpress' ); define( 'DB_USER', 'wp_user' ); define( 'DB_PASSWORD', 'your_user_password' ); define( 'DB_HOST', 'localhost' );
额外添加一行解决文件写入权限问题:
define('FS_METHOD', 'direct');
4. 配置 Apache 虚拟主机
创建虚拟主机配置文件:
sudo nano /etc/apache2/sites-available/wordpress.conf
写入以下内容(替换your_domain_or_ip为你的域名或服务器IP):
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/wordpress ServerName your_domain_or_ip <Directory /var/www/html/wordpress/> AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/wordpress_error.log CustomLog ${APACHE_LOG_DIR}/wordpress_access.log combined </VirtualHost>
启用站点和URL重写模块,重启Apache:
sudo a2ensite wordpress.conf sudo a2enmod rewrite sudo systemctl restart apache2
最后访问http://your_domain_or_ip即可完成WordPress安装向导。
二、Docker 部署(快速测试/开发环境)
针对你遇到的权限阻塞问题,用官方推荐的docker-compose方案可以避免大部分权限问题:
1. 创建 docker-compose.yml 文件
version: '3.8' services: db: image: mysql:8.0 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: your_root_password MYSQL_DATABASE: wordpress MYSQL_USER: wp_user MYSQL_PASSWORD: your_user_password wordpress: depends_on: - db image: wordpress:latest volumes: - wp_data:/var/www/html ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wp_user WORDPRESS_DB_PASSWORD: your_user_password WORDPRESS_DB_NAME: wordpress volumes: db_data: wp_data:
2. 启动服务
sudo docker-compose up -d
如果需要挂载本地目录而非Docker卷(方便本地修改文件),需提前设置目录权限:
mkdir -p ./wp_data sudo chown -R 33:33 ./wp_data # WordPress容器内部使用UID为33的用户
然后修改docker-compose.yml中的wp_data挂载路径:
volumes: - ./wp_data:/var/www/html
重新启动服务即可解决权限问题。
三、XAMPP 数据库连接问题修复
针对你遇到的数据库连接失败问题,按以下步骤排查:
- 确认MySQL监听地址:打开XAMPP控制面板的
my.cnf配置文件,确保bind-address = 127.0.0.1(本地访问无需修改)。 - 检查数据库用户权限:确保创建的用户是
'wp_user'@'localhost',而非'wp_user'@'%'(XAMPP的MySQL默认限制本地用户连接)。 - 测试数据库连接:在终端执行
mysql -u wp_user -p,输入密码后尝试访问wordpress数据库,确认权限正常。 - 验证配置文件:检查WordPress的
wp-config.php中DB_HOST是否为localhost,不要使用127.0.0.1或其他IP。
内容的提问来源于stack exchange,提问作者Alex Mkwizu
相关产品推荐
相关产品推荐

