[总结向]昨天,我被老板开除了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
master13

[总结向]昨天,我被老板开除了

  •  
  •   master13 Nov 6, 2015 10264 views
    This topic created in 3827 days ago, the information mentioned may be changed or developed.

    故事的经过

    嗝……要不是刚才旁边要饭的给了我一块又黑又硬的面包,我现在还饿着肚子呢。

    这两天也一直有人问故事最后怎么发展了,我知道你们都是看热闹不嫌事大的,详情请戳这里

    这也是来自乡下的我第一次有 100+回复!

    在各位 V 大牛和 V 喷的帮助下,我也学到了一些东西,现在拿出来总结一下。

    问题

    在 CentOS离线安装LNMP
    - 其他 Linux 系统请自行脑补
    - 安装其他东西也请自信脑补

    老板的要求

    • 公司内部网络服务器,绝对不能与互联网直接连接
    • CentOS 6.4
    • x86
    • “那个系统是我亲手装的,上面有我的青春、理想和远方,你可别弄没了”

    解决方案

    在翻阅了互联网资料、咨询了各路大牛、被喷子喷了一整天之后,我把所有可能的方法列在下面,别分别给出这些使用这些方法在实际使用时候的限制,希望能帮到有需要的人。

    请注意:这些方案任选其一即可,它们是完全并列的,并不是依次执行的步骤!

    方案 1 :内网搭建 yum 服务器

    费事,但一劳永逸……好吧,一劳很长一段时间逸

    yum类似于Ubuntu里面的apt-get,在连接互联网的CentOS上,我们只需要yum install XXXX,它就自动的去预先配好的站点检索我们想要的东西,如果有就下载回来并进行安装。

    所以我们的思路是:我们自己搞一个这样的站点,然后把预先配好的站点地址改成本地网络能访问的内部地址,然后就像在连接互联网的机器上一些样,直接使用yum就好!

    这里有一篇详细的教程,如果你没时间看,我总结一下:

    1. 在内网准备一台能开 80 端口的服务器
    2. 去把别人站点上的所有 rpm 下载下来,几百个 G ,全考到准备好的那台
    3. 修改yum指定源的配置文件,把这台内网地址配进去
    4. 像平常一样使用yum,然后喝咖啡

    这种方法需要你自己搭建yum源,倒也是一劳很长时间逸的方法。

    方案 2 :下载everything.iso本地源

    更便捷,逸的情况没有上面多

    这个方案和上面的很类似,everything.iso听上去就有很多东西似的。 CentOS 官网现在提供这个玩意的下载,把他下载来烧录到 DVD 中,然后插入到待安装内网服务器里,就可以当本地源使用了。

    这个东西有很多版本,包含的东西量是不一样的,根据需要下载,一般来说最常用的都在最小的那个里面了。

    这种方法不用下载太多东西,比方案 1 更简单。

    请注意:官网提供 CentOS 7 的 everything ,并不能保证其中所有 rpm 与低版本的 CentOS 完美兼容

    方案 3 :下载源码编译安装

    中规中矩,累死人,但一定有效

    这是最最中规中矩的办法,也是最最麻烦的办法。说这种方法不好,肯定有人该不愿意了,这是可以理解的因为每一个称得上“牛”的人,都多多少少会有这样的经历。

    先依次登录它们的官网,找到 php 、 mysql 、 nginx 的源码,然后再去找他们的支持库,依次登录支持库的官网,下载支持库的源码,再去找这些支持库的支持库,依次登录支持库的支持库的官网,下载支持库的支持库的源码……如此下载完毕后,从后往前编译安装。

    这里有一篇《 Ubuntu 离线安装 Nginx 》,如果你没时间看,这是结论:

    1. 下载 openssl 源代码压缩包,解压编译并安装
    2. 下载 pcre 源代码压缩包,解压编译并安装
    3. 下载 zlib 源代码压缩包,解压编译并安装
    4. 下载 nginx 源代码压缩包,解压编译并安装,这里需要将刚才编译安装的支持库配置进来(下面的命令只是一部分,并不完整,完整请戳上面文章):

      --with-http_ssl_module --with-openssl=../openssl-1.0.1e --with-pcre=../pcre-4.4 --with-zlib=../zlib-1.1.3

    5. 最新版本的 nginx 还需要 GeoIP 的支持,而 GeoIP 需要 GeoIP-data 和 GeoIP-update 的支持,这里不再赘述安装方法。

      正如上面所说,我假设你有 gcc 或 g++,你可以熟练地用他们来编译

    方案 4 :yum-downloadonly

    讨巧的方案

    脑洞:我在能连互联网的机器上 yum 安装,把所有过程中的包刻录到内部网络机器,不就可以了?好主意!

    我们平时使用 yum 的时候,都是全自动安装的,甚至不用管它把 rpm 下到了哪里。事实上,我们需要用 yum 的一款插件来保留住这些包。

    1. 安装插件:yum install yum-downloadonly
    2. 下载包:yum -y install PACKAGE_NAME --downloadonly --downloaddir=.

    我们以 php 为例,在一台连接互联网的 CentOS6.4 上,用 yum-download 下载 php ,可以看到它还下载了另外 4 个文件,是 php 依赖库以及依赖库的依赖库,把他们全部拷到内网服务器上,按正确的顺序安装就好了。

    请注意:两台机器的 CentOS 版本必须完全相同。……很难想象你在 x64 的互联网机下载的安装包,如何运行在 x86 的公司内部服务器上。

    方案 5 : Docker 技术

    高端大气上档次

    你百度一下 Docker 就知道这是什么东西了。打一个不太恰当的比方这个就跟虚拟机差不多,然而他们叫容器

    百度百科: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app )。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

    我觉得这个跟 VMWare 的导出 ovf 功能很相似的,只不过是在实体机上构建镜像(image),然后在另外一台实体机的 Docker 上部署(deploy)。这项技术相关的文档不要太多,感兴趣的同学请自行学习。这里着重推荐一下 Docker 官网,有一个 Step-by-Step 手把手的教程,试试就会了。

    Docker 很有趣的地方在于,他有一个 Docker-hub ,很多人把自己打造的牛逼镜像放在上面了,你就跟逛免费超市一下随便取用,开不开心?!!

    请注意: Docker 官方仅提供对 x64 系统的支持,如果一定要在 x86 的机器上运行,需要自行下载源码进行编译。

    方案 2+4 :推荐的方案

    老师说了,结合的东西才是好东西

    上面说了,方案 2 是烧录 DVD 做本地源,方案 4 是 yum 下载所需要的 rpm 所以我们自然想到,先用 yum 下载需要的 rpm ,然后将这些东西烧入 DVD 。这样一来,内网机用这个 DVD 当源,虽然源中的 rpm 数量很少,但恰好是安装所需要的全部 rpm 。

    这种方法较方案 2 的优势是不用下载和刻录太多东西,兴许一张 CD 就够了;较方案 4 的优势是可以在内网机直接使用 yum 命令,不需要手动关注 rpm 的安装顺序。

    这是最快最便捷的方法,但绝谈不上“一劳永逸”你每次要安装不同的东西,都要烧制不同的镜像光盘。

    你为什么看贴不回帖

    你这是逼 po 主想办法水经验,是犯罪!

    不说了,我去找个公园睡一觉。

    69 replies    2015-11-10 07:58:48 +08:00
    ByZHkc3
        1
    ByZHkc3  
       Nov 6, 2015
    占位~楼主现在到底怎样了?
    master13
        2
    master13  
    OP
       Nov 6, 2015
    已 PO 好,请各位 V 友点评……
    FrankFang128
        3
    FrankFang128  
       Nov 6, 2015 via Android
    楼主叫做 peter 吗?
    wy315700
        4
    wy315700  
       Nov 6, 2015
    只是想说,这个需求其实非常非常简单,

    曾经在学校维护一群断外网的机器的时候,就找了个跳板机,用 wget 把所有的 rpm 下下来,然后建 Http 服务,,,
    bugsnail
        5
    bugsnail  
       Nov 6, 2015
    @wy315700 干的漂亮,想当初为了上网,还手写路由......

    楼主,节哀~~
    master13
        6
    master13  
    OP
       Nov 6, 2015
    @FrankFang128 No! My name is Li Lei, what's your name?
    zivfun
        7
    zivfun  
       Nov 6, 2015
    楼主方案不错,以后面试会问你:离职原因,你咋说?期待后期面试直播:)
    echo1937
        8
    echo1937  
       Nov 6, 2015
    楼主骨骼精奇,心态极好,还能随时随地总结,他日必成大气。
    b821025551b
        9
    b821025551b  
       Nov 6, 2015   1
    看完了才发现是个广告
    kslr
        10
    kslr  
       Nov 6, 2015
    下雪了,再找个棉被吧
    kmahyyg
        11
    kmahyyg  
       Nov 6, 2015
    @master13 I'm Han Meimei.快去 V2EX 的酷工作发个贴找工作把
    wolf1981
        12
    wolf1981  
       Nov 6, 2015
    习惯写指引的,绝对是好员工
    aivier
        13
    aivier  
       Nov 6, 2015
    咦 →_→ 居然是你,我肯定会直接用 ISO 的。。。
    我记得 DVD1 里就有差不多的服务器软件了吧?设置为安装源,应该差不多,没试过
    master13
        14
    master13  
    OP
       Nov 6, 2015
    @b821025551b !!!哪里是广告了!
    master13
        15
    master13  
    OP
       Nov 6, 2015
    @aivier 就是听取了你们的回复,才总结出来的嘛
    b821025551b
        16
    b821025551b  
       Nov 6, 2015
    @master13 开个玩笑 233333
    br00k
        17
    br00k  
       Nov 6, 2015 via Android
    楼主还是要善于使用搜索啊,很多问题都能找到现成的答案。
    crab
        18
    crab  
       Nov 6, 2015
    感谢楼主分享!你那老板肯定内分泌失调。
    hantsy
        19
    hantsy  
       Nov 6, 2015
    方案 1 :内网搭建 yum 服务===》 搞个 Mirrro 同步就行了。
    JadeV
        20
    JadeV  
       Nov 6, 2015
    楼主抽了 2 小时出来没?
    wangluowangwang
        21
    wangluowangwang  
       Nov 6, 2015 via Android
    我发现这些都好简单。
    wangluowangwang
        22
    wangluowangwang  
       Nov 6, 2015 via Android
    @bugsnail 一样,当时也是。
    sancome
        23
    sancome  
       Nov 6, 2015
    lnmg.org 下个 full 包装,就这么简单。
    sancome
        24
    sancome  
       Nov 6, 2015
    网址 lnmp.org ,上面写错了
    kurtrossel
        25
    kurtrossel  
       Nov 6, 2015
    果然是人才,干得漂亮

    我要是老板,肯定找你这样的,越多越好
    Felldeadbird
        26
    Felldeadbird  
       Nov 6, 2015
    然后楼主真的被炒了??
    wy315700
        27
    wy315700  
       Nov 6, 2015
    @bugsnail
    我发现现在好多人只会‘官方’方案,当一个条件不满足的时候就不知所措了。

    我记得以前第一次去实习的时候,带我的人和我说,千万不要盯着 API ,如果大家都盯着 API ,那就没有病毒了。
    ts
        28
    ts  
       Nov 6, 2015
    NAT 那个方案没弄?
    gangsta
        29
    gangsta  
       Nov 6, 2015
    LZ 忘记配图了

    windfarer
        30
    windfarer  
       Nov 6, 2015 via Android
    楼主现在在哪个公园?
    master13
        31
    master13  
    OP
       Nov 6, 2015
    @sancome 最基本的支持库都不存在的时候,那个 full 包真的需要连网的,我为了跟别人吹牛逼,专门拔了网线试了一次,然后真的就一屏红字退出了。
    master13
        32
    master13  
    OP
       Nov 6, 2015
    @windfarer 你要来给我送饭吗
    MntCw
        33
    MntCw  
       Nov 6, 2015
    用 cdrom 建立 local.repo
    master13
        34
    master13  
    OP
       Nov 6, 2015
    @kurtrossel 然后公司 1 年就倒闭了……
    luzjcn
        35
    luzjcn  
       Nov 6, 2015
    为啥我说的没记录上
    https://github.com/lj2007331/lnmp

    一键安装, 所有组件都是最新版, 并且还能随时升级
    正常半小时内安装完毕
    Andy1999
        36
    Andy1999  
       Nov 6, 2015
    一台能连外网的服务器进行 nginx 反代 yum 源,然后 hosts 绑定好
    再用 lnmp 包进行编译。。。
    viator42
        37
    viator42  
       Nov 6, 2015
    lnmp.org 这个试过没?
    Ansen
        38
    Ansen  
       Nov 6, 2015 via iPhone
    同 Linux 运维
    今天也被开了!原因是公司(新成立)业绩不好 母公司把我们和旗下另外一家业绩同样不好的公司合并了,由于我们这边基本上都是试用期,所以 行政 财务 前端 美工 运维 都被在裁员的范围之内。
    9hills
        39
    9hills  
       Nov 6, 2015
    还有一个最最简单,最不用配置的方法

    那就是反向代理,只需要在内网找一台能够连上外网的机器,用 squid 或者 nginx 做一个反向代理就好了
    SquirrelMAN
        40
    SquirrelMAN  
       Nov 6, 2015
    没人吐槽亲手安装、理想、远方吗
    kaneg
        41
    kaneg  
       Nov 6, 2015 via iPhone
    奇怪楼主为什么不用代理?
    gyteng
        42
    gyteng  
       Nov 6, 2015
    楼主不知道还有一种方法叫做外接 4G 路由器吗
    KgM4gLtF0shViDH3
        43
    KgM4gLtF0shViDH3  
       Nov 6, 2015
    @gangsta 666
    zhangyh26258
        44
    zhangyh26258  
       Nov 6, 2015
    你前老板不讲道理啊,源码不接入网怎么下载?自己写?
    讲道理啊,怎么不用 gentoo/lfs 啊
    Hipponensis
        45
    Hipponensis  
       Nov 6, 2015
    这个不应该两个小时没搞定就该问人了么,现在才总结有点晚。。
    weakiwi
        46
    weakiwi  
       Nov 6, 2015
    全盘备份,找个机器全盘恢复,联网,安装,全盘备份,全盘恢复
    zho6
        47
    zho6  
       Nov 6, 2015
    10 年前 在深圳上班时 招了一个助手 让他安装一个 mysql 数据库 那小伙一天也没有弄好 并什么也没有问我 只有果断让他走人
    enotx
        48
    enotx  
       Nov 6, 2015
    喷了,这种事情做两天还搞不定,感觉我也能当运维了
    hqs123
        49
    hqs123  
       Nov 6, 2015
    认真看了下,觉得楼主大材小用了,建议楼主去别的公司发展把,以楼主的实力完全可以找到更好有前途的公司!
    kurtrossel
        50
    kurtrossel  
       Nov 6, 2015
    @master13

    看玩笑,怎么可能倒

    就凭你卖这一手好萌,做地推也能养活公司几百口人
    maskerTUI
        51
    maskerTUI  
       Nov 6, 2015 via Android
    还有个办法,接个 usb 网卡,连个 WIFI
    pynix
        52
    pynix  
       Nov 6, 2015 via Android
    看热闹不闲事大。。。
    wdlth
        53
    wdlth  
       Nov 6, 2015
    把 toolchain 全换新的,上一个新内核,依赖重新用新 toolchain 编译,把 CentOS 弄成不像 CentOS ……
    odirus
        54
    odirus  
       Nov 6, 2015
    感觉楼主必成大器啊,之前你的帖子我也看了,这样的领导不要也罢,你只是工作、更多的是提升自己,没必因为 NC 而打消学习的勇气。
    odirus
        55
    odirus  
       Nov 6, 2015
    以前我在厂里搬砖的时候,虽然数据进出公司都要高级领导亲自解密,也没这么坑。
    panzhc
        56
    panzhc  
       Nov 6, 2015
    代理应该是最简单的办法,而且符合要求,没有“直接”连公网
    feather12315
        57
    feather12315  
       Nov 7, 2015 via Android
    指出点 nginx 编译依赖错误(用 docker 125m 的 debian 为基础镜像编译, apt libc6-dev dpkg-dev curl make gcc git g++ 后),还缺少这个库 libexpat1-dev 的一个头文件,编译成功后缺少依赖,在这里 libexpat1 (版本 1.80 ,额外添加了 4 个模块, upstream-fair , dav-ext-module , http_google_filter_module , http_substitutions_filter_module
    seki
        58
    seki  
       Nov 7, 2015
    排版得这么好我还以为是什么广告贴呢,还找了半天广告在哪里
    SmiteChow
        59
    SmiteChow  
       Nov 7, 2015
    其实我想说你开个 vpn 在能入网的机器上,这边挂上不就好了?有这么麻烦吗?
    jydeng
        60
    jydeng  
       Nov 7, 2015
    以前自己搞过 PHP 运行环境,直接挂 CentOS 的 iso ,然后 RPM 安装,缺什么装什么就可以了。
    iloveayu
        61
    iloveayu  
       Nov 7, 2015 via Android
    方案 2 各大镜像源也一直在提供低版本的 ISO
    leassy
        62
    leassy  
       Nov 7, 2015
    楼主我早给你说过了,只要他威胁你就辞职,这种老板不值得为他服务
    chigco
        63
    chigco  
       Nov 7, 2015 via iPhone
    有效…
    RqPS6rhmP3Nyn3Tm
        64
    RqPS6rhmP3Nyn3Tm  
       Nov 7, 2015 via iPad
    代理不就好了……
    lovedboy
        65
    lovedboy  
       Nov 7, 2015
    nginx 反向代理一下就 OK 了吧?
    AntonChen
        66
    AntonChen  
       Nov 7, 2015
    首先 嫌大官方 DVD 可已搭建内网 Yum 源 甚至于可以直接挂载 ISO 文件作为 Yum 安装源
    有了源就简单了 下载个 LNMP 离线包 执行 泡杯茶、点支烟、出去散步半小时 回来好了.........
    konakona
        67
    konakona  
       Nov 7, 2015
    阿婆主成熟了,懂得记事。
    也是给了原来老板一记响亮的耳光,但是,要懂得感恩,不管原来老板的立场是好是坏,我们大家和你都知道,结果是:你变得更好了。

    记得感恩,无论别人对你是好是坏,注重自己的变化,从心出发。

    OK ,说到这里,我去杀僵尸了。
    morning
        68
    morning  
       Nov 9, 2015
    “那个系统是我亲手装的,上面有我的青春、理想和远方,你可别弄没了”
    老板最后这句真的太萌了~
    master13
        69
    master13  
    OP
       Nov 10, 2015
    @morning 嗯嗯,终于看到一个有诗情画意的程序员了!
    About     Help     Advertise     Blog     API     FAQ     Solana     5138 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 148ms UTC 09:08 PVG 17:08 LAX 02:08 JFK 05:08
    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