LNMP环境搭建
安装pip及yum
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
yummain.py install yum
yum -y install wget
已安装忽略
如果提示错误: CRITICAL:yum.cli:Config Error: Error accessing file for config file:///etc/
是缺少配置文件。在etc目录下面新建yum.conf文件,然后再次运行 yummain.py install yum,顺利完成安装
检查更新:
yum check-update
yum update
yum clean all
安装LNMP
LNMP一键包官网
无人值守命令生成工具
安装screen并运行于lnmp
yum install screen
screen -S lnmp
wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.8.tar.gz && tar zxf lnmp1.8.tar.gz && cd lnmp1.8 && ./install.sh lnmp
安装时间半小时左右
恢复screen
screen -r lnmp
退出screen
screen -S lnmp -X quit
相关虚拟主机命令:
LNMP状态管理:lnmp {start|stop|reload|restart|kill|status}
LNMP各个程序的状态管理:lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
虚拟主机管理:lnmp vhost {add|list|del}
数据库管理:lnmp database {add|list|edit|del}
FTP用户管理:lnmp ftp {add|list|edit|del|show}
已存在虚拟主机添加SSL:lnmp ssl add
通过DNS API方式生成证书并创建虚拟主机:lnmp dns {cx|dp|ali|...}
只通过DNS API方式生成SSL证书:lnmp onlyssl {cx|dp|ali|...}
配置站点
提前将域名解析到ip
lnmp vhost add
Please enterdomain(example: www.lnmp.org):你的域名
Enter more domain name(example: lnmp.org *.lnmp.org): 直接回车,多站点配置输入其他站点
Default directory: /home/wwwroot/www.iloli.io: 网站放置目录
Allow Rewrite rule? (y/n) y
(Default rewrite: other): 伪静态,根据实际选择
Enable PHP Pathinfo? (y/n)y
Allow access log? (y/n)n
Create database and MySQL user with same name (y/n)y,也可以n,自己在phpmyadmin新增
Enter current root password of Database (Password will not shown): SQL密码
Enter database name: typecho
(输入新增数据库名字)
Please enter password for mysql user wordpressdb: 新增的数据库密码
Add SSL Certificate (y/n) :是否自动生成证书
Enter 1 or 2: 2,let's证书
等待安装即可
FTP服务器
官网说明
Pureftpd
cd /root/lnmp1.8
./pureftpd.sh
卸载:./pureftpd.sh uninstall
注意权限问题:
文件夹赋予组别权限
chown www:www -R /FTP目录
或者
gpasswd -a ftp www #将ftp加入www组
防跨站配置
1.删除.usr.ini
防跨站文件
chattr -i /home/wwwroot/网站目录/.user.ini
rm -rf /home/wwwroot/网站目录/.user.ini
2.修改fastcgi的配置文件/usr/local/nginx/conf/fastcgi.conf
# fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
注释掉注
3.或者修改php.ini的配置文件:/usr/local/php/etc/php.ini
在最后面加入
[HOST=www.xxx.com]
open_basedir=/home/wwwroot/www.xxx.com:/tmp/:/proc/
也可以SSH直接执行:
echo "[HOST=www.xxx.com]
open_basedir=/home/wwwroot/www.xxx.com:/tmp/:/proc/ ">> /usr/local/php/etc/php.ini
进行添加,两行全部复制粘贴会回车
phpayadmin
phpmyadmin高级功能尚未完全设置部分功能未激活
新建一个名为phpmyadmin
的数据库,并导入create_tables.sql
,该文件位于
/home/wwwroot/default/phpmyadmin/sql
PHP相关
fileinfo扩展
cd /root/lnmp1.8/src
tar -jxvf php-7.3.28.tar.bz2
cd php-7.3.28/ext/fileinfo
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
如果提示错误,基是内存不够,内存需要1G以上,添加swap
修改配置:vi /usr/local/php/etc/php.ini
在最后面加上:
extension=fileinfo.so
如果重启php提示错,换成:
;extension=fileinfo.so
ionCube扩展
cd /root/lnmp1.8
./addons.sh install ionCube
重启PHP:/etc/init.d/php-fpm restart
查看扩展:php -m
php限制
打开文件描述符的限制数量ulimit -n
查看,如果是1024,
/etc/security/limits.conf
加上:
* soft nofile 51200
* hard nofile 51200
执行
source /etc/profile
重新连接SSH查看
FastCGI子进程数/usr/local/php/etc/php-fpm.conf
文件:
max_children 300
相关参数限制
file_uploads on 是否允许通过HTTP上传文件的开关
max_execution_time 600 每个PHP页面运行的最大时间值(秒)
max_input_time 600 每个PHP页面接收数据所需的最大时间
memory_limit 8m 每个PHP页面所吃掉的最大内存,默认8M
post_max_size 通过表单POST给PHP的所能接收的最大值
upload_max_filesize 允许上传文件大小的最大值
NGINX相关
nginx上传限制
client_max_body_size 30m;
nginx IP+端口
nginx可以配置IP+端口访问网站,具体如下:
server
{
listen 61000;
#listen [::]:80;
server_name 127.0.0.1:61000;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/typecho;
其他工具
目录位置
/root/lnmp1.7/tools
备份脚本 backup.sh
备份脚本需要修改一下几个参数,需要配合crontab使用。
Backup_Home="/home/backup/" #####备份文件存放目录
MySQL_Dump="/usr/local/mysql/bin/mysqldump" ####mysqldump路径,如果是mariadb替换/usr/local/mysql为/usr/local/mariadb
######~Set Directory you want to backup~######
Backup_Dir=("/home/wwwroot/vpser.net" "/home/wwwroot/lnmp.org") ##########要备份的目录,目录用双引号括起来,多个目录空格隔开,如前面的例子
######~Set MySQL Database you want to backup~######
Backup_Database=("lnmp" "vpser") ########要备份的数据库,前面有例子
######~Set MySQL UserName and password~######
MYSQL_UserName='root' ####不用说了,MySQL root账号
MYSQL_PassWord='yourrootpassword' ##### MySQL root密码
######~Enable Ftp Backup~######
Enable_FTP=0 #####是否启用ftp备份,0 启用,非0 不启用
# 0: enable; 1: disable
######~Set FTP Information~###### ftp账号信息
FTP_Host='1.2.3.4'
FTP_Username='vpser.net'
FTP_Password='yourftppassword'
FTP_Dir="backup" #########ftp服务器上存放备份的目录
#Values Setting END!
默认备份文件保存3天,可以修改backup.sh里的-3day为你指定的天数。
nginx日志切割脚本 cut_nginx_logs.sh
使用方法:http://www.vpser.net/manage/cut-nginx-log-files.html
Denyhosts SSH防护安装脚本 denyhosts.sh
denyhosts安装脚本,保证SSH安全,自动屏蔽破解SSH的IP。安装方法直接运行 ./denyhosts.sh 回车自动安装,不需要干预,如想了解该程序的相关介绍可以看一下:http://www.vpser.net/security/denyhosts.html
denyhosts_removeip.sh Denyhosts删除被屏蔽IP较麻烦,可以使用这个工具来删除被denyhosts屏蔽的ip的工具 ./denyhosts_removeip.sh 要删除的ip,不加ip的话会提示用法
fail2ban SSH防护安装脚本 fail2ban.sh
fail2ban安装脚本,保证SSH安全,自动屏蔽破解SSH的IP。安装方法直接运行 ./fail2ban.sh 回车自动安装。
PHP禁用函数删除工具 remove_disable_function.sh
运行 ./remove_disable_function.sh
作用:http://bbs.vpser.net/thread-7649-1-1.html 运行会有具体用法
MySQL/MariaDB 重置root密码的工具 reset_mysql_root_password.sh
MySQL/MariaDB 重置root密码的工具,直接运行 ./reset_mysql_root_password.sh
PHP-FPM 502检查重启工具 check502.sh
该工具一般需要配合crontab进行使用,如没5分钟检测是否报502错误,并自动重启PHP-FPM,/5 * 文件所在全路径/check502.sh,crontab教程
防跨目录移除工具 ./remove_open_basedir_restriction.sh
该工具可以快速的移除防跨目录的限制,在tools目录下运行 ./remove_open_basedir_restriction.sh 按提示输入虚拟主机目录回车确认即可。
此处评论已关闭