搭建vagrant開發環境

最近正好用着Vagrant搭建開發環境,寫一篇文章記錄一下。php

Vagrant目前是國內互聯網公司應用最多的內部開發環境工具。mysql

Mac、 Windows搭建是同樣的,我是在Mac下搭建的環境。nginx

vagrant 搭建開發環境laravel

基礎環境

virtualbox 5.1.8
下載地址:https://www.virtualbox.org/wiki/Download_Old_Builds_5_1git

vagrant 1.8.6
下載地址:https://releases.hashicorp.com/vagrant/1.8.6github

啓動虛擬機

box下載web

地址1:https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.boxsql

 

地址2: https://github.com/CommanderK5/packer-centos-template/releases/thinkphp

 

下載以後請確保文件名爲centos6.7.boxapache

  • 添加box
    • vagrant box add centos67 centos6.7.box
  • 初始化box
    • vagrant init centos67
    • vagrant ssh

對虛擬機優化

  • 替換源

    • sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #備份
    • sudo vim /etc/apt/sources.list #修改源
      • 將文件內容替換成如下內容
      •  1 deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
         2 deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
         3 deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
         4 deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
         5 deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
         6 deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
         7 deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
         8 deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
         9 deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
        10 deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

         

    • sudo apt-get update #更新列表

L(A|N)MP

Ngnix

     sudo apt-get install nginx

     nginx -v

   nginx version: nginx/1.4.6 

Apache

      sudo apt-get install apache2

      apache2 -v

   Server version: Apache/2.4.7

更改端口,將端口設置爲8888

  • 修改 ports.conf 文件
  • curl -I 'http://127.0.0.1:8888'
  • Mysql

    • sudo apt-get install mysql-server #服務器端
      • 安裝期間會提示輸入爲mysql設置root密碼,我這邊不操做,直接enter 不設置密碼
    • sudo apt-get install mysql-client #客戶端
      • mysql -uroot -p #測試鏈接庫,上面安裝服務端沒有設置密碼,這裏直接enter進入
  • php

    • 安裝php

      • sudo apt-get install php5-cli
        • php -v
    • PHP擴展

      • php5-mcrypt
      • php5-mysql
      • php5-gd
    • 支持apache2的php模塊

      • sudo apt-get install libapache2-mod-php5
      • 開啓rewrite功能
        • sudo a2enmod rewrite
    • 支持nginx fastcgi

      • sudo apt-get install php5-cgi php5-fpm
      • 修改爲9000端口 ,默認sock模式
        • cd /etc/php5/fpm/pool.d
        • sudo vim www.conf # search listen = 127.0.0.1:9000
        • sudo /etc/init.d/php5-fpm restart

Vagrant高級配置

  • 端口轉發

    • 配置
    config.vm.network "forwarded_port", guest: 80, host: 8888 
         config.vm.network "forwarded_port", guest: 8888, host: 8889
    • 測試效果
      • http://127.0.0.1:8888/
      • http://127.0.0.1:8889/
  • 網絡設置

    • 配置

      config.vm.network "private_network", ip: "192.168.199.101"

    • 效果

      • http://192.168.199.101/ 或者 http://192.168.199.101:80/
      • http://192.168.199.101:8888/
  • 共享目錄

    • 配置

      config.vm.synced_folder "/Users/code/", "/home/www"

框架配置

  • tp5

    • git clone https://github.com/top-think/think tp5
    • 而後切換到tp5目錄下面,再克隆核心框架倉庫:cd tp5 && git clone https://github.com/top-think/frameworkthinkphp
    • nginx 配置
      • 沒法查看日誌 sudo chmod -R 755 /var/log/nginx
    • apache 配置
      • 沒法查看日誌sudo chmod -R 755 /var/log/apache2
      • Forbidden解決辦法
        • cd /etc/apache2
        • sudo vim apache2.conf
        <Directory />
                     Options FollowSymLinks
                     AllowOverride None #修改爲AllowOverride ALL 打開rewrite
                     #Require all denied #把這行屏蔽掉,拒絕一切連接
             </Directory>
    • 測試效果
      • http://tp5.test 或者 http://tp5.test:8888
      • 作個測試頁面 http://tp5.test/index/index/test 或者 http://tp5.test:8000/index/index/test
  • yii2

    • 下載:github.com/yiisoft/yii2/releases/download/2.0.10/yii-basic-app-2.0.10.tgz
    • nginx 配置
    • apache 配置
    • 測試效果 * http://yii.test 或者 http://yii.test:8888 * 作個測試頁面 http://yii.test/site/test 或者 http://yii.test:8000/site/test
    • 問題
      • runtime/logs": mkdir(): Permission denied
        • 權限不夠 chmod -R 777 runtime (若是在虛擬機不能修改文件權限,請使用nfs共享目錄)
      • yii\web\Request::cookieValidationKey must be configured with a secret key.
        • config/web.php cookieValidationKey 賦值
      • 若是打不開 site/test ,請修改config/web.php 中urlManager 註釋打開
  • laravel5

    • 下載: down.golaravel.com/laravel/laravel-v5.1.11.zip
    • nginx 配置
    • apache 配置
    • 測試效果
      • http://laravel.test 或者 http://laravel.test:8888

優化

  • 虛擬機名稱
    • vb.name = "vagrant_centos"
  • 虛擬機主機名
    • config.vm.hostname = "centos"
  • 配置虛擬機內存和CPU
    • vb.memory = "1024"
    • vb.cpus = 2

打包命令

  • vagrant package --output xxx.box

 

 

vagrant 經常使用命令

vagrant init 初始化配置

vagrant up 啓動虛擬機

vagrant ssh ssh登陸虛擬機

vagrant suspend 掛起虛擬機
vagrant reload 重啓虛擬機

vagrant halt 關閉虛擬機vagrant status 查看虛擬機狀態vagrant destroy 刪除虛擬機

相關文章
相關標籤/搜索