debian下lnmp一键安装脚本完善版

文章目录

debian下lnmp一键安装脚本我介绍了我之前写的采用dotdeb源在debian系统中安装lnmp环境的一键脚本。不过,为了让同学们使用的更加的方便,我完善了一下该脚本,让大家可以更加方便的添加虚拟机。

适用系统

本脚本适用于debian7及debian8系统。

下载脚本

首先下载脚本,利用putty等工具通过SSH登录vps,执行以下命令:

1
wget --no-check-certificate https://raw.githubusercontent.com/tennfy/debian_lnmp_tennfy/master/debian_lnmp_tennfy.sh

本脚本提供了安装lnmp环境、添加虚拟主机、卸载虚拟主机、卸载lnmp环境等命令,下面分别对这些命令进行介绍

安装lnmp环境

安装lnmp环境,执行以下命令

1
bash debian_lnmp_tennfy.sh install

在安装的过程中会要求你配置以下内容

1)选择php的版本,php5.4、php5.5、php5.6分别对应数字1、2、3

2)选择是否安装ZendOpcache,输入y或者n

3)选择是否安装Memcached,输入y或者n

4)输入Mysql密码,请务必记住该密码,在后面的使用中会用到。

添加虚拟主机

执行以下命令:

1
bash debian_lnmp_tennfy.sh addvhost

执行后,会出现三个选项,分别是添加虚拟主机、SSL虚拟主机以、google反向代理及文件目录,请根据提示输入相应的数字进行选择。

选择1,即为添加虚拟主机

添加虚拟机过程中,需要输入两个参数:
1)hostname,你的要添加的网站域名(如tennfy.com,注意是域名,不是单个的名字如tennfy
2)rewriterule,要添加的伪静态规则,现在支持wordpress及discuz

如下所示

1
2
3
4
please input hostname(like tennfy.com):
tennfy.com                     
please input url rewrite rule name(wordpress or discuz):
wordpress

选择2,添加SSL虚拟主机

添加SSL虚拟主机过程中,需要输入四个参数:
1)hostname,你的要添加的网站域名(如tennfy.com,注意是域名,不是单个的名字如tennfy
2)rewriterule,要添加的伪静态规则,现在支持wordpress及discuz
4)certificate,SSL证书的路径地址
4)privatekey,SSL证书密钥的路径地址

如下所示

1
2
3
4
5
6
7
8
please input hostname(like tennfy.com):
tennfy.com                     
please input url rewrite rule name(wordpress or discuz):
wordpress
please input ssl certificate file path:
/root/tennfy.com.crt
please input ssl privatekey file path:
/root/tennfy.com.key

选择3,即为添加google反向代理

添加google反向代理过程中,需要输入三个参数:
1)hostname,你的要添加的网站域名(如tennfy.com,注意是域名,不是单个的名字如tennfy
2)certificate,SSL证书的路径地址
3)privatekey,SSL证书密钥的路径地址

如下所示

1
2
3
4
5
6
please input hostname(like tennfy.com):
tennfy.com                     
please input ssl certificate file path:
/root/tennfy.com.crt
please input ssl privatekey file path:
/root/tennfy.com.key

选择4,即为添加文件目录

