前言
之前使用的服务器配置没有在活动的时候搞 然后配置低还贵 /(ㄒoㄒ)/~~ 所以这次趁着活动换了一台服务器 (还是国外的)在华盛顿 小水管 下次一定迁移回国或者到香港 主要是国内要备案什么的好麻烦 。
环境
- ubuntu 22.04 为什么我看大家都用debian
- lnmp
配置
主机拿到之后首先使用root用户登录到cli界面
SSH
SSH登录
ssh基础知识
首先需要创建用户并禁用root账户的ssh登录 xzxzbyh
为创建的用户
# 该标志-m表示创建用户的主目录并-c允许指定注释
useradd -m -c "my selfs " xzxzbyh
# 指定shell
usermod -s /bin/bash xzxzbyh
# 更改密码
passwd xzxzbyh
# 使用usermod 命令将此用户添加到适当的系统管理员组,-a表示追加用户帐户 -G指定一个组
usermod -aG wheel xzxzbyh #CentOS/RHEL
usermod -aG sudo xzxzbyh #Debian/Ubuntu
# 切换用户
su xzxzbyh
cd ~
# 生成ssh密钥
ssh-keygen
生成密钥以后,建议修改它们的权限,防止其他人读取。
chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa.pub
将本机的id_rsa.pub 复制公钥到服务器(前提本机也生成了公钥和私钥)
vi ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
authorized_keys文件的权限要设为644,即只有文件所有者才能写。如果权限设置不对,SSH 服务器可能会拒绝读取该文件。
修改ssh配置文件取消root登录
sudo vim /etc/ssh/sshd_config
# PermitRootLogin并将其值设置为no 不允许root登录
# 设置PasswordAuthentication no 不允许密码登录
#重启ssh服务
systemctl restart sshd
service sshd restart
Lnmp环境安装
lnmp即linux+nginx+mysql+php 我使用的是lnmp一键安装包
进入 lnmp.org 可以进行查看
也可直接使用下发代码
# 切换root账户
sudo -i
wget https://soft.lnmp.com/lnmp/lnmp2.1.tar.gz -O lnmp2.1.tar.gz && tar zxf lnmp2.1.tar.gz && cd lnmp2.1 && ./install.sh lnmp
安装的配置
可参考官网的配置方式
等待安装成功
增加站点
lnmp vhost add
配置信息可参考下方 也可查看lnmp添加站点
部署wordpress
普通用户使用以下命令需要使用sudo
提权
cd /home/wwwroot/wordpress
curl -O https://cn.wordpress.org/wordpress-6.7.1-zh_CN.tar.gz
tar -xzvf wordpress-6.7.1-zh_CN.tar.gz
mv wordpress/* .
rmdir wordpress
# 提权
chmod -R 755 *
find . -type f -not -name '.user.ini' -exec chmod 644 {} +
# 修改myqsl允许最大包
vim /etc/my.cnf
# max_allowed_packet = 16M 设置为16M
systemctl restart mysql.service
指令的作用如下:
chmod -R 755 *
:将所有文件和目录的权限设置为 755。find . -type f -exec chmod 644 {} +
:将所有文件的权限设置为 644。
配置nginx
将default域的路径改为worepress的路径
cd /usr/local/nginx/conf
sudo vim nginx.conf
刷新nginx
sudo systemctl reload nginx
输入自己服务器ip地址 配置wordpress
备份插件:wpvivid Backup
为了让界面可以访问 我们需要配置伪静态来实现访问
location / {
# file ($uri) or directory ($uri/)? if not, redirect to /index.php + query string
try_files $uri $uri/ /index.php?$args;
index index.html index.htm index.php;
}
最开始建议配上方伪静态等调试完毕之后可以为了安全考虑使用下方规则
如果你允许ip地址访问又强制https可以使用以下规则
location /
{
return 301 https://$host$request_uri;
}
如果不需要ip地址访问可以将其重定向到指定网站 需要提前好配置域名解析
return 301 https://blog.aboyzy.top;
SSL配置
以下命令需要在root权限下进行 普通用户注意提权
因为在前边可能没有配置好站点或者域名解析,所以我们在之前创建站点的时候ssl访问设置为了no。 为了网站安全考虑我们现在需要给其加上证书。可以选择本地 和自动配发免费证书。我是用的是自动配发的证书。脚本支持自动acme续期
lnmp ssl add
root查看自动定时任务自动续期 查看是否有定时任务
crontab -l
配置完成之后需要配置伪静态否则界面无法访问
vim /usr/local/nginx/conf/vhost/blog.aboyzy.top.conf
在监听443的server中增加
location / {
try_files $uri $uri/ /index.php?$args;
index index.html index.htm index.php;
}
刷新nginx
sudo nginx -t
sudo systemctl reload nginx
配置之后如果是wordpress则需要在后台管理界面将网站地址改为与域名相同的地址
安全部分配置
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
valid_referers none blocked blog.aboyzy.top *.aboyzy.top;
if ($invalid_referer) {
return 403;
}
expires 30d;
}
alist
新增站点跟上边wordpress一样lnmp vhost add
然后它不需要mysql
创建完站点后进入站点目录
安装程序 后边更的是站点的目录 root账户执行
curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install /站点目录
根据提示设置密码 域名解析提前设置好
配置ssl 之后 lnmp ssl add
http要重定向到https
443 监听配置以下规则就可以
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:5244;
# 上传的最大文件尺寸
client_max_body_size 20000m;
}
Comments NOTHING