V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
raincious
V2EX  ›  Vagrant

俺也作了个 Vagrant 脚本,用来自动初始化出一个装好了 Apache (With SSL) + PHP (With XDebug) + PostgreSQL + Memcached 的虚拟机。

  •  
  •   raincious · 2015-06-01 20:47:00 +08:00 · 2743 次点击
    这是一个创建于 3497 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在俺之前发了个帖(/t/184541)得到了大家热情无私的帮助之后……,最终发现PuPHPet在国内实在没法下载,所以想办法还是自己写了个配置脚本来初始化。虽然没那么灵活,但是终究能用,于是整理了下拿出来。

    仓库地址

    https://github.com/raincious/little-vagrant-machine

    用法(最简单的)

    连上互联网,然后:

    git clone https://github.com/raincious/little-vagrant-machine.git
    

    完成后在 little-vagrant-machine/Project 目录下建立你的项目文件夹,名称只可以是小写英文字符,中间可以有 - 符号。之后把你的项目拖进刚建立的文件夹。

    多个项目重复进行就行了。

    然后:

    cd little-vagrant-machine
    vagrant up
    

    完成之后会给你创建一个装好了Apache、PHP、PostgreSQL和Memcached的干净虚拟机,方便你做开发。

    然后你可以用

    http://%项目文件夹名%.project.%主机名%.%你的本地域名%:8080

    或者

    https://%项目文件夹名%.project.%主机名%.%你的本地域名%:4443

    来访问。主机名一般是 vagrant-ubuntu-vivid-64,安装好之后会显示给你。

    用法(想要折腾的)

    • little-vagrant-machine/Vagrant/CA.* 自带的 CA 证书
    • little-vagrant-machine/Vagrant/domain 定义本地开发域名
    • little-vagrant-machine/Vagrant/type 这个你改了就不能用了……(目前只有一个选项)
    • little-vagrant-machine/Vagrant/init.sh 初始化脚本,不要改
    • little-vagrant-machine/Vagrant/before_init.sh 初始化之前执行的脚本,可以用来改 apt-get 源什么的。自己写。
    • little-vagrant-machine/Vagrant/Misc 用来初始化的通用工具

    特点

    • 就算有我也想不起来
    • 就一个初始化配置而已,能有啥特点
    • 能自动帮你开好SSL的网站算一个么?(OpenSSL什么的最讨厌了)
    • 里面不带任何管理工具,如果有需要请自行把他们拖到 Tool 目录下(简:纯净)
    • PHP 的 display_error 是默认的 off。(简:生产服务器 高……仿……真……)
    • 对默认配置不满的同学请自行 vagrant ssh(简:自由)

    哦,别忘了,还得

    • 把 CA 证书换成你自己的
    • little-vagrant-machine/Vagrant/domain 换成自己本地的 .dev 域名,不然解析不到127.0.0.1
    • 以上都要在第一次 vagrant up 之前干好。
    • 你需要自己开发机上装一个 pgAdmin 来管理 PostgreSQL 数据库。
    • 不要 PR 回来,谢谢(俺不一定有能力测试)。

    以上。

    6 条回复    2015-06-01 22:55:58 +08:00
    immjun
        1
    immjun  
       2015-06-01 21:36:22 +08:00   ❤️ 1
    可以搞一个
    Nginx(With SSL) + HHVM + PostgreSQL + Redis
    raincious
        2
    raincious  
    OP
       2015-06-01 21:40:00 +08:00
    @immjun

    这个俺可以加到TODO里,但得等啥时候不懒了再动手嗯……
    cevincheung
        3
    cevincheung  
       2015-06-01 21:46:40 +08:00   ❤️ 1
    可以搞一个
    Nginx(With SSL) + PHP7 + PostgreSQL + Redis + Elasticsearch + PGPOOL + Squid + RoR + Python3

    (逃

    话说真正的不是应该每个App独立封装吗?
    raincious
        4
    raincious  
    OP
       2015-06-01 21:56:52 +08:00
    @cevincheung

    哦,这个只是开发用的,我开发PHP的时候就用这套(除了自己偷偷改成NFS做文件夹同步),为了方便所以可以放多个项目。

    Python我还没形成一个开发流程的体系,所以就没弄。不过我倒是可以搞个 MySQL + PostgreSQL + Redis + Elasticsearch的(内存恐怕不够吧喂),然后每个服务开个外部端口什么的,项目仍然是在自己的开发机上做。
    cevincheung
        5
    cevincheung  
       2015-06-01 22:07:03 +08:00   ❤️ 1
    @raincious 反正只要是有postgresql我就支持
    Tonni
        6
    Tonni  
       2015-06-01 22:55:58 +08:00   ❤️ 1
    楼主如果有兴趣可以试试 ansible
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   934 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:26 · PVG 05:26 · LAX 13:26 · JFK 16:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.