添加文件目录过程中,需要输入一个参数:
1)hostname,你的要添加的网站域名(如tennfy.com,注意是域名,不是单个的名字如tennfy

如下所示

1
2
please input hostname(like tennfy.com):
tennfy.com

卸载虚拟主机

执行以下命令:

1
bash debian_lnmp_tennfy.sh delvhost

执行完该命令后,会要求你输入虚拟主机的hostname,如下所示

1
2
please input hostname(like tennfy.com):
tennfy.com

然后回车即可。

卸载lnmp环境

执行以下命令:

1
bash debian_lnmp_tennfy.sh uninstall

回车即可。

配置文件目录

1
2
3
4
5
6
网站目录:      /var/www/hostname
nginx目录:    /etc/nginx
nginx配置文件: /etc/nginx/conf.d/hostname.conf
mysql目录:    /etc/mysql  
php目录:      /etc/php5
php.ini:      /etc/php5/fpm/php.ini或/etc/php/php.ini

操作命令

1
2
3
重启mysql: /etc/init.d/mysql restart
重启php:  /etc/init.d/php5-fpm restart
重启nginx: /etc/init.d/nginx restart

注意事项

1、phpmyadmin的使用

phpmyadmin在 /var/www 目录下,在使用时请将其移动至你的web目录进行访问,命令如下

1
2
cd /var/www
mv  phpMyAdmin ./hostname

其中hostname为你在第二步建立的web目录(如tennfy.com)

然后请访问 hostname/phpMyAdmin/index.php 进行访问(如tennfy.com/phpMyAdmin/index.php)。

更新历史

更新日期:2014-7-21,无需手动修改即可建立虚拟机目录
更新日期:2014-10-30,修复了cat出现的变量替换问题,增加了502错误的修复命令,该命令主要用于sock通讯错误导致的502错误。
更新日期:2015-3-1,大幅度更新脚本,并托管在github上。
更新日期:2015-3-29,将mysql版本由5.6改为5.5,避免在debian7上无法启动问题。
更新日期:2015-12-21,修改脚本结构,编译安装nignx,只适用于debian7。
更新日期:2015-12-31,大幅修改,版本更新至1.3。
更新日期:2016-5-17,更新mysql版本至5.5.49。
更新日期:2017-7-15,更新mysql5.5版本至5.5.56、php5.5至5.5.38、php5.6至5.6.31;添加“文件目录”虚拟主机模式。



本文出自 TENNFY WU,转载时请注明出处及相应链接。

本文永久链接: http://www.tennfy.com/2123.html

下一篇文章:

上一篇文章:

75人参与了讨论

  1. 屠龙 说:

    有了这个脚本确实方便多了。

  2. 不知道叫什么 说:

    小白求问一下,安完这个脚本,接着需要干嘛呢?我有搬瓦工的小VPS,一个cn域名,建站的话,网上教程完全不管用

  3. Andrew 说:

    看着不错啊,自己在用吗?

  4. 呜呜 说:

    用了这个后,以前配的shaodowsocks不好使了。。。
    重弄了几次也还是不行。。
    小白球解决办法。。

    ss用的这个http://www.tennfy.com/2136.html
    搬瓦工的vps,重装了几次系统还是不行。。

  5. 呜呜 说:

    不好意思
    已经好了。
    只能说,碰巧了。。

  6. 屠夫9441 说:

    请问这个安好后带FTP了吗?或者说怎么安FTP,想请教一下。我的lnmp和shadowsocks都是用你的脚本安好的,其它地方的都不行,非常感谢!

  7. simonsmh 说:

    你好!我在搬瓦工debian7 x86_64 上运行了这个脚本,最后的结果显示mysql无法正常运行,请问这是为什么?谢谢!

  8. amdme 说:

    博主,请教个事,你的代码是怎么实现的呢?什么插件?

  9. saint 说:

    搬瓦工debian 7 phpmyadmin数据库连接错误,重装debian 6貌似成功了

  10. Yesorno 说:

    博主你好 之前在搬瓦工上装了Centos 6 x86_64 用来部署SS
    现在用你这个脚本安装lnmp的时候 到了选择1、2、3的时候
    总是提示
    /bin/bash: 1: command not found
    Exit code: 127
    请问是哪儿没对 应该如何解决呢

  11. zgx 说:

    你好用了你的一键脚本mysql提示错误如下:
    Stopping MySQL database server: mysqld.
    Starting MySQL database server: mysqldNo directory, logging in with HOME=/
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ./etc/init.d/mysql: line 86: logger: command not found
    failed!
    我的系统debian7 mini 我以前用过debian6 mini 用的是别人的脚本64m内存不卡很方便,但是他的不支持debian7.. 求大神能不能修改呢。如下http://www.laozuo.org/2032.html

  12. saint 说:

    搬瓦工128M,装了SS,再装你的LNMP和TYPECHO用了50M左右内存,装WP的话好像要耗费80M以上.

  13. gf0818 说:

    执行到最后启动mysql的时候报错,然后phpmyadmin输入用户名密码无法进入
    [....] Starting MySQL database server: mysqldNo directory, logging in with HOME= /
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ./etc/init.d/mysql: l ine 86: logger: command not found
    failed!

  14. freebsd 说:

    debian7使用lnmp一键安装脚本完善版安装时确实出现了上面两个网友反映的错误结果(debian6安装很成功没有出现问题),我安装到最后的错误提示:
    ———–
    restart lnmp!
    ———–
    kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l [sigspec]
    [ ok ] Restarting nginx: nginx.
    [ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
    [ ok ] Stopping MySQL database server: mysqld.
    [....] Starting MySQL database server: mysqldNo directory, logging in with HOME=/
    [FAIL. . . . . . . . . . . . . . . . . . . . . . . . . . . . failed!
    -----------
    install successfully!

    日志记录:
    root@node:~# tail -20 /var/log/syslog
    Mar 15 13:51:30 node /etc/mysql/debian-start[7180]: ERROR 2006 (HY000) at line 1919: MySQL server has gone away
    Mar 15 13:51:30 node /etc/mysql/debian-start[7180]: ERROR 2006 (HY000) at line 1920: MySQL server has gone away
    Mar 15 13:51:30 node /etc/mysql/debian-start[7180]: ERROR 2006 (HY000) at line 1922: MySQL server has gone away
    Mar 15 13:51:30 node /etc/mysql/debian-start[7180]: ERROR 2006 (HY000) at line 1935: MySQL server has gone away
    Mar 15 13:51:30 node /etc/mysql/debian-start[7180]: ERROR 2006 (HY000) at line 1936: MySQL server has gone away
    Mar 15 13:51:30 node /etc/mysql/debian-start[7180]: ERROR 2006 (HY000) at line 1937: MySQL server has gone away
    Mar 15 13:51:30 node /etc/mysql/debian-start[7180]: ERROR 2006 (HY000) at line 1938: MySQL server has gone away
    Mar 15 13:51:30 node /etc/mysql/debian-start[7180]: ERROR 2006 (HY000) at line 1939: MySQL server has gone away
    Mar 15 13:51:30 node /etc/mysql/debian-start[7180]: FATAL ERROR: Upgrade failed
    Mar 15 13:51:30 node /etc/mysql/debian-start[7249]: Checking for insecure root accounts.
    Mar 15 13:52:04 node /etc/init.d/mysql[8166]: 0 processes alive and ‘/usr/bin/mysqladmin –defaults-file=/etc/mysql/debian.cnf ping’ resulted in
    Mar 15 13:52:04 node /etc/init.d/mysql[8166]: #007/usr/bin/mysqladmin: connect to server at ‘localhost’ failed
    Mar 15 13:52:04 node /etc/init.d/mysql[8166]: error: ‘Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)’
    Mar 15 13:52:04 node /etc/init.d/mysql[8166]: Check that mysqld is running and that the socket: ‘/var/run/mysqld/mysqld.sock’ exists!
    Mar 15 13:52:04 node /etc/init.d/mysql[8166]:
    Mar 15 13:54:17 node /etc/init.d/mysql[12496]: 0 processes alive and ‘/usr/bin/mysqladmin –defaults-file=/etc/mysql/debian.cnf ping’ resulted in
    Mar 15 13:54:17 node /etc/init.d/mysql[12496]: #007/usr/bin/mysqladmin: connect to server at ‘localhost’ failed
    Mar 15 13:54:17 node /etc/init.d/mysql[12496]: error: ‘Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)’
    Mar 15 13:54:17 node /etc/init.d/mysql[12496]: Check that mysqld is running and that the socket: ‘/var/run/mysqld/mysqld.sock’ exists!
    Mar 15 13:54:17 node /etc/init.d/mysql[12496]:
    root@node:~#

    tennfy可以再次完善一下该脚本使其可以在debian6上使用的同时也可以在debian7上安装使用,谢谢!

  15. saint 说:

    发现这个脚本无法安装ssl,如何加入这些功能呢?

  16. bigf 说:

    OK,我的debian 7 32位也遇到了上面这种,期待博主修复 :wink:
    [ ok ] Stopping MySQL database server: mysqld.
    [....] Starting MySQL database server: mysqldNo directory, logging in with HOME=/
    [FAIL. . . . . . . . . . . . . . . . . . . . . . . . . . . . failed!

  17. 呆三 说:

    发现 nginx 都没装成功呀。 我是debian7 :sad:

  18. LIANG 说:

    addvhost后输入wordpress提示以下错误:

    rm: cannot remove `/etc/nginx/conf.d/domain.conf’: No such file or directory

    如何解决?安装wordpress后显示空白页

  19. XY 说:

    请问:
    在执行bash debian_lnmp_tennfy.sh init后,显示
    ERROR:Distribution is not supported
    这是什么情况?该怎么解决?
    谢谢博主!

  20. XY 说:

    博主你好,能否抽空写一个lnmp下https设置的教程,在网上找了很多资料,一直不能很好的解决问题。。

  21. whyou 说:

    restart lnmp!
    ———–
    kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l [sigspec]
    [FAIL] Restarting nginx: nginx failed!
    [ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
    [ ok ] Stopping MySQL database server: mysqld.
    [ ok ] Starting MySQL database server: mysqld.
    [info] Checking for tables which need an upgrade, are corrupt or were
    not closed cleanly..
    ———–
    install successfully!
    我在搬瓦工debian7x64下安装,提示nginx启动失败 :sad:

  22. whyou 说:

    restart lnmp!
    ———–
    kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l [sigspec]
    [FAIL] Restarting nginx: nginx failed!
    [ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
    [ ok ] Stopping MySQL database server: mysqld.
    [....] Starting MySQL database server: mysqld . . . . . . . . . . . . . ./etc/init.d/mysql: line 86: logger: command not found
    failed!
    ———–
    install successfully!

    • tennfy 说:

      缺少logger命令,执行以下操作就可以了
      apt-get –reinstall install bsdutils

      • whyou 说:

        ———–
        restart lnmp!
        ———–
        kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l [sigspec]
        [FAIL] Restarting nginx: nginx failed!
        [ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
        [ ok ] Stopping MySQL database server: mysqld.
        [ ok ] Starting MySQL database server: mysqld.
        [info] Checking for tables which need an upgrade, are corrupt or were
        not closed cleanly..
        ———–
        install successfully!
        非常感谢,但是现在提示的是nginx失败,好忧桑。求帮助

  23. Itoon 说:

    用这个安装完成后如何把PHP版本升级到5.4?

  24. whyou 说:

    # nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    看不出什么问题 :!:

  25. whyou 说:

    执行这个命令bash debian_lnmp_tennfy.sh repaire,提示nginx启动失败FAIL] Restarting nginx: nginx failed!
    [ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
    ———–
    repaire successfully!

  26. whyou 说:

    ~# /etc/init.d/mysql restart
    [ ok ] Stopping MySQL database server: mysqld.
    [ ok ] Starting MySQL database server: mysqld.
    [info] Checking for tables which need an upgrade, are corrupt or were
    not closed cleanly..
    # /etc/init.d/php5-fpm restart
    [ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
    ~# /etc/init.d/nginx restart
    [FAIL] Restarting nginx: nginx failed!

  27. whyou 说:

    # tail -20 /var/log/syslog
    Dec 3 10:30:55 youtwi ocserv[2617]: GnuTLS error (at worker-vpn.c:465): A TLS fatal alert has been received.: Unknown certificate
    Dec 3 10:30:55 youtwi ocserv[2320]: main: 117.136.27.40:47920 user disconnected (rx: 0, tx: 0)
    Dec 3 10:31:02 youtwi ocserv[2618]: worker: client certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown.
    Dec 3 10:31:02 youtwi ocserv[2618]: GnuTLS error (at worker-vpn.c:465): Error in the certificate.
    Dec 3 10:31:02 youtwi ocserv[2320]: main: 117.136.27.40:56126 user disconnected (rx: 0, tx: 0)
    Dec 3 10:31:05 youtwi ocserv[2619]: worker: client certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown.
    Dec 3 10:31:05 youtwi ocserv[2619]: GnuTLS error (at worker-vpn.c:465): Error in the certificate.
    Dec 3 10:31:05 youtwi ocserv[2320]: main: 117.136.27.40:56801 user disconnected (rx: 0, tx: 0)
    Dec 3 10:31:07 youtwi ocserv[2620]: worker: tlslib.c:379: no certificate was found
    Dec 3 10:31:08 youtwi ocserv[2620]: worker: 117.136.27.40 no certificate provided for authentication
    Dec 3 10:31:08 youtwi ocserv[2320]: main: 117.136.27.40:57554 user disconnected (rx: 0, tx: 0)
    Dec 3 10:42:38 youtwi ocserv[2320]: main: refreshed cookie key
    Dec 3 14:43:28 youtwi ocserv[2320]: main: refreshed cookie key
    Dec 3 16:21:00 youtwi /etc/mysql/debian-start[3406]: Upgrading MySQL tables if necessary.
    Dec 3 16:21:00 youtwi /etc/mysql/debian-start[3410]: /usr/bin/mysql_upgrade: the ‘–basedir’ option is always ignored
    Dec 3 16:21:00 youtwi /etc/mysql/debian-start[3410]: Looking for ‘mysql’ as: /usr/bin/mysql
    Dec 3 16:21:00 youtwi /etc/mysql/debian-start[3410]: Looking for ‘mysqlcheck’ as: /usr/bin/mysqlcheck
    Dec 3 16:21:00 youtwi /etc/mysql/debian-start[3410]: This installation of MySQL is already upgraded to 5.5.46, use –force if you still need to run mysql_upgrade
    Dec 3 16:21:00 youtwi /etc/mysql/debian-start[3424]: Checking for insecure root accounts.
    Dec 3 16:21:00 youtwi /etc/mysql/debian-start[3429]: Triggering myisam-recover for all MyISAM tables

  28. ELIA 说:

    ———–
    restart lnmp!
    ———–
    kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l [sigspec]
    debian_lnmp_tennfy.sh: line 219: /etc/init.d/nginx: No such file or directory
    [ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
    [FAIL] Stopping MySQL database server: mysqld failed!
    [ ok ] Starting MySQL database server: mysqld already running.
    ———–
    install successfully!
    ———–

    楼主,我安装最后的结果,请指点!

  29. ELIA 说:

    中间mysql设置密码的时候:提示了这个
    An error occurred while setting the password for the MySQL administrative us

    现在stop mysql的时候就报错:[FAIL] Stopping MySQL database server: mysqld failed!

    上面好像nginx也没有安装成功。

  30. leejon 说:

    怎么卸载呢?
    Usage: debian_lnmp_tennfy.sh {init|install|addvhost|repaire}

  31. leejon 说:

    这个可以配置SSL吗?

    • tennfy 说:

      需要你生成好SSL的证书以及KEY,然后使用addsslvhost命令添加SSL虚拟主机的时候,填入SSL证书和KEY的地址就可以了

      • leejon 说:

        有些主机CDN不支持https,导致不能正常访问
        另外问一下,这个脚本怎么卸载呢?我有个主机是没有选择重装系统的,可能需要发tk,所以先来问问站长这个脚本怎么卸载,谢谢

  32. ly 说:

    为什么我添加vhost时出现Arguments error

  33. whyou 说:

    /etc/init.d/mysql restart,,,返回这个-bash: /etc/init.d/mysql: No such file or directory
    :sad:

  34. CYF 说:

    能不能弄个升级PHP、mysql之类的脚本,网上那些升级脚本都是编译的版本………我的是apt安装,跟编译的目录不一样所以用不了,找了很久就你这个的安装目录跟apt安装的目录一样………

  35. CYF 说:

    php install这部里面的网站貌似挂了,望修复!!

  36. volute 说:

    非常喜欢这个博客,小白学生有几个问题想请教博主,可以留下你的即使联系方式吗,感谢。
    我的QQ 984787598

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

9 + 7 = ?


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

返回顶部