从零开始搭建web服务器环境(基于LNMP)
本文教您从零开始搭建web服务器环境,按照以下一步步操作,您就可以配置成功一台LNMP服务器,并且支持自动切割日志和保留指定天数,自动备份数据库。
服务器环境为Ubuntu Server 20.04,安装服务器系统时建议单独创建/data分区,用以存放web数据。
一、安装lnmp
1、sudo apt-get install nginx
2、sudo apt-get install mariadb-server
3、sudo mysql_secure_installation
4、apt-get install php-fpm php-mysql php-mbstring php-xml php-gd
二、导入用mysqldump备份的mysql数据库
1、mysql -u root -p
2、mysql命令提示符下:
create database company;
use company;
source /data/mysql_bak/company.sql;
3、备份mysql数据库
mysqldump -u root -p company > /data/mysql_bak/company.sql;
三、配置nginx
1、将默认站点配置文件/etc/nginx/sites-enabled/default删除,使用我们自定义的站点配置文件:把/data/install/vhosts.conf复制到/etc/nginx/sites-enabled里
sudo rm /etc/nginx/sites-enabled/default
sudo cp -rf /data/install/vhosts.conf /etc/nginx/sites-enabled
2、流量控制,修改/etc/nginx/nginx.conf内容,在http段添加:
limit_conn_zone $server_name zone=perserver:10m;
limit_conn_zone $binary_remote_addr zone=peraddr:10m;
limit_req_zone $binary_remote_addr zone=perreq:10m rate=5r/s;
3、更改/etc/php/8.0/fpm/pool.d/www.conf文件,将listen = /run/php/php8.0-fpm.sock修改为listen = 127.0.0.1:9000
sudo nano /etc/php/8.0/fpm/pool.d/www.conf
4、设置日志自动切割和删除,将/data/install/cut_nginxlog.sh复制到/usr/sbin ,给脚本执行权限。
sudo cp /data/install/cut_nginxlog.sh /usr/sbin
sudo chmod +777 /usr/sbin/cut_nginxlog.sh
5、编辑/etc/crontab,开机自动运行脚本
sudo nano /etc/crontab
在最后一行下面增加一行:
00 0 * * * root /usr/sbin/cut_nginxlog.sh
系统将在每天0点0分执行。
6、注意防火墙允许80/tcp,81/tcp,82/tcp,22/tcp,9000/tcp
四、设置数据库自动备份
1、将/data/install/mysql_bak.sh复制到/usr/sbin ,给执行权限
sudo cp /data/install/mysql_bak.sh /usr/sbin
sudo chmod +777 /usr/sbin/mysql_bak.sh
2、编辑/etc/crontab,开机自动运行脚本
sudo nano /etc/crontab
在最后一行下面增加一行:
00 1 * * * root /usr/sbin/mysql_bak.sh
系统将在每天1点执行备份功能。