5
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrant+VirtualBox+CentOS7.2を用いたCakePHP環境構築(その1)

Last updated at Posted at 2017-02-20

はじめに

筆者は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の使い方については調べてください。

httpd.conf
# 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行を追記。

httpd.conf
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

5
19
1

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
5
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?