サーバー構築は任せて開発に集中したい派の僕らの味方『PuPHPet』というVagrantパッケージ作成ツールが最近オススメ。
VagrantはVirtualBoxなどの仮想化ソフトを利用して、仮想マシンの簡単な構築や複製ができるように仮想マシンを管理するためのコマンドラインツール。
基本的にはvagrantなので、そっちは『Vagrant関係メモ』を参照してほしい。
XAMPPを長いこと愛用していたが、windowsとlinuxの差異が結構めんどくさいとこであったので、2015年あたりから開発環境を仮想環境に変えた。
一部困った部分をメモしておく
インストール
- PuPHPetで自分の思うがままに選んで行けば設定を完了したzipをDLさせてくれる。 ※英語だよ!
- それをローカルのコマンドで指定し易い場所に解凍
- コマンドプロンプト(自分はGit Bashを使用)を起動して、先程置いた場所に移動(cd)
- 『vagrant up』でローカルサーバが構築される ※初回は結構時間がかかる!
※PuPHPetの設定画面はよく変わるから手順は勘でやっては消してすればいい
puphpet/config.yamlの変更を反映させたい
書き換えた後、単純にvagrant upしたって反映されない。
vagrant up --provision
もしくは
vagrant up vagrant provision
設定ファイルのミスなのか何故か上手く行かなくて、なんかもういっそ作り直してやる!
状態なら、下記『環境を作り直したい』を参照。
環境を作り直したい
vagrant destroy vagrant up
か
VirtualBoxを起動して、puphpet/config.yamlの
vagrantfile: vm: provider: local: machines: hostname:
で設定した名前のサーバがあるので、それを消してから『vagrant up』。
複製を作りたい
フォルダを複製しただけでは、同じものを起動するだけになる。
puphpet/config.yamlの下記の部分を書き換える。
vagrantfile: vm: provider: local: machines: id: 【※書き換える1】 hostname: 【※書き換える2】
※上記一部省略
バーチャルホストを使用する
puphpet/config.yamlの
machines: network: private_network:に指定したIPを【指定IP】
vhosts: server_name: と vhosts: server_aliases: に指定したURLを【指定URL】
『hosts』に
【指定IP】 【指定URL】
と追記する。
vhostの数だけ作るのが必要。
※machines:を増やしても無駄ぞ、vhosts:ぞ
ユーザ名/パスワードでログインしたい
コマンド操作が面倒でwinSCPを使いたいとか、Tera Term使いたいとか思うことがあると思う。
でも、いちいち公開鍵ログインするのはメンドクサイ。
設定したとして、環境を作るたびに作り直す度に設定するのもメンドクサイ。
そんな人はシェルを置こうぜ!という話。
『puphpet/files/exec-preprovision』に『passwd.sh』※仮名
#!/bin/sh echo "vagrant:【変更するパスワード】"|chpasswd
相方が作ってくれたよ、ありがてえ
もし巧く行かなければ、『startup-always』に置いてみたり、1回『vagrant ssh』しておく、とかしてみると巧くいくことがある。
※『シェルスクリプトでパスワードを変更する - システム開発メモ』を参照した様子
puphpet/files/以下のファイルについて
exec-always:すべてに実行。
exec-always-unprivileged:すべてに実行。特権なし。
exec-once:初回のみで実行。
exec-once-unprivileged:初回のみで実行。特権なし。
exec-preprovision:execの事前プロビジョニング。
startup-always:常に実行。
startup-always-unprivileged:常に実行。特権なし。
startup-once:初回のみ実行。
startup-once-unprivileged:初回のみ実行。特権なし。
startupとexecの違いがよく解っていないんだけども…
config.yamlの設定でinstallの種類を増やす
puppet module install 【モジュール名】
で色々増やせるらしい。※試したことはない
phpMyadminのプロジェクトとかある。
モジュールを増やせる旨マニュアルも見つかるけど、英語である…。
よく使うpuppetモジュールの紹介 - ぶていのログでぶログ等個人的に紹介してくれてるサイトのお世話になるといい。
拡張子のない『index』へのrewriteがオカシイ
MultiViewsが原因。
詳しくは『mod_rewrite効かず、 [negotiation:error]』に書いた。
mod_rewriteで書き得たURLをチェックしたい
config.yamlで設定可能。
『mod_rewriteの置き換えURLをチェックする』に書いた。
コメント