Wordpress安装教程

Wordpress安装教程

Administrator 47 2024-08-07

ubuntu搭建安装WordPress环境(LNMP,linux,nginx,mysql(MariaDB),php)

  1. 更新系统
sudo apt update
sudo apt upgrade
  1. 安装nginx
sudo apt install nginx
  1. 安装、设置MariaDB
sudo apt install mariadb-server

sudo systemctl start mariadb
sudo systemctl enable mariadb
# 按照提示进行设置
sudo mysql_secure_installation
  1. 创建数据库并初始化信息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;
  1. 安装PHP以及WordPress需要的扩展
sudo apt install php-fpm php-mysql php-curl php-gd php-json php-mbstring php-xml php-zip
  1. 修改配置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;
    }
}
  1. 使用配置文件并且启动nginx
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo systemctl restart nginx
  1. 下载并且配置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
  1. 复制示例配置文件并修改
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');
  1. 设置文件权限
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
  1. 访问ip或者域名,默认80端口,按照提示进行配置

其他需要注意的地方

  1. nginx设置请求的最大的body大小,应该要上传文件,上传文件有限制client_max_body_size 64M;
  2. upload_max_filesize:这个指令定义了上传文件的最大大小,post_max_size:这个指令定义了POST请求的最大大小,它应该设置为比upload_max_filesize稍大的值,以确保整个请求(包括文件和其他表单数据)可以被处理。
  3. 修改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
  1. 修改之后重启服务
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; # 禁止代理服务器的重定向处理
    }
}