LoginSignup
1
2

More than 3 years have passed since last update.

[メモ] php開発環境 (Windows10, Vagrant, Docker, VSCode)

Last updated at Posted at 2019-10-29

普段Web関連の開発してない個人の開発環境メモ.
image.png

概要

Vagrantにて、VirtualBoxで centos/7 を起動して、Docker環境をインストール。
php(php:7.3-apache-stretchベース) + mysql(mariadb:10) + phpmyadminの環境を入れる。
Visual Studio Codeで、デバッグする。

環境

  • Windows 10 64bit

手順

  1. ホスト側の環境のセットアップ
    git、Vagrant、VirtualBox、phpとvscodeをインストール

    Power Shellを管理者で開いて、以下を実行

    Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
    cinst -y git vagrant virtualbox php vscode
    
  2. ゲスト側の環境のセットアップ
    Git Bash (コマンドライン) を開いて、以下実行。
    (ネットワークインターフェースが複数あると、vagrant up時に、どれを使うか聞かれる。番号入れて、[Enter])

    mkdir -p /c/Vagrant
    cd /c/Vagrant
    git clone https://github.com/mt08xx/phpdev2019.git
    cd phpdev2019
    vagrant plugin install vagrant-vbguest
    vagrant up && vagrant halt
    # しばらく待つ: 15分~ (PC,ネット環境によりけり)
    
  3. php-apache, mysql, phpmyadminのコンテナ起動。
    以下、実行

    cd /c/Vagrant/phpdev2019
    vagrant up
    vagrant ssh
    cp -rv /vagrant/wwwphp /home/vagrant
    cd wwwphp
    rm -rfv www
    ln -sf /vagrant/wwwphp/www .
    docker-compose up -d
    
  4. ブラウザでアクセス
    ゲスト内で、ip addr show eth1 にて、IPアドレスを取得して、ホスト側(Windows)のブラウザを開いて、アドレスバーに、IPを入れる (phpinfo()が表示されるハズ)

    実行例(192.168.1.123がIP)
    [vagrant@localhost wwwphp]$ ip -4 addr show eth1
    4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        inet 192.168.1.123/24 brd 192.168.1.255 scope global noprefixroute dynamic eth1
           valid_lft 685178sec preferred_lft 685178sec
    [vagrant@localhost wwwphp]$
    
  5. VSCodeの整備

    1. VSCodeを起動
      エクスプローラーで、C:\Vagrant\phpdev2019\wwwphp\wwwを開いて、右クリック。
      Open with Code(VSCodeでフォルダを開く)
    2. Extensionをインストールする
      Ctrl + Shift + X を押して、以下のExtensionを探して、インストール
      (PHP IntelliSenseとphpfmtは、ホストにphpの実行ファイルが必要らしい)
      • PHP Debug
      • PHP IntelliSense
      • phpfmt (phpのファイルを開いたら、[F1]をおして、phpfmt+[Enter]すると、整形される)
      • HTMLHint
      • IntelliSense for CSS class names in HTML
    3. index.phpを開く(Ctrl + Shift + Eで、VSCodeのExplorerを開いて、クリック)
    4. phpinfo(); の行に、ブレークポイントを張る(行番号の左側のほうをクリック)
    5. デバッグ開始: メニューの Debug > Start Debugging または、[F5] を押す。
    6. ブラウザで、該当のページをひらく。 http://xxx.yyy.zzz.www
    7. 該当箇所で、止まってるはず。あとは、ステップ実行したりして、楽しむ。

その他

  • ゲストは、2GBとかでもだいじょぶそう。。
    VagrantfileVM_MEMORY=4096 => VM_MEMORY=2048
  • ネットワークがいちいち聞かれて面倒なら
    config.vm.network "public_network", bridge: ""Realtek USB GbE Family Controller"
    のようにしてしまうとよい。
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2