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

预写更好用的lnmp

  •  
  •   yesono · 2013-11-01 15:47:32 +08:00 · 13765 次点击
    这是一个创建于 4033 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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  
       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
    支持一下,自从有了这种一键安装包,我又犯懒了
    sophy
        24
    sophy  
       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  
       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  
       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   ·   实用小工具   ·   1107 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 23:25 · PVG 07:25 · LAX 15:25 · JFK 18:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.