ubuntu搭建安装WordPress环境(LNMP,linux,nginx,mysql(MariaDB),php)
- 更新系统
sudo apt update
sudo apt upgrade
- 安装nginx
sudo apt install nginx
- 安装、设置MariaDB
sudo apt install mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
# 按照提示进行设置
sudo mysql_secure_installation
- 创建数据库并初始化信息your_password=Harman12#$
mysql -u root -p
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;
- 安装PHP以及WordPress需要的扩展
sudo apt install php-fpm php-mysql php-curl php-gd php-json php-mbstring php-xml php-zip
- 修改配置nginx
sudo vi /etc/nginx/sites-available/wordpress
server_name设置为域名或者ip
server {
listen 80;
listen [::]:80;
server_name example.com;
# 设置请求的大小,因为要上传文件
client_max_body_size 1024M;
root /var/www/wordpress;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
- 使用配置文件并且启动nginx
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo systemctl restart nginx
- 下载并且配置WordPress
cd /var/www/
sudo mkdir wordpress
sudo chown -R www-data:www-data wordpress
sudo wget https://r.jina.ai/https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz -C wordpress --strip-components=1
sudo rm latest.tar.gz
- 复制示例配置文件并修改
sudo cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
sudo vi /var/www/wordpress/wp-config.php
填写数据库信息
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress_db');
/** MySQL database username */
define('DB_USER', 'wp_user');
/** MySQL database password */
define('DB_PASSWORD', 'your_password');
/** MySQL hostname */
define('DB_HOST', 'localhost');
- 设置文件权限
sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress -type d -exec chmod 750 {} +
sudo find /var/www/wordpress -type f -exec chmod 640 {} +
sudo chmod 775 /var/www/wordpress/wp-content
sudo chmod -R 777 /var/www/wordpress/wp-content/uploads
- 访问ip或者域名,默认80端口,按照提示进行配置
其他需要注意的地方
- nginx设置请求的最大的body大小,应该要上传文件,上传文件有限制client_max_body_size 64M;
- upload_max_filesize:这个指令定义了上传文件的最大大小,post_max_size:这个指令定义了POST请求的最大大小,它应该设置为比upload_max_filesize稍大的值,以确保整个请求(包括文件和其他表单数据)可以被处理。
- 修改php.ini的上传文件的大小配置,比如,可以使用
php --ini
查找php.ini文件的位置。
# 基本上都是在这个位置 /etc/php/8.1/fpm/php.ini
# 找到并且修改,使用vi的时候,命令模式输入"/name"可以搜索到name所在的位置
upload_max_filesize = 512M
post_max_size = 600M
memory_limit = 700M
- 修改之后重启服务
sudo systemctl restart nginx
# systemctl list-units --type=service -all | grep php 查看php-fpm的服务名称
sudo systemctl restart php8.1-fpm
安装过程常用命令及其含义
# 查看php服务的名字
systemctl list-units --type=service -all | grep php
# 查找php.ini所在位置
php --ini
# 重启服务
systemctl restart php8.1-fpm
systemctl restart nginx
无法上传文件
sudo chown -R www-data:www-data wp-admin...
Docker compose 安装
version: '3'
services:
db_en:
image: mysql:5.7
volumes:
- db_en_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_DATABASE: wordpress_en
MYSQL_USER: wordpress
MYSQL_PASSWORD: "123456"
wordpress_en:
depends_on:
- db_en
image: wordpress:latest
ports:
- "8082:80"
restart: always
environment:
WORDPRESS_DB_HOST: db_en:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: "123456"
WORDPRESS_DB_NAME: wordpress_en
volumes:
- wp_en_data:/var/www/html
volumes:
db_en_data:
wp_en_data:
Nginx配置
server {
listen 80;
server_name cn.wp.cn; # 替换为你的IP地址
location / {
proxy_pass http://127.0.0.1:8081/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off; # 禁止代理服务器的重定向处理
}
}