从零开始学习LNMP环境使用笔记!

首先一键安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)生产环境

# yum install screen #启动screen会话防止安装时断开
# wget -c http://soft.vpser.net/lnmp/lnmp0.9.tar.gz #下载LNMP安装包
# tar zxvf lnmp0.9.tar.gz #解压安装文件
# cd lnmp0.9 #进入文件目录
# ./centos.sh 2>&1 | tee lnmp.log #开始安装LNMP

安装eAccelerator插件为PHP做缓存加速
# ./eaccelerator.sh #选择版本回车安装

安装系统定时执行服务crontab #每天定时分割日志和定时备份数据需要使用
# yum install vixie-cron crontab #安装crontab服务
# chkconfig crond on #设为开机自启动
# service crond start #启动服务crontab
# crontab -e #测试能否正常打开crontab -e出现编辑器代表安装成功
# yum -y remove crontab #无法正常打开编辑器先卸载
# yum install crontab #重新安装再次执行crontab -e出现编辑器代表安装成功
设置SWAP分区来应急并发数过高(一般为内存2倍)只限XEN型VPS
# cd /var/ #随便进入一个目录
# dd if=/dev/zero of=swapfile bs=1024 count=524288 #创建512M交换分区
# /sbin/mkswap swapfile #激活swap交换分区文件
# /sbin/swapon swapfile #检查测试swap是否正确
# vi /etc/fstab #加到fstab文件中让系统引导时自动启动
# /var/swapfile swap swap defaults 0 0 #在末行增加此代码
# /sbin/swapon -s #查看开机自启动的服务
系统LNMP环境简单优化NGINX和PHP进程数 #非常重要
#vi /usr/local/nginx/conf/nginx.conf #nginx配置文件
# worker_processes 2 #nginx进程数一般为CPU倍数

# vi /usr/local/php/etc/php-fpm.conf #php配置文件
# max_children=10 #php处理进程数 #最后看剩余内存,留100M内存其他内存调高此数

# max_children进程数量越大处理php越快,一个PHP进程大约占用20M内存
#如设置为5,访问大php会处理慢,前端nginx超过响应时间接收不到php返回数据即返回502错误
<value name="max_requests">10240</value>
#每个php-cgi进程最大请求数处理10240次后结束进程

<value name="request_terminate_timeout">30s</value>
#php-cgi进程处理数据运行时间0s代表一直运行, 30s代表前端30秒无请求便结束进程
####################################<个人方案>###################################
#php进程请求数max_requests越大就长期占用内存但处理速度快,因为10240次请求后才会结束

#但如果你网站除了php外请求比较大的话,建议512M内存预留最少200M内存做前端nginx并发情况

#或把max_requests最大请求数设置500-1000之间,达到这个请求数后就结束进程释放内存

#或把request_terminate_timeout结束时间为30s左右,30秒后无请求便结束进程释放内存

#推荐使用request_terminate_timeout时间结束进程来回收内存,当然有SWAP交换分区可暂时观察
####################################<个人方案>###################################

 

关闭sendmail邮件系统服务 #如果你需要发邮件可以开启
# /etc/rc.d/init.d/sendmail stop  ← 关闭sendmail服务
# service sendmail stop  ← 关闭sendmail服务方法二
# chkconfig sendmail off  ← 关闭sendmail开机自启动
# chkconfig --list sendmail  ← 确认sendmail开机自启动已关闭(都为off成功关闭)
修改SSH管理端口和禁用默认root登陆 #防止黑客用软件扫描你的ip破解密码
# vi /etc/ssh/sshd_config #找到#Port 22 #第13行,去掉注释并修改成Port 55555
# service sshd restart #重启SSH服务,以后登录用55555端口连接SHH管理
# useradd newadmin #添加一个新帐号newadmin
# passwd newadmin #给newadmin帐号设置密码
# vi /etc/ssh/sshd_config #找到 #PermitRootLogin yes 去掉注释#并修改yes成为no
# service sshd restart #重启SSH服务 #以后用newadmin登陆,需要root限权管理可执行su root输入root密码即可
#转移你的网站源代码和MYSQL数据库 #本地搭建的用外网IP访问下载
# wget http://111.222.111.222/mysql.sql #远程下载mysql数据库文件
# wget http://111.222.111.222/wwwroot.rar #远程下载你的网站源代码

 

