预写更好用的lnmp - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
yesono
V2EX    Linux

预写更好用的lnmp

  •  
  •   yesono 2013-11-01 15:47:32 +08:00 14529 次点击
    这是一个创建于 4372 天前的主题,其中的信息可能已经有所发展或是发生改变。
    lnmp.org源码包很旧,于是我自己写了个LNMP(非直接改改,大多都是自己一行行写的),特性:
    持续不断更新
    源码编译安装,大多数源码是最新stable版,并从官方网址下载
    一些安全优化
    提供多个数据库版本(MySQL-5.6, MySQL-5.5, MariaDB-5.5, Percona-5.5,Percona-5.6)
    提供多个PHP版本(php-5.5, php-5.4, php-5.3)
    提供Nginx、Tengine
    根据自己需求安装ngx_pagespeed
    根据自己需求安装PHP缓存加速器,php-5.4和php-5.3提供ZendOPcache、eAccelerator、xcache和ZendGuardLoader(PHP源码加密)(PHP缓存防止冲突只安装一个,注意:php-5.5自带zendOpcache没有其他选择)
    根据自己需求安装Pureftpd、phpMyAdmin
    根据自己需求安装memcached、redis
    根据自己需求可使用tcmalloc或者jemalloc优化MySQL、Nginx
    提供添加虚拟主机脚本
    提供Nginx/Tengine、PHP升级脚本
    可单独只部署MySQL或Nginx、或PHP(单独跑php-fpm,不依赖apache和nginx)
    +++
    varnish 和apache 后面会加上。还有什么功能要添加的?如果LNMP安装包写成这样有人用吗?
    https://github.com/lj2007331/lnmp
    117 条回复    1970-01-01 08:00:00 +08:00
    1  2  
    saymoon
        1
    saymoon  
       2013-11-01 16:43:47 +08:00   1
    再加个带 Openresty 版的吧,我自己改过一个,不过比较乱没整理不适合发布。
    breestealth
        2
    breestealth  
       2013-11-01 17:02:29 +08:00
    希望可以有升级MySQL的脚本,其余的PHP或者nginx之类倒是简单,升级MySQL版本的脚本弄起来有些麻烦,希望可以有这种脚本提供。
    yesono
        3
    yesono  
    OP
       2013-11-01 17:07:20 +08:00   1
    yesono
        4
    yesono  
    OP
       2013-11-01 17:08:01 +08:00
    @breestealth MySQL稍微麻烦一点,如果升级MySQL可能PHP也要重新编译 ,后面加上
    blogphp230com
        5
    blogphp230com  
       2013-11-01 17:09:52 +08:00   1
    支持,V5
    lhx2008
        6
    lhx2008  
       2013-11-01 17:24:12 +08:00
    Xcache不是和memcc冲突么
    yesono
        7
    yesono  
    OP
       2013-11-01 17:30:01 +08:00
    @lhx2008 不冲突,xcache是 PHP opcode缓存; memcache这主要用来缓解数据库压力
    shiny
        8
    shiny  
       2013-11-01 17:34:47 +08:00   1
    @lhx2008 Xcache 是和 op code cache 类的扩展冲突,比如 apc、eAccelerator。
    不过随着 Zend Optimizer+ 的开源,opcache 类的扩展很有可能结束一桶浆糊的局面,一统江湖。
    AstroProfundis
        9
    AstroProfundis  
       2013-11-01 17:37:13 +08:00
    说实话不太喜欢编译安装,尤其是在低配机器上可能会内存不足...
    yesono
        10
    yesono  
    OP
       2013-11-01 17:43:28 +08:00
    @AstroProfundis 生产环境一般源码包编译比较多,可以定制,而rpm安装可能把你不需要的都安装了,源码方式甚至可以调gcc参数(CFLAGS和CXXFLAGS)使编译出的程序执行效率有较大提升
    msg7086
        11
    msg7086  
       2013-11-01 17:44:09 +08:00
    <_< 从源码编译安装的目的在于?
    Admstor
        12
    Admstor  
       2013-11-01 17:44:18 08:00   1
    我建议和lnmp.org合作更新吧...
    yesono
        13
    yesono  
    OP
       2013-11-01 17:44:54 +08:00   1
    @shiny 是啊 php-5.5 只用opcache ,命中数很高
    AstroProfundis
        14
    AstroProfundis  
       2013-11-01 17:46:19 +08:00
    @yesono 如果不是有特别的需求(比如定制某些功能或者模块),发行版的打包者其实已经把参数调到一个(对大多数情况)比较理想的状态了,何必非要自己跑一遍编译...
    imzoke
        15
    imzoke  
       2013-11-01 17:47:08 +08:00
    这个很好,支持。
    yesono
        16
    yesono  
    OP
       2013-11-01 17:50:27 +08:00
    @AstroProfundis 能把机器更好的性能发挥出来,编译一遍很简单,所有才写脚本嘛
    kimcool
        17
    kimcool  
       2013-11-01 17:52:59 +08:00   1
    支持,现在linode上面跑着老的lnmp,特别不开心
    wxstorm
        18
    wxstorm  
       2013-11-01 17:55:31 +08:00   1
    刚装lnmp~
    xiaosong
        19
    xiaosong  
       2013-11-01 19:18:19 +08:00
    大力支持!加上可选的apache那就更强大了!
    1dian01
        20
    1dian01  
       2013-11-01 19:20:02 +08:00   1
    lnmp如果写个简单的面板出来就更加赞了。。
    qiuai
        21
    qiuai  
    PRO
       2013-11-01 19:24:35 +08:00
    来支持一下.
    moname
        22
    moname  
       2013-11-01 19:30:23 +08:00 via iPhone   1
    支持下
    fen
        23
    fen  
       2013-11-01 19:38:00 +08:00
    支持一下,自从有了这种一键安装包,我又犯懒了
    0racleTink
        24
    0racleTink  
       2013-11-01 19:44:16 +08:00 via Android
    我也想要一个web面板
    faceair
        25
    faceair  
       2013-11-01 19:49:33 +08:00
    大力支持 现在装的lnmp.org的包 感觉php版本低了啊
    iZr
        26
    iZr  
       2013-11-01 19:51:37 +08:00
    楼主写 nginx 插件么?
    loading
        27
    loading  
       2013-11-01 20:13:22 +08:00 via iPhone   1
    我是来吐槽第一条的:持续更新

    感谢分享!
    046569
        28
    046569  
       2013-11-01 20:21:10 +08:00

    YMate发来贺电.
    inroading
        29
    inroading  
       2013-11-01 20:29:57 +08:00
    希望不要太臃肿,不要类似Kloxo,DA,CP这样的web面板,如果能出个lamp就更好了
    xiaop
        30
    xiaop  
       2013-11-01 20:36:17 +08:00
    我觉得实在没有必要,debian的包管理就够用了。
    上次用这个不小心把数据库全删了。。。幸好当时备份了一份。
    yesono
        31
    yesono  
    OP
       2013-11-01 20:49:47 +08:00
    @xiaosong 下一步加上
    yesono
        32
    yesono  
    OP
       2013-11-01 20:52:49 +08:00
    @inroading lamp lanmp lnmpv 下一步加上 , 从来不用web面板哦
    yesono
        33
    yesono  
    OP
       2013-11-01 20:56:58 +08:00
    @iZr 没写哦
    likuku
        34
    likuku  
       2013-11-01 20:58:27 +08:00   1
    @xiaop 以前用 gentoo 时,nginx 用 portage 安装,mysql用O记2进制通用包,php用源码装,几乎也是一个脚本一键安装,方便快捷更新管理都容易。

    现在换 debian,假若 没有合适的 apt 源,想从官方找包/源码 来装,折腾的要死,我是几天没搞定~

    现在安心用 dotdeb.org 的源。
    iZr
        35
    iZr  
       2013-11-01 21:01:04 +08:00
    @likuku apt-get?搞定一切么
    likai
        36
    likai  
       2013-11-01 21:01:22 +08:00
    @yesono
    p是php啊。要是python就爽多了。
    yesono
        37
    yesono  
    OP
       2013-11-01 21:07:46 +08:00
    @likai 还真有这种打算 就怕太臃肿了
    min
        38
    min  
       2013-11-01 21:14:17 +08:00
    pacman飘过 表示不懂为什么要这样做
    likuku
        39
    likuku  
       2013-11-01 22:38:02 +08:00
    @iZr 是啊,apt-get 搞不定的话,debian 下很难伺候...
    feuvan
        40
    feuvan  
       2013-11-01 22:42:20 +08:00
    @likuku dotdeb
    qiuai
        41
    qiuai  
    PRO
       2013-11-01 22:55:25 +08:00
    @046569 收费了啊...这回支持centos了么...
    yesono
        42
    yesono  
    OP
       2013-11-01 23:37:14 +08:00
    @046569
    046569
        43
    046569  
       2013-11-01 23:42:35 +08:00
    @qiuai
    仍然未支持,是不是很想抽我.
    ^_^
    qiuai
        44
    qiuai  
    PRO
       2013-11-01 23:45:00 +08:00
    @046569 =.=我也很无奈了...我这能开的机器和已经开的机器,全是centos.......
    046569
        45
    046569  
       2013-11-01 23:57:53 +08:00
    @qiuai
    年后合适的时机会支持,到时候人多开发会快很多.
    coosir
        46
    coosir  
       2013-11-02 00:07:56 +08:00
    支持啊,N-M-P能随时升级很重要~
    princeofwales
        47
    princeofwales  
       2013-11-02 00:09:59 +08:00
    debian 7,安装的开始阶段,图形界面手工配置LDAP太不友好了
    yesono
        48
    yesono  
    OP
       2013-11-02 00:28:31 +08:00
    @princeofwales 这个一直没找到好的解决方法 这个东西又必须安装 后面有依赖 求解
    yesono
        49
    yesono  
    OP
       2013-11-02 00:29:15 +08:00
    @coosir 差数据库 后面加上
    vibbow
        50
    vibbow  
       2013-11-02 01:06:39 +08:00
    居然没有 mysql-client !!!!!!!!!!!!!!!!!
    coolicer
        51
    coolicer  
       2013-11-02 08:59:24 +08:00   1
    不错,我也是lnmp
    yesono
        52
    yesono  
    OP
       2013-11-02 09:52:44 +08:00   1
    @vibbow
    princeofwales
        53
    princeofwales  
       2013-11-02 09:54:02 +08:00 via Android   1
    还是debian 7,第一次装MySQL选5.6,安装中途直接中断,提示MySQL安装失败;第二次选完整包,MySQL选5.5,半个小时后还是提升MySQL失败,但我用phpmyadmin可以连接MySQL,实际上是可用的。军哥的lnmp用了3年,感觉还不错。第一次试用你们的,功能很多,但感觉不稳定
    liliang13
        54
    liliang13  
       2013-11-02 10:41:01 +08:00   1
    阿里云的机器测试安装完后首页可以打开,其他页面是502,然后就没有然后了。
    yesono
        55
    yesono  
    OP
       2013-11-02 10:46:00 +08:00
    @princeofwales 刚刚我用do 测试了下debian 7 ,模拟这个 没问题哦 ,能发份log给我不,谢谢! ps:lj2007331#gmail.com
    yesono
        56
    yesono  
    OP
       2013-11-02 10:46:35 +08:00
    @liliang13 能发份log给我吗? lj2007331 # gmail.com
    liliang13
        57
    liliang13  
       2013-11-02 10:51:40 +08:00
    @yesono 抱歉啊,我直接重装系统了。这样,我换回去,重新用你的脚本跑一边,看能不能重现。能的话给你 log ,不能就真抱歉了。 = =
    yesono
        58
    yesono  
    OP
       2013-11-02 10:55:08 +08:00
    @liliang13 好的。其实不用重装系统了 ,再次执行即可。谢谢反馈!
    princeofwales
        59
    princeofwales  
       2013-11-02 10:58:55 +08:00
    @yesono log已经发给你了。第一次安装的log没有了,因为安装失败,我把vps reinstall了;第二次的log,我仔细看了下,好像最后的mysql server pid file not found没有影响,但最后的starting mysql的结果不会回显。军哥的lnmp 1.0最后也有一个starting的小问题,明明服务已经started了,但CLI一直停留不动
    liliang13
        60
    liliang13  
       2013-11-02 11:01:34 +08:00   1
    @yesono 之前的系统是阿里云的 Ubuntu 12.04 64 位安全加固版。这个安全加固版和普通的有区别。
    yesono
        61
    yesono  
    OP
       2013-11-02 11:09:59 +08:00
    @liliang13 mysql server pid file not found没有关系,首先安装MySQL后,为了节约系统资源(后面编译)关闭了MySQL,最后再启动MySQL: service mysqld restart (已经关闭MySQL,直接重启就有这个提示,正常的)
    yesono
        62
    yesono  
    OP
       2013-11-02 11:12:04 +08:00
    @liliang13 加固版应该是做了一些安全设置,没用测试用在加固版下 抱歉!
    princeofwales
        63
    princeofwales  
       2013-11-02 11:23:00 +08:00
    @yesono 我想的也是这样,不过,竟然mysql都已经关闭了,为什么最后不用service mysqld start,而用restart?还有,上面提到了,跟军哥的一样,最后一步,starting mysql....,很久了都停留在那里,给人的感觉是,mysql没有正常启动完,整个安装进程也没完。实际上ctrl+Z,查看mysql的状态是正常的
    princeofwales
        64
    princeofwales  
       2013-11-02 11:25:02 +08:00
    @yesono 还有,少了一个类似/root/lnmp的管理工具,有些不便
    yesono
        65
    yesono  
    OP
       2013-11-02 11:31:25 +08:00
    @princeofwales 这确实有点点问题,直接start就ok,已改;starting mysql.... 后面应该[ok],这个是MySQL自动启动脚本问题???
    yesono
        66
    yesono  
    OP
       2013-11-02 11:33:37 +08:00
    @princeofwales 所有服务都可以通过service启动关闭等管理,如 service nginx restart, service mysqld restart, service php-fpm restart , service redis-server restart ,service memcached restart等等,其他管理工具没必要了吧???
    yylzcom
        67
    yylzcom  
       2013-11-02 11:52:11 +08:00
    debian的推荐用actgod的脚本啊,不过是lamnp的
    imzoke
        68
    imzoke  
       2013-11-02 12:51:55 +08:00   1
    @yesono 第一时间就试用了你的作品,很全面,以前一直用军哥的,也经常吐槽更新较慢。不过稳定性很重要,希望越做越好。
    一个统一的管理脚本很方便,一个操作即可完成所有的启动或停止等。不过也很简单,照着军哥的也可以写一个。
    qiufeng
        69
    qiufeng  
       2013-11-02 13:39:07 +08:00
    貌似很不错啊!!
    yesono
        70
    yesono  
    OP
       2013-11-02 15:12:18 +08:00
    @imzoke 脚本可以单独只安装MySQL或者Nginx或者甚至PHP,每个服务通过service管理,如:你只安装php,直接执行 service php-fpm restart 。加上组合的貌似不太好,个人想法
    princeofwales
        71
    princeofwales  
       2013-11-02 15:21:18 +08:00
    已经用上了,2个wordpress,效果观察中

    我比较看中的是ngx_pagespeed,手工编译加上这个东西得好几步,现在一次搞定。不过这个插件和wp super cache好像有点兼容性问题

    现在的Mysql默认都用inno了,小站点,不喜欢,转成myisam。如果安装mysql之前可以选择默认存储引擎就好了

    还有,升级nginx,pagespeed会自动加进去编译吗?看代码,可以继承nginx_configure_arguments,求证
    princeofwales
        72
    princeofwales  
       2013-11-02 15:33:22 +08:00
    @yesono ngx_pagespeed不好玩,刚才又发现一个跟wordpress插件的异常。求nginx下卸载此功能的简单办法
    yesono
        73
    yesono  
    OP
       2013-11-02 15:42:38 +08:00
    @princeofwales
    把nginx配置文件删掉 重新生成不用 ngx_pagespeed ,这东东有些问题 ,建议还是别安装
    wtcoder
        74
    wtcoder  
       2013-11-02 15:54:09 +08:00
    ngx_pagespeed 唯一蛋疼的就是缓存没法单独清理。

    这个包很给力! 感谢撸主!
    yesono
        75
    yesono  
    OP
       2013-11-02 15:56:00 +08:00
    @wtcoder 是啊 只能直接删 rm -r /var/ngx_pagespeed_cache/* ,慎用吧
    谢谢支持
    aveline
        76
    aveline  
       2013-11-02 16:32:58 +08:00
    以前生产环境都是每台机器编译,现在一台机器专门跑编译打包然后发布到自己的 apt 源,其他机器 直接装就是了。。。
    yesono
        77
    yesono  
    OP
       2013-11-02 16:37:31 +08:00
    @aveline 硬件相同 这样处理速度快多了
    princeofwales
        78
    princeofwales  
       2013-11-02 16:54:39 +08:00
    @yesono 懒得再编译nginx了,直接在vhost/*.conf里删除了跟pagespeed相关的代码,重载,然后删除ngx_pagespeed_cache里的内容。现在wp super cache正常了
    yesono
        79
    yesono  
    OP
       2013-11-02 17:09:46 +08:00
    @princeofwales ngx_pagespeed_cache和wp super cache是有冲突 ,不用wp super cache 貌似不会有问题
    wtcoder
        80
    wtcoder  
       2013-11-02 18:08:54 +08:00
    另外如果撸主 有空把软件下载点定期发布到 国内云存储 就更好了。

    比如七牛,阿里云什么的。。 国外的下载实在太慢。
    yesono
        81
    yesono  
    OP
       2013-11-02 18:10:20 +08:00   1
    @wtcoder 有个lnmp-full.tar.gz 包哦 都包含了
    vibbow
        82
    vibbow  
       2013-11-02 20:15:51 +08:00   1
    http://v2ex.com/t/87755

    求解释,为什么编译出来的性能这么差劲?
    yesono
        83
    yesono  
    OP
       2013-11-02 21:38:04 +08:00
    @vibbow 这个要根据自己的环境来调整参数,性能差别没那么大吧。感觉又在讨论用源码编译方式(./configure && make && make install) 还是直接用二进制(apt-get、yum)?
    看看这篇文章?:http://www.penglixun.com/tech/database/mysql_compile_reference.html
    vibbow
        84
    vibbow  
       2013-11-02 22:47:18 +08:00
    @yesono 问题是我和另外一个人的测试结果,都是直接2倍的性能差距...
    AstroProfundis
        85
    AstroProfundis  
       2013-11-02 22:59:02 +08:00
    @yesono 没...一直觉得安装方式完全就是个人习惯,怎么样顺手怎么样来就行了,也一直觉得两种方式在大多数情况下应该几乎没有区别...然后那个测试结果很不科学所以就不知道是怎么回事了_(:з∠)_
    hzqim
        86
    hzqim  
       2013-11-04 08:36:22 +08:00
    现如今是apt-get install 了。
    yesono
        87
    yesono  
    OP
       2013-11-04 09:20:29 +08:00
    @hzqim debian/ubuntu apt-get比较方便;CentOS/RHEL yum不是很方便
    coosir
        88
    coosir  
       2013-11-04 09:43:24 +08:00
    mysql还是编译失败了,Ubuntu 12.04 64位 后来用其他的了,没保留下日志
    yesono
        89
    yesono  
    OP
       2013-11-04 09:55:37 +08:00
    @coosir Email: lj2007331#gmail.com ,Thx
    ShunYea
        90
    ShunYea  
       2013-11-04 10:53:01 +08:00
    求支持MariaDB的,现在MySQL大势已去,支持MariaDB是必要的。
    yesono
        91
    yesono  
    OP
       2013-11-04 11:19:17 +08:00
    @ShunYea 哈哈 握手
    HLT
        92
    HLT  
       2013-11-04 13:09:18 +08:00
    ShunYea
        93
    ShunYea  
       2013-11-04 15:00:42 +08:00
    @yesono 有时间试试你的,我现在业务上全用的lnmp.org的那个包,感觉还比较稳定,就是少了MariaDB。看了很多回复,发现你的包有很多问题。加油啊,慢慢完善,做个完美的出来。
    yesono
        94
    yesono  
    OP
       2013-11-04 15:34:15 +08:00
    @ShunYea 由于版本众多、自由度较高(如:安装路径修改)、各种组合等脚本复杂度要高一些,问题还有一些,大问题应该没有吧。要依靠大家一起完善反馈 ^ _ ^
    vibbow
        95
    vibbow  
       2013-11-05 00:26:55 +08:00
    @yesono 那那个二倍的性能问题呢?
    yesono
        96
    yesono  
    OP
       2013-11-06 10:25:06 +08:00
    @vibbow 我后面仔细测试下,优化调整参数(现在的参数是高配置的),我线上用得挺好 。我也不知道你测试的性能数据是不是有问题,不过应该不至于差别这么大
    vibbow
        97
    vibbow  
       2013-11-06 18:12:46 +08:00
    @yesono 我测试也用的是正常的wordpress + 官方的测试数据啊。
    再说就算测试数据有问题,编译的和源里的差别也不应该差这么多啊。

    除非编译的时候有什么默认参数设置的不对。
    vibbow
        98
    vibbow  
       2013-11-06 18:14:03 +08:00
    @yesono 我建议你自己用同样的配置,测试一遍你的编译脚本和官方源的性能差别。
    你也可以按照我的测试方法来试试看。
    vibbow
        99
    vibbow  
       2013-11-06 18:15:07 +08:00   1
    @yesono 毕竟我是花了四五个小时测试,得出来的这个结论的。
    而不是随意大概测试十几分钟得出来的这个结论的。
    yesono
        100
    yesono  
    OP
       2013-11-06 22:05:01 +08:00
    @vibbow ok。最近在加apache,我再仔细测试下。
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3087 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 12:23 PVG 20:23 LAX 05:23 JFK 08:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86