美文网首页
centos7安装 lnmp1.6

centos7安装 lnmp1.6

作者: 我要进大厂 | 来源:发表于2020-06-03 01:23 被阅读0次

    lnmp

    官方地址:https://lnmp.org/

    LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。

    lnmpa安装

    流程就是:安装lnmp,然后再安装pureftp,开放相应的端口,对各个应用服务器进行设置。

    各个应用服务器进行设置:

    对pureftp进行防火墙端口设置、阿里云安全组规则端口开放,用主动模式去连接ftp。

    对mysql进行防火墙端口设置、阿里云安全组规则端口开放、设置root用户可远程ip连接。

    对nginx进行防火墙端口设置、远程ip连接、阿里云安全组规则端口开放。

    安装screen

    yum -y install screen
    screen -S lnmp     # 创建lnmp会话这样安装过程中掉线,可以重新恢复现在的安装界面
    
    通过putty或者SecureCRT安装lnmp时,网络突然掉线或者不小心putty被关掉等等原因,造成lnmp安装过程被中断怎么办,其实防止这种现象很简单,只要在安装lnmp前执行screen命令就可以了。详情看下面screen章节
    

    获取lnmp安装包

    cd /usr/
    wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz 
    

    解压安装包

    tar zxf lnmp1.6.tar.gz  -C /usr/ # -C 代表解压到/usr/目录
    mv lnmp1.6/ lnmp/
    

    安装lnmpa

    cd /usr/lnmp
    ./install.sh lnmpa     
    
    如需要安装LNMPA或LAMP,将./install.sh 后面的参数lnmp替换为lnmpa或lamp即可。如需更改网站和数据库目录、自定义Nginx参数、PHP参数模块、开启lua等需在运行./install.sh 命令前修改安装包目录下的 lnmp.conf 文件,详细可以查看lnmp.conf文件参数说明。
    

    安装过程中,我选择安装 mysql 5.7,php 5.6,Jemalloc内存分配器

    img

    安装完成

    Complete!
    iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]
    Redirecting to /bin/systemctl reload  iptables.service
    Job for iptables.service invalid.
    Add iptables service at system startup...
    error reading information on service iptables: No such file or directory
    Note: Forwarding request to 'systemctl enable iptables.service'.
    Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
    Add Startup and Starting LNMPA...
    Add nginx service at system startup...
    Starting nginx...  done
    Add mysql service at system startup...
    Starting MySQL. SUCCESS! 
    Add httpd service at system startup...
    start apache...  done
    ============================== Check install ==============================
    Checking ...
    Nginx: OK
    MySQL: OK
    PHP: OK
    Apache: OK
    Clean Web Server src directory...
    +------------------------------------------------------------------------+
    |          LNMP V1.6 for CentOS Linux Server, Written by Licess          |
    +------------------------------------------------------------------------+
    |           For more information please visit https://lnmp.org           |
    +------------------------------------------------------------------------+
    |    lnmp status manage: lnmp {start|stop|reload|restart|kill|status}    |
    +------------------------------------------------------------------------+
    |  phpMyAdmin: http://IP/phpmyadmin/                                     |
    |  phpinfo: http://IP/phpinfo.php                                        |
    |  Prober:  http://IP/p.php                                              |
    +------------------------------------------------------------------------+
    |  Add VirtualHost: lnmp vhost add                                       |
    +------------------------------------------------------------------------+
    |  Default directory: /home/wwwroot/default                              |
    +------------------------------------------------------------------------+
    |  MySQL/MariaDB root password: ****                          |
    +------------------------------------------------------------------------+
    +-------------------------------------------+
    |    Manager for LNMP, Written by Licess    |
    +-------------------------------------------+
    |              https://lnmp.org             |
    +-------------------------------------------+
    nginx (pid 1883) is running...
     SUCCESS! MySQL running (2474)
    Apache is running.
    State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
    LISTEN     0      128          *:80                       *:*                  
    LISTEN     0      9            *:21                       *:*                  
    LISTEN     0      128          *:22                       *:*                  
    LISTEN     0      128    127.0.0.1:88                       *:*                  
    LISTEN     0      128         :::3306                    :::*                  
    LISTEN     0      9           :::21                      :::*                  
    Install lnmp takes 62 minutes.
    Install lnmp V1.6 completed! enjoy it.
    

    一些提示操作:可以查看/usr/lnmp/README,从lnmp1.4开始,不再安装pureftp,需要自己手动安装。见下文安装PureFtp篇

    lnmp快速安装命令

    yum -y install screen
    screen -S lnmp     # 创建lnmp会话这样安装过程中掉线,可以重新恢复现在的安装界面
    cd /usr/
    wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz 
    tar zxf lnmp1.6.tar.gz  -C /usr/ # -C 代表解压到/usr/目录
    mv lnmp1.6/ lnmp/
    cd /usr/lnmp
    ./install.sh lnmp   
    然后就让它去安装吧,大概要等一个小时。
    
    
    复制另一个会话,同步去安装ftp
    cd  /usr/lnmp/
    ./pureftpd.sh
    # 安装完成后,新建用户
    cd /usr/local/pureftpd/bin/
    # 新建虚拟用户www 在系统用户www和系统用户组www下,并指定了该虚拟用户www对应的根目录
    ./pure-pw useradd www -u www -g www -d /home/wwwroot/default/  
    ./pure-pw mkdb  # 提交变更到数据库
    # 现在配置好了ftp,需要设置防火墙了
    systemctl start firewalld
    systemctl enable firewalld 
    # 5.1、---permanent 永久开放ftp端口
    firewall-cmd --zone=public --add-port=21/tcp --permanent 
    firewall-cmd --zone=public --add-port=3306/tcp --permanent 
    firewall-cmd --zone=public --add-port=80/tcp --permanent 
    firewall-cmd --zone=public --add-port=88/tcp --permanent 
    firewall-cmd --zone=public --add-port=8080/tcp --permanent 
    firewall-cmd --reload 
    # 最后去阿里云安全组规则开放端口
    
    等安装完lnmp后,就去配置mysql
    # 1、使用ROOT用户登录。
    mysql -h localhost -u root -p
    # 2、命令解释:GRANT ALL 所有权限 ON *.*在所有的数据库上 TO root@’%’ 对 root 用户,在所有其他 IP 上的 root 用户
    mysql> grant all on *.* to root@'%' identified by '密码' with grant option;
    # 3、刷新配置
    mysql> flush privileges;
    # 4、可以看出root用户允许任何host主机进行连接
    mysql> select host,user from mysql.user;
    # 5、最后在重启服务,记得重启服务,重启服务 
    [root@master ~]# /etc/init.d/mysql restart
    

    lnmpa相关软件安装目录

    • Nginx 目录: /usr/local/nginx/
    • MySQL 目录 : /usr/local/mysql/
      MySQL数据库所在目录:/usr/local/mysql/var/
    • MariaDB 目录 : /usr/local/mariadb/
      MariaDB数据库所在目录:/usr/local/mariadb/var/
    • PHP目录 : /usr/local/php/
      多PHP版本目录 : /usr/local/php5.5/ 其他版本前面5.5的版本号换成其他即可
    • PHPMyAdmin目录 : 0.9版本为/home/wwwroot/phpmyadmin/ 1.0及以后版本为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。默认网站目录 : 0.9版本为 /home/wwwroot/ 1.0及以后版本为 /home/wwwroot/default/
    • Nginx日志目录:/home/wwwlogs/
      /root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
    • PureFtpd 目录:/usr/local/pureftpd/
      PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/
    • Proftpd 目录:/usr/local/proftpd/
    • Redis 目录:/usr/local/redis/
    1590914539914
    # 配置文件:
    * Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
    * MySQL/MariaDB配置文件:/etc/my.cnf
    * PHP配置文件:/usr/local/php/etc/php.ini
    * PHP-FPM配置文件:/usr/local/php/etc/php-fpm.conf
    * PureFtpd配置文件:/usr/local/pureftpd/etc/pure-ftpd.conf
    * Apache配置文件:/usr/local/apache/conf/httpd.conf
    * nginx的根路径: /home/wwwroot/deafult/
    

    lnmpa启动命令

    * LNMP/LNMPA/LMAP状态管理: lnmp {start|stop|reload|restart|kill|status} 
    * Nginx状态管理: lnmp nginx或/etc/init.d/nginx {start|stop|reload|restart} 
    * MySQL状态管理: lnmp mysql或/etc/init.d/mysql {start|stop|restart|reload|force-reload|status} 
    * MariaDB状态管理: lnmp mariadb或/etc/init.d/mariadb {start|stop|restart|reload|force-reload|status} 
    * PHP-FPM状态管理: lnmp php-fpm或/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate} 
    * PureFTPd状态管理: lnmp pureftpd或/etc/init.d/pureftpd {start|stop|restart|kill|status} 
    * Apache状态管理: lnmp httpd或/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status} 
    
    
    所以启动lnmpa,直接使用 lnmp restart && /etc/init.d/pureftpd restart
    可以通过 http://ip/p.php 探针查看服务器内存是否满了等等信息。
    

    防火墙设置

    搭建好lnmpa后,通过外网ip访问nginx,mysql,pure-ftp等有可能因端口问题访问失败,我们需要对防火墙进行设置。包括开启防火墙、开机自动启动防火墙、开放应用服务器对应的端口;

    # 1、 查看防火墙的状态
    [root@master lnmp]# systemctl status firewalld  
    # 2、开启防火墙
    [root@master ~]# systemctl start firewalld       
    # 3、再次查看防火墙的状态,现为:active 
    [root@master ~]# systemctl status firewalld
    # 4、设置开机自动启动防火墙
    [root@master ~]# systemctl enable firewalld.service  
    
    # 5.1、---permanent 永久开放ftp端口
    [root@master ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent 
    success
    # 5.2 --- 永久开放mysql端口
    [root@master ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent 
    success
    # 5.3 --- 永久开放ningx端口
    [root@master ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent 
    success
    # 5.4 --- 永久开放apache(httpd)端口,如果安装的是lnmp,则不需要开放88端口
    [root@master ~]# firewall-cmd --zone=public --add-port=88/tcp --permanent 
    success
    # 5.5 --- 永久开放tomcat端口,如果有安装的tomcat的话就开放,没有则不需要开放8080端口
    [root@master ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent 
    success
    # 6、重新载入,添加端口后重新载入才能起作用
    [root@master ~]# firewall-cmd --reload        
    success      
    # 7、可以查看现在3306端口已经开放了
    [root@master ~]# firewall-cmd --zone=public --query-port=3306/tcp
    yes
    

    另附firewall的其他命令操作

    关闭80访问权限 firewall-cmd --zone=public --remove-port=80/tcp --permanent
    启动: systemctl start firewalld
    查看状态: systemctl status firewalld 
    停止: systemctl disable firewalld
    禁用: systemctl stop firewalld
    启动服务:systemctl start firewalld.service
    关闭服务:systemctl stop firewalld.service
    重启服务:systemctl restart firewalld.service
    服务的状态:systemctl status firewalld.service
    在开机时启用一个服务:systemctl enable firewalld.service
    在开机时禁用一个服务:systemctl disable firewalld.service
    查看服务是否开机启动:systemctl is-enabled firewalld.service
    查看已启动的服务列表:systemctl list-unit-files|grep enabled
    查看启动失败的服务列表:systemctl --failed
    查看版本: firewall-cmd --version
    查看帮助: firewall-cmd --help
    显示状态: firewall-cmd --state
    查看所有打开的端口: firewall-cmd --zone=public --list-ports
    查看所有打开的端口: firewall-cmd --list-all
    更新防火墙规则: firewall-cmd --reload
    查看区域信息:  firewall-cmd --get-active-zones
    查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
    拒绝所有包:firewall-cmd --panic-on
    取消拒绝状态: firewall-cmd --panic-off
    查看是否拒绝: firewall-cmd --query-panic
    
    ————————————————
    版权声明:本文为CSDN博主「LCYong_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/LCYong_/java/article/details/78928223
    

    安全组规则设置

    开放了防火墙端口还不够,还需要再阿里云安全组规则页面进行再次开放端口。

    1591030863344

    我分别开放了21、22、80、88、3306、8080端口。

    1591030591743

    外部访问Nginx

    1、阿里云安全组规则,开放80端口

    # 1、开启防火墙
    [root@master ~]# systemctl start firewalld 
    # 2、---permanent 永久开放80端口
    [root@master ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent 
    success  
    # 3、重新载入,添加端口后重新载入才能起作用
    [root@master ~]# firewall-cmd --reload        
    success 
    

    2、阿里云安全组规则,开放80端口

    访问地址:http://ip/index.html

    nginx的用户为www,用户组为www ---可从nginx.conf看到

    最后将/home/wwwroot/default下的phpmyadmin改个名字。不要让你可以随意猜到phpmyadmin的地址。

    外部访问Mysql

    安装后,-h localhost可以访问mysql,但是-h 公网ip无法正常登录mysql,提示2003错误。

    linux ERROR 2003 (HY000): Can't connect to MySQL server on
    

    网上很多说法是“因为centos7系统,即使关闭 firewalld,除了22端口,其余端口无法被外界访问,本地访问正常。”但经过测试,即使关了防火墙,访问其他端口时,未在==阿里云安全组规则==配置,也会被阿里云安全组规则进行挡住而无法访问。针对该问题,需要进行下面三步操作设置。

    1、打开防火墙,然后开放防火墙3306端口

    # 1、 查看防火墙的状态
    [root@master lnmp]# systemctl start firewalld  
    # 2、---permanent 永久开放3306端口,
    [root@master ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent 
    success  
    # 3、重新载入,添加端口后重新载入才能起作用
    [root@master ~]# firewall-cmd --reload        
    success      
    

    2、阿里云安全组规则,开放3306端口

    3、mysql授权任何ip都可以远程该mysql服务器

    # 1、使用ROOT用户登录。
    [root@master ~]# mysql -h localhost -u root -p
    
    # 2、命令解释:GRANT ALL 所有权限 ON *.*在所有的数据库上 TO root@’%’ 对 root 用户,在所有其他 IP 上的 root 用户
    mysql> grant all on *.* to root@'%' identified by '密码' with grant option;
    
    # 3、刷新配置
    mysql> flush privileges;
    
    # 4、可以看出root用户允许任何host主机进行连接
    mysql> select host,user from mysql.user;
    +-----------+---------------+
    | host      | user          |
    +-----------+---------------+
    | %         | root          |
    | localhost | mysql.session |
    | localhost | mysql.sys     |
    | localhost | root          |
    +-----------+---------------+
    
    # 5、最后在重启服务,记得重启服务,重启服务 
    [root@master ~]# /etc/init.d/mysql restart
    # 最后就可以成功用ip访问了
    [root@master ~]# mysql -h ip -u root -p
    

    安装PureFTP

    默认LNMP是不安装FTP服务器的,如需要FTP服务器:https://lnmp.org/faq/ftpserver.html

    我选择安装pureftpd ,当然也可以不按照pureftpd,直接使用xshell的xftp去操作。

    # 进行安装pureftp,可以在安装lnmpa的过程中,同时执行安装pureftp
    [root@master pureftpd]# cd  /usr/lnmp/
    [root@master pureftpd]# ./pureftpd.sh
    
    • 防火墙开放21端口,设置阿里云安全组规则开放21端口
    # 1、 查看防火墙的状态
    [root@master lnmp]# systemctl status firewalld  
    # 2、开启防火墙
    [root@master ~]# systemctl start firewalld       
    # 3、再次查看防火墙的状态,现为:active 
    [root@master ~]# systemctl status firewalld
    # 4、设置开机自动启动防火墙
    [root@master ~]# systemctl enable firewalld.service  
    
    # 5、---permanent 永久开放21端口,
    [root@master ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent 
    success  
    # 6、重新载入,添加端口后重新载入才能起作用
    [root@master ~]# firewall-cmd --reload        
    success      
    # 7、可以查看现在21端口已经开放了
    [root@master ~]# firewall-cmd --zone=public --query-port=21/tcp
    yes
    

    pureftpd 命令操作

    • 启动
    启动命令: /etc/init.d/pureftpd start|stop|restart
    安装目录: /usr/local/pureftpd/ 
    添加用户: pure-pw useradd或者 lnmp ftp add
    
    • 添加ftp虚拟用户

    这个ftp虚拟用户为系统用户下的虚拟用户。就是说,你通过ftp客户端登录后上传的文件的所有者(权限)为该系统用户。比如,将ftp用户test绑定到系统用户cjf下,那么登录ftp后,上传的服务器的文件所有者是cjf。这样就可以不用给你该系统用户的登录密码,免得你登录服务器去干其他坏事。

    1、 要有系统用户和对应的用户组,这里我们新建一个用户组,比如cjf:cjf
    
    [root@master bin]#groupadd cjf
    [root@master bin]#useradd cjf -g cjf
    [root@master bin]#cd /usr/local/pureftpd/bin/
    [root@master bin]#./pure-pw useradd test -u cjf -g cjf -d /home/wwwroot/default/sisekeyword/ 
    Password: 
    Enter it again: 
    [root@localhost bin]#  ./pure-pw mkdb         # 每次修改信息,都需要提交到数据库
    
    useradd ftp虚拟用户名
    -u 系统用户名 -g 系统用户组
    -d 指定访问时根目录,比如部门的图片,上传后让别人下载,就单独新建一个目录去存照片,供别人登录下载。
    
    • 查看ftp所有用户
    [root@master bin]# cd /usr/local/pureftpd/bin/
    [root@master bin]# ./pure-pw list
    pureroot            /home/wwwroot/default/./                                   
    www                 /home/wwwroot/default/sisekeyword/./                       
    test                /home/wwwroot/default/sisekeyword/./    
    
    • 查看某个ftp用户详细信息(所属系统用户、根目录等)
    [root@master bin]# cd /usr/local/pureftpd/bin/
    [root@master bin]# ./pure-pw show test
    Login              : test
    Password           : $6$ix2OGnvUKOdIa9B0$ov3vi4FOd/nZGv4GBLfgZrKsP.895d4DApH6iK5/
    UID                : 1004 (cjf)
    GID                : 1004 (cjf)
    Directory          : /home/wwwroot/default/sisekeyword/./
    Full name          : 
    Download bandwidth : 0 Kb (unlimited)
    Upload   bandwidth : 0 Kb (unlimited)
    Max files          : 0 (unlimited)
    Max size           : 0 Mb (unlimited)
    Ratio              : 0:0 (unlimited:unlimited)
    Allowed local  IPs : 
    Denied  local  IPs : 
    Allowed client IPs : 
    Denied  client IPs : 
    Time restrictions  : 0000-0000 (unlimited)
    Max sim sessions   : 0 (unlimited)
    
    • 删除用户
    [root@master bin]# cd /usr/local/pureftpd/bin/
    [root@master bin]# ./pure-pw userdel  test
    
    • 修改密码
    [root@master bin]# cd /usr/local/pureftpd/bin/
    [root@localhost bin]#  ./pure-pw passwd www   # 修改密码
    [root@localhost bin]#  ./pure-pw mkdb         # 生成数据库文件 
    [root@master bin]#  ./pure-pw show www        # 查看用户信息
    Login              : www
    Password           : $6$p2HtYcB/uT/BUBk0$oFfJAfscRt4BnUGRyXPe45YGwj7uTjovtNDAPp8uOhM2XFq51
    UID                : 1000 (www)
    GID                : 1000 (www)
    Directory          : /home/wwwroot/default/sisekeyword/./
    
    • 修改用户test的上传路径
    [root@master bin]# cd /usr/local/pureftpd/bin/
    [root@localhost bin]# ./pure-pw usermod test -d /var/www/web
    [root@localhost bin]# ./pure-pw mkdb  #生成数据库文件,每次修改pw都要重新执行pure-pw mkdb
    [root@localhost bin]# ./pure-pw show test
    

    FileZilla Client 访问 ftp

    • 1、直接使用主动模式去连接pureftp就可以了
    1590944288865

    [图片上传失败...(image-1b8a6d-1591118581109)]

    • 2、我一开始使用被动模式连接ftp,导致失败:
    响应: 227 Entering Passive Mode (191,168,1,102,9,128).
    状态: 服务器发回了不可路由的地址。使用服务器地址代替。
    

    解决方法:更改Filezilla设置,编辑-设置-连接-FTP-被动模式,将“使用服务器的外部ip地址来代替”改为“回到主动模式”即可。 ----------就是尝试==被动模式==不行的话,就用==主动模式==去连接。

    阿里云命令面板访问自己服务器下的ftp

    • 1、局部网ip访问 --- 不需要设置,最方便
    ftp 局部网内部ip
    
    • 2、公网ip访问 ---- 需要设置 (麻烦且不安全)
    1、开启ForcePassiveIP
    vim /usr/local/pureftpd/etc/pure-ftpd.conf
    # ForcePassiveIP       111.74.18.123 打开此行注释,并将ip设置成你自己服务器的公网ip
    
    2、阿里云的安全组规则要开启 20000-30000端口
    20000 - 30000 这个端口范围可在 /usr/local/pureftpd/etc/pure-ftpd.conf 自定义
    
    # Port range for passive connections - keep it as broad as possible.
    PassivePortRange             20000 30000
    
    1590943243319

    以前总使用ftp 公网ip,登录后操作总是提示227,按网上教程说,把 ftp> passive 关闭被动模式,但还是无法正常使用,这是因为在ftp 公网ip 会因为==ForcePassiveIP没开启==,==安全组端口没设置==而出现被动模式阻塞。相比ftp 局部网内部ip这种方式,更麻烦,且服务器开放了更多的端口,更加不安全。不建议这种操作。

    如果你不想了解什么是主动模式、什么是被动模式的话,就记住:

    如果需要连接 FTP服务器 ,直接使用 局域网ip地址直连
    如果需要测试 FTP服务器 ,访问电脑应当避免同一局域网环境下连接
    

    关闭passive(不用操作,只是补充知识点)

    ftp> passive
    Passive mode off.
    ftp> passive (再次运行命令可打开)
    Passive mode on.
    

    主动模式和被动模式:

    【内网穿透笔记】FTP映射出现227 Entering Passive Mode错误命令原因及解决方法

    Apache

    安装lnmpa后,可以在/usr/local/apache/conf/httpd.conf中看到,apache的根目录Directory也被设置到了 /home/wwwroot/deafualt,而非${apche_home}/htdocs。

    在lnmpa的架构中,默认情况下,apache被用来提供访问php的服务器。

    # /usr/local/nginx/conf/nginx.conf 里有这么一句代码
    include proxy-pass-php.conf文件
    
    # 我们可以查看proxy-pass-php.conf文件
    location /
            {
                try_files $uri @apache;
            }
    
            location @apache
            {
                internal;
                proxy_pass http://127.0.0.1:88;
                include proxy.conf;
            }
    
            location ~ [^/]\.php(/|$)
            {
                proxy_pass http://127.0.0.1:88;
                include proxy.conf;
            }
            
    所以访问 http://ip/xx.php会被转发到http://127.0.0.1:88,然后apache再到/home/wwwroot/deafualt找到相应的文件,通过php服务器解析php文件,最后返回给apache,apache再返回给nginx。       
    

    安装tomcat

    安装jdk和tomcat

    # 1、先安装jdk,
    tar -zxvf jdk-8u231-linux-x64.tar.gz
    # 2、配置环境变量
    vim /etc/profile
    export JAVA_HOME=/usr/local/jdk1.8.0_231/
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    export PATH=$PATH:${JAVA_PATH}
    
    # 安装jdk后,再安装tomcat(我使用的是tomcat.tar.gz形式安装)
    tar -zxvf apache-tomcat-7.0.88.tar.gz
    

    nginx反向代理

    如果想让nginx反向代理,通过80端口就可以访问tomcat的项目的话,可以进行设置

    vim /usr/local/nginx/conf/nginx.conf

           location ~* /(sdzp|uploadfile|sisewechat)/
            {
               index  index.html index.htm index.jsp ;
               proxy_pass http://localhost:8080;
            } 
    

    manager添加用户

    vim tomcat-users.xml

     <tomcat-users>
        <role rolename="admin"/>
        <role rolename="admin-gui"/>
        <role rolename="admin-script"/>
        <role rolename="manager"/>
        <role rolename="manager-gui"/>
        <role rolename="manager-script"/>
        <role rolename="manager-jmx"/>
        <role rolename="manager-status"/>
        <user name="test" password="testxxxxx" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
    </tomcat-users>
    

    tomcat启动和关闭

    [root@master bin]# /usr/local/tomcat/bin/shutdown.sh 
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr/local/jdk1.8.0_231//jre
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    [root@master bin]# systemctl service tomcat
    Unknown operation 'service'.
    [root@master bin]# systemctl server tomcat
    Unknown operation 'server'.
    [root@master bin]# systemctl status tomcat
    Unit tomcat.service could not be found.
    [root@master bin]# ps -ef| grep tomcat
    root      6570  6459  0 20:31 pts/1    00:00:00 grep --color=auto tomcat
    [root@master bin]# 
    [root@master bin]# /usr/local/tomcat/bin/startup.sh 
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr/local/jdk1.8.0_231//jre
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Tomcat started.
    [root@master bin]# ps -ef| grep tomcat
    root      6579     1 76 20:32 pts/1    00:00:02 /usr/local/jdk1.8.0_231//jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
    root      6593  6459  0 20:32 pts/1    00:00:00 grep --color=auto tomcat
    [root@master bin]# 
    

    screen管理会话

    通过putty或者SecureCRT安装lnmp时,网络突然掉线或者不小心putty被关掉等等原因,造成lnmp安装过程被中断怎么办,其实防止这种现象很简单,只要在安装lnmp前执行screen命令就可以了。

    详细介绍:https://www.ibm.com/developerworks/cn/linux/l-cn-screen/

    screen操作演示

    1、执行:screen -S lnmp 创建screen会话。
    
    2、执行lnmp安装命令:wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp
    
    3、如果网络掉线,可以重新连接SSH,再执行 screen -r lnmp 就会看到你的lnmp安装进程。
    
    有时候screen异常退出可能会提示状态为Attached,可以执行:screen -D -r lnmp 进行恢复。
    
    有时候可能会创建了多个同名的screen会话,可以执行:screen -ls 查看对应会话的session id,然后使用screen -D -r sessionid 进行恢复。
    

    PHP内存分配器

    php Allocator Jemalloc TCMalloc那个内存分配器比较好?
    
    php一键安装脚本可以选择是否安装内存优化
    
    You have 3 options for your Memory Allocator install.
    1: Don't install Memory Allocator. (Default)
    2: Install Jemalloc
    3: Install TCMalloc
    
    ----------------------------------------
    
    [ptmalloc](http://www.malloc.de/en/) 是glibc的内存分配管理
    [tcmalloc](http://baike.baidu.com/view/2284456.htm) 是google的内存分配管理模块
    [jemalloc](http://www.canonware.com/jemalloc/) 是BSD的提供的内存分配管理
    
    jemalloc和tcmalloc的性能不分伯仲,而ptmalloc则要低一些。
    lnmp中的内存管理库TCMalloc和Jemalloc比较
    lnmp一键安装包安装系统的时候一般用Jemalloc
    

    查看进程占用的端口

    方法1:使用 ss 命令
    [root@elk3 ~]# ss -tlnp | grep sshd
    
    方法2:使用 netstat 命令
    [root@elk3 ~]# netstat -tnlp | grep ssh
    
    方法3:也可以使用端口号来检查。
    [root@elk3 ~]# ps -ef | grep apache 
    [root@elk3 ~]# netstat -lntp | grep 860
    
    通过端口查看进程
    netstat -nap | grep 端口号
    

    方倍工作室

    微信公众平台消息接口开发在线调试系统

    相关文章

      网友评论

          本文标题:centos7安装 lnmp1.6

          本文链接:https://www.haomeiwen.com/subject/gfwmzhtx.html