#导入MYSQL数据库 #需要在phpMyAdmin后台新建数据库后导入
# cd /home/wwwroot/ #进入你数据库存放目录
# /usr/local/mysql/bin/mysql -u 用户名 -p 数据库名称 < 需要导入的数据库文件名.sql #导入数据库到mysql

 

#创建一个虚拟主机
# /root/vhost.sh #lnmp安装包自带脚本
# 绑定你的域名--是否多个域名Y/N--存放目录(按回车为域名目录)--开启伪静态(是wp就直接输入wordpress)--开启网站日志Y/N
# 确实后回车键成功创建虚拟主机, 网站存放目录路径为 # /home/wwwroot/上一步输入的域名/
解压 + 压缩打包你的网站程序源代码
#unrar x -o- -y dianyingchina.rar /home/wwwroot/www.dianyingchina.com #RAR格式解压
#tar zxvf wwwroot.tar.gz #tar.gz格式解压到当前目录
#tar czf wwwroot.tar.gz wwwroot #tar.gz打包当前为wwwroot目录
#tar czf wwwroot.tar.gz wwwroot.sql #tar.gz打包当前目录wwwroot.sql文件

#gunzip wwwroot.log.gz #gz格式解压 #当前目录解压wwwroot.log.gz压缩包
#gzip /home/beifen/mysql/123.sql #gz格式打包 #打包当前目录wwwroot.sql文件
使用mysqldump命令定时备份MYSQL数据库
# vi backup.sh #新建定时备份计划脚本
#!/bin/sh
/usr/local/mysql/bin/mysqldump -u用户名 -p密码 数据库名称 > /home/wwwroot/mysql/数据库名称$(date +"%Y%m%d").sql
rm /home/wwwroot/mysql/数据库名称$(date -d -7day +"%Y%m%d").sql #删除7天前的备份 #备份脚本代码结束
# crontab -e #配置定时执行脚本服务
# 00 03 * * * /bin/sh /root/backup.sh #添加任务至定时执行计划#每天03:00执行脚本
#数据库名称改为--all-databases即备份全部数据库#
关闭MYSQL生成的日志功能
# vi /etc/my.cnf #查找log-bin=mysql-bin和binlog_format=mixed注释即可
# service mysql restart #保存修改后重启MYSQL
# vi /home/wwwroot/mysql/libraries/config.default.php #随便解决phpmyadmin后台1440秒后登陆超时
# $cfg['LoginCookieValidity'] = 1440; #把其中1440修改成更大的值即可解决
# vi /usr/local/php/etc/php.ini #修改php文件与phpMyAdmin设置有效期相同
# session.gc_maxlifetime = 1440 #把其中1440修改成刚才phpMyAdmin设置相同的值

 

每日定时切割Nginx日志 #网站没开启日志可跳过
# wget http://soft.vpser.net/lnmp/ext/cut_nginx_logs.sh #下载定时切割脚本
# vi cut_nginx_logs.sh #修改脚本信息
--------------------------------------------------------------------------------------------
#设置nginx日志文件目录路径
log_files_path="/home/wwwlogs/"
#存放路径 /home/wwwlogs/年/月/日志文件名_年月日.log
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
#设置要切割的日志名称,如日志为www.url.com.log,则填写www.url.com,每个日志用空格分隔
log_files_name=(www.url.com www.ur2.com www.ur3.com)
#设置nginx文件的位置
nginx_sbin="/usr/local/nginx/sbin/nginx"
#设置日志保存的时间,天
save_days=7
-------------------------------------------------------------------------------------------------
# crontab -e #配置定时执行脚本服务
# 00 00 * * * /bin/bash /root/cut_nginx_logs.sh #每天00:00开始切割日志

Last modification:February 2, 2019
If you think my article is useful to you, please feel free to appreciate