2020年11月30日をもって CentOS 6 のサポート期間が終了したため、このレッスンで解説している CentOS 6 をベースとしたローカル開発環境の構築は実施不可となりました。ご了承ください。
なお、すでに構築済みの環境はそのままご利用いただけますが、新たなアプリケーションのインストール等は実施できません。
3分動画でマスターできるプログラミング学習サービスです。あなたもプログラミングを始めてみませんか?
Copyright © 2011-2024 dotinstall.com. All Rights Reserved.
#01 ローカル開発環境を整えよう
補足情報 Cloud9 のレッスンについて
Cloud9 については以下のレッスンを参考にしてみてください。
・AWS Cloud9入門 (全11回)
https://dotinstall.com/lessons/basic_c9_v2
#02 VirtualBoxをインストールしていこう
補足情報 古いバージョンの VirtualBox をインストールしたい場合
以下のリンクからたどり、ご利用の OS にあわせてダウンロードしてみてください。
https://www.virtualbox.org/wiki/Download_Old_Builds
#03 Vagrantをインストールしていこう
補足情報 「Windows によって PC が保護されました」と表示される場合
Vagrant のインストーラーを開くと Windows Defender が実行を停止する場合があります。
このような表示が出たときは「詳細情報」をクリックした後に「実行」ボタンをクリックするとインストールを続行できます。
補足情報 Windowsが32bitなのか64bitなのかを確認するには?
現在 Vagrant のインストーラーは 32 bit 用と 64 bit 用に分かれています。
ご自身の Windows がどちらのバージョンなのか分からない場合は、
をご確認の上、ご自身の Windows に合ったインストーラーをダウンロードするようにしてください。
#05 仮想マシンを立ち上げよう
補足情報 動画中で利用したコマンドについて
動画中で利用したコマンドは以下のとおりです。
なお、動画の最初に実施している vagrant-vbguest プラグインの導入はエラーを引き起こす可能性があるため、実施しないようにしてください。
補足情報 日本語のユーザー名が原因で vagrant コマンドが失敗する場合があります
Windows で日本語のユーザー名を使用している場合、以下のようなエラーで vagrant コマンドが失敗する場合があります。
Windows-31J and UTF-8 (Encoding::CompatibilityError) ...
というエラーVagrant failed to initialize at a very early stage ...
というエラーそれぞれの解決手順は以下をご参照ください。
続きを表示する...
Windows-31J and UTF-8 (Encoding::CompatibilityError) ...
というエラーエラーメッセージ
対処法
これは Windows のユーザー名が日本語の場合に発生するエラーとなります。回避するには、
を以下の手順に従って実施してください。
1. ユーザー環境変数の設定
※ 環境変数の設定は間違えないようご注意ください。
vagrant_home
という名前のフォルダを作成します。VAGRANT_HOME
を追加し、その値をC:\vagrant_home
と設定します。(バックスラッシュは Windows では円記号となります。キーボード右上の円記号を打ち込むか、\
をコピーしてください。)※ 環境変数の設定方法は OS のバージョンによって異なります。「Windows10 環境変数」「Windows7 環境変数」などで検索して調べてみてください。
2. VirtualBox のデフォルトの仮想マシンフォルダーの設定
vboxvms
という名前のフォルダを作成します。» 参考: http://sutara79.hatenablog.com/entry/2015/06/28/104150
ここまで設定ができたら再度 PowerShell にて
vagrant up
を実施してみてください。Vagrant failed to initialize at a very early stage ...
というエラーの場合エラーメッセージ
対処法
PowerShell で
cd C:\
として C ドライブ直下に移動し、そこにMyVagrant フォルダを作成するようにしてみてください。
それでも解決しない場合は、
としてプラグインをアンインストールした上で、
を実行してください。(vagrant-vbguest プラグインは必須ではありません)
補足情報 vagrant up の実行時に「VBoxManage.exe: error: VT-x is disabled in the BIOS for all CPU modes」と表示される場合
vagrant up の実行時に、
のようなメッセージが表示された場合、ご利用のパソコンにて仮想化支援機能が無効になっており仮想マシンの作成ができない状態となっています。(ご利用のパソコンによっては「VT-x」が「AMD-V」と表示される場合もあります。)
解決法
続きを表示する...
以下のサイトなどを参考に BIOS の設定を確認し、仮想化支援機能を有効化してみてください。
なお、ウィルス対策ソフトによっては BIOS の設定を無効にしてしまう場合があります。
その場合は、ウィルス対策ソフトの設定で仮想化支援機能に関する項目を無効にしていただくか、ウィルス対策ソフト自体を一時的に終了させてから vagrant up を実施してみてください。
補足情報 「Timed out while waiting for the machine to boot.」で始まるエラーメッセージが出る場合
vagrant up の実行時に「Timed out while waiting for the machine to boot.」で始まるエラーメッセージが表示された場合、ご利用のパソコンにて仮想化支援機能が無効になっていることが原因の可能性があります。
続きを表示する...
この場合、以下のサイトなどを参考に BIOS の設定を確認してみてください。
なお、上記サイト等にあるように BIOS の設定で仮想化支援機能を有効にしても、ウィルス対策ソフトによってはその設定を無効にしてしまう場合もあります。
Avast の場合
http://hatena.fut573.com/entry/20160218/1455792335
その場合は、ウィルス対策ソフトの設定で仮想化支援機能に関する項目を無効にしていただくか、ウィルス対策ソフト自体を一時的に終了させてから vagrant up を実施してみてください。
補足情報 「Vagrant was unable to mount VirtualBox shared folders.」で始まるエラーメッセージがでる場合
vagrant up の実行時に「Vagrant was unable to mount VirtualBox shared folders.」で始まるエラーメッセージが出る場合があります。
このエラーが発生すると共有フォルダ機能が使えなくなりますが、レッスンでは利用していないためそのまま環境構築を続けてみてください。
補足情報 「No usable default provider could be found for your system.」で始まるエラーメッセージが出る場合
vagrant up を実行すると、
というエラーメッセージが表示される場合があります。
これは VirtualBox の新しいバージョンがリリースされたばかりで Vagrant がそのバージョンにまだ対応してない時や、そもそも VirtualBox がインストールされていない時に表示されるエラーメッセージです。
新しいバージョンでこのエラーが発生したのなら古いバージョンの VirtualBox をインストールすることで回避できます。
補足情報 vagrant up で VERR_INTNET_FLT_IF_NOT_FOUND のエラーが発生する場合
vagrant up の実行時にエラーが発生し、そのエラーメッセージ内に「
VERR_INTNET_FLT_IF_NOT_FOUND
」の文字列が表示されているときは、以下の手順を試してみてください。という手順になります。
「VirtualBox Host Only Ethernet ...」のアダプタは複数存在する場合もありますので、すべてのアダプタに対して上記の手順を実施してみてください。
実施できたらパソコンを再起動します。(再起動せずに上手くいく場合もあります。)
再起動できたら PowerShell を起動し、
と実行してみてください。
参考: https://stackoverflow.com/questions/33725779/failed-to-open-create-the-internal-network-vagrant-on-windows10/33733454#33733454
補足情報 Windows 7 で vagrant up が進まない場合
Windows 7 では
vagrant up
を実行しても何も表示されず止まったようになるケースが確認されています。そうなった場合は Ctrl + c でコマンドを中断し、
をインストールしてから再度
vagrant up
を試してみてください。Vagrant の古いバージョンは https://releases.hashicorp.com/vagrant/ から、VirtualBox の古いバージョンは https://www.virtualbox.org/wiki/Download_Old_Builds からダウンロードできます。
補足情報 「Stderr: VBoxManage.exe: error:...」というエラーが発生する場合
VBoxManage.exe がエラーとなる原因はいくつかあります。
主な原因として仮想マシンが正常に終了せず、異常停止している場合がありますので、まずは
vagrant halt
で仮想マシンを確実に終了させ、その後vagrant up
を試してみてください。それでも解決しない場合は、一度 VirtualBox をアンインストールし、最新版の VirtualBox をインストールし直してみてください。
また、セキュリティソフトが原因でエラーとなるケースも最近多く見受けられますので、導入しているセキュリティソフトの停止もしくはアンインストールもお試しください。
続きを表示する...
エラーメッセージの例 (1)
エラーメッセージの例 (2)
補足情報 フォルダの階層構造を意識しましょう
今回「MyVagrant」というフォルダの中に「MyCentOS」というフォルダをさらに作成して、そのフォルダ上で vagrant コマンドを実行しています。
というフォルダ階層になっています。
仮想マシンは vagrant init や vagrant up コマンドを実行したフォルダ上で作成されますので、もし別のフォルダ上で実行してしまうともう1つ別の仮想マシンが作成されてしまいます。
続きを表示する...
現在のフォルダを確認するには
pwd
というコマンドが利用できますので、今どこのフォルダにいるのか分からなくなった時にはpwd
コマンドで確認してみてください。pwd
コマンドを使うこのあたりのポイントを意識しておきましょう。
補足情報 PowerShell で現在のディレクトリ(フォルダ)の位置を確認するには?
PowerShell では、コマンドを入力するカーソルの左側に表示されている、
が、現在コマンドを実行しているディレクトリ(フォルダ)の位置を示しています。
「PS C:¥Users¥taguchi>」の場合は「Cドライブにある Users ディレクトリの中の taguchi ディレクトリにいる」という意味ですので覚えておきましょう。(Users ディレクトリは、エクスプローラーでは「ユーザー」と表記されているフォルダを指します。)
動画中で cd コマンドを実行してディレクトリを移動すると、この文字列が変化していることが確認できるかと思います。
#06 PuTTYをインストールしていこう
補足情報 PuTTYのダウンロードページについて
2019年9月現在、PuTTYの公式サイトがリニューアルされたようです。PuTTYをダウンロードするには
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
に移動したあとに、お使いのOSの種類に応じて以下のどちらかをダウンロードしてインストールしてください。
#07 仮想マシンにログインしてみよう
補足情報 PuTTYで「Network error:Connection timed out」というエラーが出て接続ができない
PuTTYで「Network error:Connection timed out」というエラーが出る場合は、以下の内容を確認してみてください。
1. VBox.log の内容を確認しましょう
最も多いケースとして仮想化支援機能が無効になっているケースがあります。まずは以下のフォルダにある VBox.log という名前のファイルを探し、メモ帳や Atom エディタなどで開いてみてください。
※ 仮想マシンが複数存在している場合は間違えないようにフォルダや VBox.log の更新日時を手がかりにして特定しましょう。
VBox.log を開いたら次にファイル内検索で「VT-x」もしくは「AMD-V」という文字列を検索してみてください。もしファイル内に、
もしくは、
と出力されていた場合、仮想化支援機能が無効であることが原因で確定です。
※ なお、「VT-x w/ nested paging and unrestricted guest execution hw support」というメッセージが出ている場合は問題ありません。
以下のページなどを参考に BIOS の設定を変更してみてください。
変更が完了したら BIOS の設定を保存して終了し、パソコンを再起動します。
再び PowerShell を起動して、
と実行後、PuTTY での接続を試してみてください。
2. 仮想マシンを再起動してみましょう
学習途中でパソコンをシャットダウンすると仮想マシンが停止してしまうことがあります。PowerShell を起動して、
を実行し、PuTTY での接続を試してみてください。なお、 vagrant reload の実行時に mount 関連のエラーが出る場合がありますが学習には支障ありません。
※ mount 関連以外のエラーが出た場合はエラーメッセージで検索してみてください。
3. 意図せず複数の仮想マシンが作られていないか確認しましょう
何度かレッスンを最初からやり直すと複数の仮想マシンを作ってしまう場合があります。
vagrant global-status
というコマンドを PowerShell で実行してみてください。この例の場合は ID が「e55f551」と「81714d0」の仮想マシンが 2 台起動しています。不要な仮想マシンを
vagrant halt 仮想マシンのID
というコマンドで停止してみてください。下の仮想マシンを停止したければ、vagrant halt 81714d0
を実行すればOKです。4. PuTTY に設定した IP アドレスを確認しましょう
レッスンの通り、きちんと「192.168.33.10」と入力できているか確認してください。Vagrantfile で別の IP アドレスを指定した場合は、その IP アドレスと一致しているかどうか確認してください。
5. Vagrantfile の編集を忘れていないか確認しましょう
http://dotinstall.com/lessons/basic_localdev_win_v2/38605 のレッスンにて Vagrantfile を編集し、IP アドレスを有効にする手順があります。
正しく編集して保存できているか確認してみてください。
なお、その手順を忘れて
vagrant up
を先に実行してしまった場合は、必ず編集後にvagrant reload
で仮想マシンを再起動するようにしてください。6. セキュリティソフトが通信を遮断していないか確認しましょう
ウィルス対策ソフトなどのセキュリティソフトがアプリケーションの通信を遮断し、仮想マシンに接続できない場合があります。
心当たりがある場合は、セキュリティソフトの設定で通信を許可するか、セキュリティソフトをオフにしてから試してみてください。
7. それでも原因が分からない場合
プレミアム会員向けに試験提供している質問機能をご利用ください。ご質問の際にはご自身で実施された作業内容に加えて、以下のファイルやスクリーンショットを添付してください。
vagrant global-status
を実行した PowerShell のスクリーンショットなお、スクリーンショットの撮り方が分からない場合は以下のヘルプを参考にしてください。
#08 仮想マシンの設定をしよう
補足情報 動画中で利用したコマンドについて
動画中で利用したコマンドは以下のとおりです。
補足情報 TASK [install mysql] でエラーが出る場合(MySQL のインストールエラー)
2020年5月現在、MySQL 公式リポジトリの CDN サーバー間でキャッシュの不一致があるようで、MySQL のインストール時にエラーとなるケースが確認されています。
こちらは使用するネットワークにより発生したりしなかったりすることが分かっています。
まずは可能であれば使用ネットワーク回線を変更してみてください。
また、以下のコマンドでバージョン 5.6.38 がインストールできるかどうか試してみてください。(以下のコードを7行まとめてコピー&ペースト。)
インストールができたら、もう一度 ./run.sh を実行してみましょう。
上記の対策で解決できない場合、一旦ローカル開発環境の構築は保留して AWS Cloud9 での学習をおすすめしております。
補足情報 仮想マシンから外部ネットワークに接続できない場合
ウィルス対策ソフトのようなセキュリティソフトが原因で、仮想マシンから外部ネットワークに接続できない場合があります。
Couldn't resolve host ...
というエラーが大量に表示されるfatal: HTTP request failed
というエラーになる導入されている場合は、一度セキュリティソフトをオフにしてから試してみてください。
補足情報 「-bash: pyenv: コマンドが見つかりません」と表示される場合
セットアップ終了後に何かコマンドを実行すると、
と表示されることがあります。
このメッセージが表示される場合はセットアップに失敗していますので、以下のコマンドでセットアップをやり直してみてください。
補足情報 「Couldn't resolve host ...」のエラーが表示される場合
何らかの原因で DNS の名前解決が上手くできない場合、「Couldn't resolve host ...」というエラーメッセージが表示されます。
一度 PowerShell にて仮想マシンを再起動すると解決する場合がありますので、
で MyCentOS フォルダに移動してから、
を実行してください。
新たに PuTTY を起動してログインし直してから、構築作業を続けてみてください。
それでも解決できない場合は PuTTY で仮想マシンにログインした状態で、
と実行してからもう一度 ./run.sh のコマンドを試してみてください。
なお、この設定は仮想マシンを再起動すると元に戻ってしまいます。仮想マシンを再起動後に同じエラーが発生した場合は、再度上記コマンドを実行してみてください。
#09 Cyberduckをインストールしよう
補足情報 Atom フォルダが表示されない場合
補足情報 Cyberduckのインストール時に「このインストールパッケージはこの種類のプロセッサでサポートされていません。」と出る場合
32bit の Windows にて最新の Cyberduck のインストーラーが正常に動作しないケースが確認されています。
https://cyberduck.io/changelog/ のページからバージョン 7.0.2 をダウンロードしてインストールしてみてください。
補足情報 Atom エディタの指定について
atom フォルダに atom.exe がある場合
最新版の Atom では AppData → Local → atom とたどると atom.exe というファイルがあります。
atom.cmd の代わりにこの atom.exe を指定しても大丈夫ですので、上手く動作しない場合はお試しください。
atom フォルダの中に bin フォルダが見つからない場合
動画の通りに atom フォルダを開いても、その中に bin フォルダが存在しない場合があるようです。
その場合は「app-」で始まるフォルダから resources → cli とたどると atom.cmd というファイルがありますので、そちらをCyberduckの環境設定にて指定してみてください。
その後、開きたいファイルを右クリック → エディタで編集 → デフォルト と選択すれば Atom で開くことができます。(ダブルクリックでは開かない場合がありますのでご注意ください。)
#10 仮想マシンにアクセスしてみよう
補足情報 Cyberduck 6.9.3 で接続ボタンを押しても反応がない場合
2019年2月17日現在、Cyberduck 6.9.3 で接続ボタンが反応しない不具合が報告されています。
一度 Cyberduck をアンインストールして、 https://cyberduck.io/changelog/ にあるバージョン 6.9.0 をダウンロードしてインストールしてみてください。
#11 PHPの学習をしてみよう
補足情報 「php: コマンドが見つかりません」と表示されてしまう場合
#08 仮想マシンの設定をしよう | ローカル開発環境の構築 [Windows編] のレッスンで実行した「./run.sh」のコマンドが途中でエラーになった可能性があります。
と実行し、実行が完了したら
php -v
と打って PHP のバージョン情報が表示されるか確認してみてください。補足情報 「-bash: pyenv: コマンドが見つかりません」と表示される場合
何かコマンドを実行すると、
と表示されることがあります。
このメッセージが表示される場合はセットアップに失敗していますので、以下のコマンドでセットアップをやり直してみてください。
補足情報 Cyberduckでindex.phpを開こうとすると「Access denied」と表示される場合
補足情報 Edge ブラウザではページを表示できません
Chrome など Edge 以外のブラウザを利用するようにしましょう。
補足情報 Could not open input file: 192.168.33.10:8000 と表示される場合
php -S 192.168.33.10:8000
の「-S」が小文字になっている可能性があります。「-S」は大文字で入力するようにしてください。
#14 hostsファイルを編集してみよう
補足情報 dev.dotinstall.com:8000 に接続できない場合
ビルトインサーバーを起動していますか?
このレッスンでは、まず #11 PHPの学習をしてみよう と同じように PHP のビルトインサーバーを起動していなければなりません。起動していない場合は #11 の動画をもう一度ご覧になってみてください。
Apache のテストページが表示されたら
もし Apache のテストページが表示されたのなら、 URL の後ろに「:8000」をつけ忘れています。ビルトインサーバーを起動した状態で http://dev.dotinstall.com:8000 にアクセスしてみてください。