一、准备工作
允许ssh连接
部分vps不允许ssh连接,需要手动开启:
vi /etc/ssh/sshd_config
找到下面这行
#PermitRootLogin prohibit-password
取消注释,修改为yes
PermitRootLogin yes
保存后,重启ssh服务,即可使用ssh工具连接
systemctl restart ssh
更新和安装必要的软件包
更新系统:
apt update && apt upgrade -y
安装必要的软件包:
apt install -y curl wget unzip zip
二、安装Nginx
官方安装文档:
https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/
直接使用apt install nginx安装的版本一般不是最新版,这里使用nginx官方库安装。
安装所需软件包
apt install -y curl gnupg2 ca-certificates lsb-release debian-archive-keyring
导入nginx 官方 签名密钥
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
设置stable库
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| tee /etc/apt/sources.list.d/nginx.list
设置官方库优先
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| tee /etc/apt/preferences.d/99nginx
安装nginx并启用开机自启
apt update && apt install -y nginx
systemctl enable nginx
配置Nginx
修改Nginx用户为www-data
vi /etc/nginx/nginx.conf
修改第一行的user
user nginx;
修改为
user www-data;
:wq保存退出
添加WordPress站点配置文件。
创建ssl和templates文件夹,用于存放ssl证书和一些多站点通用配置
mkdir /etc/nginx/ssl
mkdir /etc/nginx/templates
修改默认配置,默认返回404
cd /etc/nginx/conf.d
mv default.conf default.conf.bak
cat >> /etc/nginx/conf.d/00-default.conf << 'EOF'
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name _;
include /etc/nginx/templates/ssl.conf;
return 404;
}
EOF
cat >> /etc/nginx/templates/ssl.conf << 'EOF'
ssl_certificate /etc/nginx/ssl/fullchain.cer;
ssl_certificate_key /etc/nginx/ssl/private.key;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
EOF
cat >> /etc/nginx/templates/php.conf << 'EOF'
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_buffer_size 128k;
fastcgi_buffers 8 256k;
fastcgi_busy_buffers_size 512k;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $uri =404;
}
EOF
cat >> /etc/nginx/templates/brotli.conf << 'EOF'
brotli on;
brotli_types text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/richtext text/plain text/xsd text/xsl text/xml image/bmp application/java application/msword application/vnd.ms-fontobject application/x-msdownload image/x-icon application/json application/vnd.ms-access video/webm application/vnd.ms-project application/x-font-otf application/vnd.ms-opentype application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.text audio/ogg application/pdf application/vnd.ms-powerpoint image/svg+xml application/x-shockwave-flash image/tiff application/x-font-ttf audio/wav application/vnd.ms-write application/font-woff application/font-woff2 application/vnd.ms-excel;
EOF
添加第一个网站配置,并启动nginx
cat >> /etc/nginx/conf.d/01-domain.com.conf << 'EOF'
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name www.domain.com;
include /etc/nginx/templates/ssl.conf;
return 301 https://domain.com$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name domain.com;
root /www/domain.com;
index index.php index.html;
include /etc/nginx/templates/ssl.conf;
include /etc/nginx/templates/php.conf;
include /etc/nginx/templates/brotli.conf;
}
EOF
systemctl start nginx
三、安装MySQL
官方apt库下载页:
https://dev.mysql.com/downloads/repo/apt/
官方安装文档:
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/
重启Nginx
添加MySQL APT库
wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
dpkg -i mysql-apt-config_0.8.33-1_all.deb
保持默认,选第三个OK
更新并安装MySQL
apt update
apt install -y mysql-server
设置root用户密码
创建数据库
mysql -uroot -p
输入密码进入数据库
create database wordpress;
退出数据库
exit;
四、安装PHP
安装php8.2
apt install -y php8.2
apt install -y php8.2-{fpm,mysqli,curl,dom,apcu,bcmath,gd,igbinary,imagick,intl,mbstring,memcached,memcache,opcache,redis,simplexml,ssh2,xml,xmlreader,zip,soap,tidy,dev}
五、安装WordPress
建立web目录,下载最新版WordPress
mkdir /www && cd /www
wget https://wordpress.org/latest.tar.gz
解压并修改所有者
tar -xzvf latest.tar.gz
chown -R www-data:www-data wordpress
mv wordpress domain.com
配置都正确的话,访问https://domain.com/ 可以进入WordPress安装页。
下一步填写数据库信息
下一步填写站点信息和管理员信息,安装完成