原创学无止境

LNMP环境下主机添加、网站程序部署与Nginx安全加固教程

本文阅读 5 分钟
首页 学无止境 正文

LNMP环境下主机添加、网站程序部署与Nginx安全加固教程

一、LNMP添加网站(虚拟主机)

使用SSH远程连接Web服务器,运行以下命令添加网站:

lnmp vhost add

提示:若在终端输入错误,可按住 Ctrl+Backspace 进行删除。

交互配置选项说明

1、 主域名与附加域名

Please enter domain(example: www.kaixin.com):

👉输入主域名(例如www.kaixin.com)。

Enter more domain name(example: kaixin.com):

👉输入绑定的其他域名(多个域名用空格隔开;若不绑定其他域名,直接回车)。

2、 网站根目录

Please enter the directory for the domain: www.kaixin.com
Default directory: /home/wwwroot/www.kaixin.com:

👉直接回车,默认路径为/home/wwwroot/www.kaixin.com(如需自定义路径必须是/开头的完整路径)。

3、 伪静态(Rewrite Rules)

Allow Rewrite rule?(y/n)👉输入y启用。

Please enter the rewrite of programme,
wordpress,discuzx,typecho,thinkphp,laravel,codeigniter,yii2,zblog rewrite was exist.

👉输入网站程序名称(内置支持:wordpress、discuzx、typecho、thinkphp、laravel、codeigniter、yii2、zblog 等伪静态规则)。

4、 Pathinfo机制

Enable PHP Pathinfo?(y/n)

👉一般输入n(回车默认不启用)。注意:WordPress无需开启;Typecho或CI框架程序需开启y。

5、 日志与IPv6

Allow access log?(y/n) 👉根据需要选择是否开启访问日志(y/n)。

Enable IPv6?(y/n) 👉根据网络环境选择是否启用IPv6(y/n)。

6、 数据库创建

Create database and MySQL user with same name (y/n)

👉建议输入n(后期可通过phpMyAdmin创建)。

LNMP添加网站流程

7、 SSL证书配置

Add SSL Certificate(y/n) 👉输入y添加证书。

1: Use your own SSL Certificate and Key
2: Use Let's Encrypt to create SSL Certificate and Key
3: Use BuyPass to create SSL Certificate and Key
4: Use ZeroSSL to create SSL Certificate and Key
Enter 1, 2, 3 or 4: 👉选择证书来源(此处以选择 1 自定义证书为例):

Please enter full path to SSL Certificate file:

👉输入证书文件.crt的绝对路径,例:/usr/local/nginx/conf/ssl/www.kaixin.com/www.kaixin.com.crt

Please enter full path to SSL Certificate Key file:

👉 输入私钥文件.key的绝对路径,例:/usr/local/nginx/conf/ssl/www.kaixin.com/www.kaixin.com.key

Using 301 to Redirect HTTP to HTTPS?(y/n) 👉输入 y 开启强制 HTTPS 301 重定向。

网站添加SSL证书

完成:设置完成后按回车键开始配置,成功后终端会显示所配置的域名、目录、伪静态、日志、数据库、FTP等信息。

LNMP网站添加成功界面

二、部署网站程序与权限设置

以部署 wordpress-7.0.2-zh_CN.zip 到 /home/wwwroot/www.kaixin.com为例:

1、 解压并整理文件

#进入网站根目录
cd /home/wwwroot/www.kaixin.com
#查看已上传的压缩包
ls -la
#解压压缩包
unzip wordpress-7.0.2-zh_CN.zip

进入网站根目录解压网站程序

#将解压出来的文件夹内部所有文件移动到网站根目录
mv /home/wwwroot/www.kaixin.com/wordpress/* /home/wwwroot/www.kaixin.com/
#清理多余的空文件夹和压缩包
rm -rf wordpress wordpress-7.0.2-zh_CN.zip

2、 用户组与文件权限修正

#将网站目录及文件的所有者修改为 www 用户组
chown www:www -R /home/wwwroot/www.kaixin.com
#进入网站根目录
cd /home/wwwroot/www.kaixin.com
#设置目录权限为 755
find -type d -exec chmod 755 {} +
#设置文件权限为 644
find -type f -exec chmod 644 {} +

网站根目录和文件添加权限

补充说明:若执行以上命令提示 chown: changing ownership of '/home/wwwroot/www.kaixin.com/.user.ini':Operation not permitted,此为系统的防跨站安全防护属性,不影响其他文件的修改,直接忽略即可。

三、Nginx 网站安全加固(以 WordPress 为例)

编辑该网站的 Nginx 配置文件:

vi /usr/local/nginx/conf/vhost/www.kaixin.com.conf

操作步骤:按键盘上的 i 键 进入编辑模式,在 include enable-php.conf 行上方添加以下安全防护指令:

#拦截隐藏文件(.htaccess,.git,.user.ini等)
 location ~ /\.
{
   deny all;
   access_log off;
   log_not_found off;
}
#拦截敏感配置文件
location ~* ^/(wp-config\.php|\.user\.ini) 
{
   deny all;
}
#禁用 XML-RPC(防止DDoS与密码爆破)
location = /xmlrpc.php
{
   deny all;
   access_log off;
   log_not_found off;
}
#禁止指定目录执行脚本
location ~* ^/wp-content/(uploads|cache|languages)/.*\.(php\d*|phtml|phar|inc)$ 
{
   deny all;
}
#禁止wp-includes目录执行脚本
location ~* ^/wp-includes/.*\.(php\d*|phtml|phar|inc)$
{
   deny all;
}

保存退出:按 Esc 退出编辑模式,输入 :wq回车 保存。最后运行 nginx -t && nginx -s reload 测试并重载配置。

nginx -t && nginx -s reload 

四、删除网站(彻底清理)

若网站配置错误或不再使用,可以通过以下步骤彻底删除:

1、删除虚拟主机配置

lnmp vhost del

系统会列出已有的虚拟主机,输入要删除的域名后按回车确认。

2、删除网站源码及根目录

由于.user.ini文件被设定了防篡改属性,需要先解锁该文件才能成功删除根目录:

#进入网站根目录并解锁防跨站锁定文件
cd /home/wwwroot/www.kaixin.com
chattr -i .user.ini
#返回上级目录并删除整个网站文件夹
cd /home/wwwroot
rm -rf www.kaixin.com
原创文章,作者:狼道,如若转载,请注明出处:https://wolfsays.com/242.html
Debian 12快速搭建LNMP Web环境指南
« 上一篇 07-30