はじめに
筆者はweb開発初心者です。様々な記事を参考にしながらCakePHPで作ったサイトをなんとかローカルで表示するまでに至ったので、手順をまとめてみました。初心者目線でつまづいたところは丁寧に書くようにしたので、かなり初心者向きの内容になっていると思います。
間違いがあったら是非コメントの方に、よろしくお願いします。
その1ではphpで作ったページをブラウザから表示できるようにするまでの設定を行います。
また記事執筆に至り、以下の記事を参考にさせていただきました。
http://qiita.com/tiwu_official/items/f135e6b6fbbe3ec6aa54
http://qiita.com/deconcepter/items/bc90d6c2080eb19e9ff7
対象とする読者
- Web開発の経験は長くない
- CakePHPで作ったページをローカルで表示する環境を作りたい
- Vagrantを使ってみたい
1. Vagrant・VirtualBoxの導入
・Vagrantのダウンロード・インストール
公式サイトから最新版を導入
https://www.vagrantup.com/downloads.html
・VirtualBoxのダウンロード・インストール
公式サイトから最新版を導入
https://www.virtualbox.org/wiki/Downloads
2. boxの導入と仮想マシンの作成
・導入するboxを選ぶ
以下のサイトから導入するboxを選ぶ
http://www.vagrantbox.es/
Vagrantでは新しく環境構築する際の雛形としてboxというものを使用する。ここではminimalのcentOS7.2を使用するが、すでにインストール済みの構成をそのまま使うことも可能。構築した環境を自分でbox化することもできる。
・boxを追加する
vagrant box add <box名> <url>
box名は自由につけて良く、urlは上記のサイトから選んだものを使う。
(例)
vagrant box add centOS7-2 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
・適当な場所に作業用ディレクトリを作る
centOSdirなどでok。
以降基本的にこのディレクトリで操作を行う。
3. 仮想マシンへのログイン
・Vagrantfileを作成する
$ vagrant init <box名>
カレントディレクトリに、指定したboxをもとにVagrantfileを作る。
Vagrantfileとは、構築する仮想マシンについての諸々の設定をRubyで記述したfileと捉えておけば良い。
(例)
$ vagrant init centOS7-2
・仮想マシンを起動する
$ vagrant up
カレントディレクトリにあるVagrantfileを元に仮想マシンを起動する。
・仮想マシンにssh接続する
$ vagrant ssh
ちなみに、以下のコマンドを実行すると、どのディレクトリからでも仮想マシンにssh接続できるようになる。
$ vagrant ssh-config --host NAME >> ~/.ssh/config
$ ssh NAME
(例)
$ vagrant ssh-config --host centOSssh >> ~/.ssh/config
$ ssh centOSssh #どこからでもログイン可能
仮想マシンからログアウトする際は、exit
でログアウトできる。
4. httpd、phpの設定
・phpとApacheのインストール
※以降の作業で、sudoをいちいちつけるのが面倒なら、su
を実行し、rootにログイン。passwordはvagrant。
$ sudo yum install http
$ sudo yum install php php-cli php-common php-gd php-in tl php-mbstring php-mysql php-pdo
これでApacheサーバーを立てること、phpを表示することが可能になる。ただしこのままではホストマシンから仮装マシンのサーバーに接続できないため、いったんexit
してVagrantfileを書き換える必要がある。
・Vagrantfileの書き換え
Vagrantfileから
# config.vm.network "private_network", ip: "192.168.33.10"
という行を見つけ、コメントアウトを外す。
これで自分のPC(ホスト側)と、そこで構築した仮想マシン(ゲスト側)との間でのみ、通信が行えるようになる。
Vagrantfileを更新した際は
$ vagrant reload
を実行して更新を反映させる。
・Apacheサーバーの起動
$ systemctl start httpd #httpdの起動
$ systemctl enable httpd #httpdの自動起動設定
なお、centOS6.x系の場合はコマンドが異なるため調べてください。
・ホストマシンのブラウザからアクセス
初期設定では/var/www/html
がルートディレクトリになっているため、そこにindex.html
(内容はなんでも良い)を作ってやれば、http://192.168.33.10/
でブラウザからアクセスできるようになる。
cd /var/www/html
sudo vi index.html
ここで、http://192.168.33.10/
からアクセスできるかどうかを確認。
できない場合には、以下を試す。
1.pingで反応がない場合
ホスト側からping 192.168.33.10
を実行
この時点で反応がない場合は、ゲスト側でsystemctl restart network
を実行し、network.serviceをリスタートする。
2.pingで反応はあるがページが表示されない場合
(a)httpdの状態確認、(起動していない場合は)起動
$ systemctl status httpd #httpdの状態確認
$ systemctl start httpd #httpdの起動
(b)/var/www/html
にファイルが正しく配置されているか確認
(c)ファイアウォールの無効化
$ systemctl stop firewalls
(d)Vagarntfileの設定確認
(e)複数の仮想マシンが起動していないかを確認
・ApacheにPHPを対応させる
sudo vi /etc/httpd/conf/httpd.conf
でhttpd.confを開き、AddTypeで検索。
viの使い方については調べてください。
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
この下に下記2行を追記。
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
・phpの表示を確認
先ほどのindex.htmlをindex.phpに書き換え、適当なphpプログラムを書く。
ブラウザからアクセスして、phpが実行できていることを確認。
次回へ続く
その1は以上になります。単にPHPをローカルで表示するための設定はこれで終了です。
その2ではCakePHPを使って作ったサイトを表示するための設定、複数サイトをローカルで表示するための設定を行なっていきます。
その2→http://qiita.com/ymt193/items/868c7e000803d3290bc9