本文最后更新于45 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
网站架构:LNMP(Linux、Nginx、MySQL、PHP)
一、环境准备
- 操作系统:CentOS 7.x(推荐使用稳定版,例如CentOS 7.9)
- 软件版本:
- MySQL:5.7.35(稳定版)
- PHP:7.4.33(支持WordPress的最新稳定版)
- Nginx:1.20.2(稳定版)
- WordPress:最新版本(例如5.8.1,具体版本以下载为准)
二、安装MySQL 5.7.35
- 安装依赖包:bash复制
yum install -y libaio numactl-libs
- 下载MySQL二进制文件:bash复制
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
- 解压并安装MySQL:bash复制
tar -xzf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ ln -s /usr/local/mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql
- 创建MySQL用户和数据目录:bash复制
groupadd -r mysql useradd -r -g mysql -s /sbin/nologin -d /data/mysql mysql mkdir -p /data/mysql chown -R mysql:mysql /data/mysql
- 初始化MySQL:bash复制
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
- 配置MySQL:
- 创建
my.cnf
配置文件:ini复制[mysqld] basedir = /usr/local/mysql datadir = /data/mysql socket = /data/mysql/mysql.sock log-error = /data/mysql/mysql_error.log pid-file = /data/mysql/mysql.pid [client] socket = /data/mysql/mysql.sock
- 将
my.cnf
放置到/etc/my.cnf
:bash复制cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
- 创建
- 启动MySQL服务:bash复制
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld systemctl enable mysqld systemctl start mysqld
- 获取临时密码并设置MySQL密码:bash复制
temp_password=$(grep 'temporary password' /data/mysql/mysql_error.log | awk '{print $NF}') /usr/local/mysql/bin/mysqladmin -uroot -p"$temp_password" password 'your_new_password'
三、安装PHP 7.4.33
- 安装依赖包:bash复制
yum install -y libxml2-devel openssl-devel bzip2-devel libcurl-devel
- 下载并编译安装PHP:bash复制
wget https://www.php.net/distributions/php-7.4.33.tar.gz tar -xzf php-7.4.33.tar.gz cd php-7.4.33 ./configure --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-openssl \ --with-zlib \ --enable-mbstring \ --enable-xml \ --enable-json make && make install
- 配置PHP:
- 复制
php.ini
配置文件:bash复制cp php.ini-production /usr/local/php/etc/php.ini
- 配置
php-fpm
:bash复制cp sapi/fpm/php-fpm.service /etc/systemd/system/php-fpm.service systemctl enable php-fpm systemctl start php-fpm
- 复制
四、安装Nginx 1.20.2
- 安装依赖包:bash复制
yum install -y pcre-devel zlib-devel
- 下载并编译安装Nginx:bash复制
wget http://nginx.org/download/nginx-1.20.2.tar.gz tar -xzf nginx-1.20.2.tar.gz cd nginx-1.20.2 ./configure --prefix=/usr/local/nginx make && make install
- 配置Nginx:
- 修改
nginx.conf
配置文件:nginx复制server { listen 80; server_name your_domain.com; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
- 启动Nginx:bash复制
/usr/local/nginx/sbin/nginx
- 修改
五、安装WordPress
- 下载WordPress:bash复制
wget https://wordpress.org/latest.tar.gz tar -xzf latest.tar.gz -C /var/www/html chown -R nginx:nginx /var/www/html/wordpress
- 配置WordPress:
- 创建
wp-config.php
文件:php复制define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpress'); define('DB_PASSWORD', 'your_password'); define('DB_HOST', 'localhost'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', '');
- 创建MySQL数据库和用户:sql复制
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost'; FLUSH PRIVILEGES;
- 创建
- 访问网站:
- 打开浏览器,访问
http://your_domain.com/wordpress
,按照WordPress安装向导完成配置。
- 打开浏览器,访问
六、安全加固
- 设置文件权限:bash复制
chown -R nginx:nginx /var/www/html
- 配置防火墙规则:bash复制
firewall-cmd --permanent --add-service=http firewall-cmd --reload