Vagrant」カテゴリーアーカイブ

MacBookでVagarnt+Apache+PHP7.0を使った開発環境の構築

表題の通りです。メモになりますが下に書いていこうと思います。

とりあえず環境を作ります。

環境の導入

virtualboxのインストール

以下公式サイトから、virtualboxをダウンロード→インストールを行います。
なお、最新版で構いません。
https://www.virtualbox.org/

vagrantのインストール

以下公式サイトから、vagrantをインストールします。
なお、2017/02/26時点の最新環境だとプライベートIPで接続できなくなる問題が自分の環境では発生したので、最新版ージョンではなく、1.8.6の環境を落としてきました。
※最新版についての記事はこちら参照
https://www.vagrantup.com/
DOWNLOAD→ARCHIVESから過去バージョンをインストールできます。

Mac上にVagrantファイルを作成

virtualboxとvagrantのダウンロードとインストールが完了したらMac上に環境を構築します。
※ファイルの作成位置などは、自分のやりやすいところに作ってください。

Macのターミナルから

$ cd ~
$ mkdir vagrant
$ cd vagrant
$ mkdir centos71
$ cd centos71

CentOS7.1環境のパッケージをVagrantのBoxに追加

$ vagrant box add centos7.1 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.1/vagrant-centos-7.1.box
$ vagrant box list

Vagrantの初期化でファイルを作成

$ vagrant init centos7.1

作成されたVagrantファイルの編集

$ vi Vagrantfile

一旦はプライベートIPアドレスの解放のみ、以下のようにアンコメントします。

# config.vm.network "private_network", ip: "192.168.33.10"
↓
config.vm.network "private_network", ip: "192.168.33.10"

完了したら:wqにて保存してファイルを閉じる
vagrantを起動させます。

$ vagrant up

起動したらまずPingが通るか確認
※ここで通らなくても、Firewall等が起動していて通らないことがあるかもなので、できなくても一旦進めちゃっていいです。

$ ping 192.168.33.10

vagrant sshにて、ログインを行います。

$ vagrant ssh
[vagrant@localhost ~]$ 

【広告】

Centos上での環境構築

とりあえずしばらくsudo連打することになるので、スーパーユーザになって操作します。
ソフト全体のupdate

# yum update

Localeを日本に設定

# localectl status //ロケールの確認
# localectl list-locales | grep -i ja //日本語のロケールの確認
# localectl set-locale LANG=ja_JP.utf8 //日本、UTF-8に変更
# localectl set-keymap jp106 //キーマップをセット

SELinuxが無効になっているか確認
多分無効になっているはず

# getenforce
Disabled

firewalld稼動確認
多分稼動していないはず

# firewall-cmd --state
not running

// 稼動していた場合
# systemctl stop firewalld

■PHP7.0インストール
デフォルトでインストールすると7.0系はインストールできないので、EPELとRemiリポジトリからインストール

// EPELリポジトリ
# yum install epel-release

// Remiリポジトリ
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

// PHP7.0インストール
# yum install --enablerepo=remi,remi-php70 php php-mbstring php-pdo php-gd

// インストールされたバージョン確認
# php -v

■httpdインストール→起動

# yum install httpd

// インストール確認
# httpd -v

// とりあえず稼動させる
# service httpd start

// 自動起動設定にしておく
# chkconfig httpd on

■ホストから疎通できるか確認
以下URLからApacheの初期ページが表示できるか確認
http://192.168.33.10

ホストPCにあるフォルダを共有する

Macに戻ってVagrantとフォルダ共有設定を行う。
なお、ディレクトリは自分の好きなように作ってください。

■共有用のディレクトリ作成

$ cd ~
$ mkdir develop
$ cd develop
$ mkdir php
$ cd php
$ mkdir testProject
$ cd testProject
$ pwd
/Users/yoda56/develop/php/testProject
$ touch index.php
$ vi index.php

□index.phpの中身

<?php
phpinfo();

■Vagrantfileの設定

$ cd ~/vagrant/centos71/
$ vi Vagrantfile

□以下を追加

// 他の言語等もこの配下で開発するので、develop階層で共有
// 左がホスト、右がゲストになります。
config.vm.synced_folder "/Users/yoda56/develop", "/home/develop"

■Vagrant再読み込み

$ vagrant reload

// ssh接続
$ vagrant ssh

再度CentOS側の設定

■共有ファイルが存在するか確認

ls -la /home/develop/php/testProject/

■virtualhostの設定

$ su
# cd /etc/httpd/conf.d
# touch vhosts.conf
# vi vhosts.conf

□vhosts.confの記載内容

Listen 8000
<VirtualHost *:8000> 
  DocumentRoot /home/develop/php/testProject
  <Directory /home/develop/php/testProject>
    Allowoverride All
    Require all granted
  </Directory>
</VirtualHost>

■Apache再起動

// 記述チェック
# httpd -t
Syntax OK
// 再起動
# service httpd restart

■確認
以下URLから、phpinfoが表示されることを確認
http://192.168.33.10:8000

phpinfoが表示されれば基本的なローカル開発環境の設定は完了です。
他にもMYSQLとかがありますが、また別の機会で

ではでは

【広告】

Vagrant1.9.1にてハマる

Macの開発環境を新しく変えようと思ってVagrant最新版突っ込んだら見事にハマりました。。

ハマったところ

いつものようにCentOS7.0環境とapache使い、フォルダ共有する形で開発環境を整えようとしたら192.168.33.10でアクセスができない

ハマった環境

vagrant 1.9.1
VirtualBox 5.1.14
インストールしたLinux→CentOS 7.1

原因

Vagrantのバージョンが原因、1.9.1→1.8.6に落としたところアクセスができるようになった。

やったこと

SE Linuxが無効になっていること

$ getenforce
Disabled

firewallが無効になっていること(ローカル開発環境なので入にしておく必要がない)

$ firewall-cmd --state
not running

おかしいと思ったのでPingが通るかチェック

ping 192.168.33.10

通らない..

色々探し回ったのですが、特にこれといった解決策が見つからず、とりあえずメインのWindowsマシンのVagrantのバージョンを入れてみたら通りました。

ネットに書いてある通りにやっても動かないという若干罠なので気を付けたい

ちなみになぜ動かないのか追っていない、何が変わったのかなぁ?