VirtualBox Vagrant CentOS7 PHP mySQL5.6 CakePHPのセットアップ方法

はてなブックマーク - VirtualBox Vagrant CentOS7 PHP mySQL5.6 CakePHPのセットアップ方法
LINEで送る
Pocket

私は普段、Dockerを使っている場合が多いですが、最近「VirtualBox+Vagrant+CentOS7+CakePHPのセットアップ方法」のレッスンもあったので

せっかくなので、記事にまとめました。

なんでCakePHPかと言うと、日本国内では、結構使われているようですね。本当はLaravelをオススメしたいですけどね。笑

LaravelでPHPを勉強した人は下記の記事を参照してください。

初めてでも確実に動くLaradockの起動までの手順(更新版)

生のPHPで基本を勉強した人はこちらの記事を参照してください。

PHPを教える人、勉強する人のためのPHPウェブアプリケーションサンプルコード

全体構成の概念図

これから、様々なロールが登場しますが、それの相互関係をここで簡単に図解しておきます。この図をイメージしながら、下記の手順を行ってください。

 

VirtualBoxのインストール

こちらの記事を参考してください。

VirtualBox

Vagrantのインストール

https://www.vagrantup.com/

本家いのサイトに行って、Vagrantをダウンロードして、インストールしてください。

ダウンロードをクリックしたら、次の画面に遷移します。

私がMacOSなので、MacOS用のパッケージをダウンロードします。皆さんは適宜自分のPCの環境に合わせて、ダウンロードしてください。

ダウンロードしてパッケージを開いて、vagrant.pkgをダブルクリックします。

あとは、案内通りに、インストールを完了させます。

インストール完了したら、MacのTerminalで[vagran]と言うコマンドが使えるようになります!

自分好きなEditorを開いて、/ホームディレクトリ/workspaceと言うフォルダに下記の二つのファイルを作ってください。

Vagranfileの用意

これはVagrantが起動するときに見るファイルです。

Vagrantの詳しい説明は本系のドキュメントに譲ります。

気をつけるところは、

下記の三行です。

  • config.vm.box = “bento/centos-7.3″ 他のVagrant Boxを使うと、違う挙動になるかもしれない
  • config.vm.provision :shell, :path => “provision.sh” 外部のprovision.shファイルを指定する、重要
  • config.vm.synced_folder “./”, “/vagrant”, :mount_options => [“dmode=777”, “fmode=777”] こう設定しないと、CakePHPプロジェクトフォルダが表示されない可能性があるので、開発段階ではこれにする。本番環境は適切に設定してください。
  • config.vm.network “private_network”, ip: “192.168.33.10” VMにアクセスするときのIPアドレス。ブラウザーで開くとき使う。

 

provision.shファイルの用意

上のVagramtfileの中にあるように、provisionを実行するときは、このファイルが実行されるようになります。

そうすると、CentOSのVMの中に、下記のコマンドが実行されます。

それぞれのコマンドの意味は、コメントで記述しています。

システムの環境はほとんどこれで完了します。

あと、実際にCentOSにログインして、mySQL関連の設定だけで終わります。

二つのファイルを用意できたら

/ホームディレクトリ/workspace で下記のコマンドを実行してください。

結構時間がかかります。あなたのPCの性能によっては、数十分かかることがあります。

 

CentOSでの作業

上のvagrant upが終われば、諸々必要なパッケージがインストール済みのVMが用意されて、立ち上げてある状態になっています。

続いて、VM下記のコマンドを実行して、CentOSのVMに入ります。

そうしましたら、まずCakePHPのプロジェクトを作ります。

CakePHP Projectを作成する

下記のコマンドを実行します。

あなたのPCの性能によって、数分から十数分かかります。

最後、フォルダの権限設定しますか?と聞かれて、Yと答えて、終わります。

終わりましたら、一回ブラウザーを開いて、「http://192.168.33.10/myapp」にアクセスしてみてください。

CakePHPができましたね!

でもデータベースの所に、赤いアイコンが付いています。データベースにはまだ正常にアクセスできないと言うことです。

それは当然で、まだmySQLのデータベースやユーザ全部まだ設定していないからです。

 

mySQLの設定

下記の手順を実行する前に一旦、VagrantのVM(CentOS)を一回再起動しましょう。

VM(CentOS)の再起動

下記のコマンドを実行してVMからログアウトします。自分のPCのTerminalに戻ります。

続いて、下記のコマンドを実行して、サイドVM(CentOS)を立ち上げて、ログインします。

mySQLを起動する

rootのパスワードを設定する

最初は、rootのパスワードが設定されていないです。

上のコマンドを実行すると、対話形式になります。

パスワードがないので、最初は、Enterキーを押して進みます。

その後、新しいパスワードを二回入力します。ここでrootのパスワードは[pass]にします。覚えていてください。

そのあとは、全部Yで答えて進んでください。

 

mySQLのコマンドを実行する

mysqlの対話環境に入って、データベースの作成や、ユーザ作成、権限付与をやります。

ここで、先ほど、設定したパスワード「pass」を入力してください。

続いて、これからのコマンドを実行して、新しいデータベースを作ります。

これは、上の手順で作成下CakePHPの設定に合わせる形にします。なんでCakePHPの設定に合わせるかと言うと、そうするとCakePHP側の設定を修正なしで、データベースに接続することができるようになるからです。

これから設定コマンドに使う情報を一旦下にまとめます。

  • user: my_app
  • user password: secret
  • database name: my_app

 

新しく作ったデータベースが一覧に入っているかどうかを確認します。

(私がcreate database my_appの後ろに「;」を忘れて、改行してから、入れても問題なく実行されますが、皆さんは忘れないでね。)

続いて、ユーザ(my_app)を作成します。

続いて、上のデータベース(my_app)にユーザ(my_app)がアクセスできるように、権限を付与します。データベース名もユーザ名もmy_appですが、混乱するかもしれませんが、全然別物です。

上のコマンドを実行したら、my_appと言うユーザがmy_appと言うデータベースに対して、secretと言うパスワードを使えばアクセスできると言うことになります。

この時点で、もう一回、ブラウザーをリロードすれば、データベースの所のアイコンが変わるはずです。

問題なく、データベースに接続もできましたね。

ここで、一旦Terminalに戻って「exit」でmysqlの対話環境から出ましょう。

お疲れ様です。これは一通り、VirtualBox+Vagrant+CentOS7+PHP+mySQL+CakePHPのセットアップができました!

 

CakePHPを使ったアプリケーション開発

ちょっとだけ、PCのMacの方のソースコードを修正して、VMのCentOSの方に反映されます。

先ほどのEditor(VS Code)そのまま使います。ちょっと適当に、日本語(川島ができた!)を入れてみます。

ブラウザーの方で、ページがリロードすると、変更が反映されていますね!

これで、CakePHPを楽しく開発してきましょう!笑

まとめ

いかがでしょうか?できましたでしょうか?

Dockerを使って開発環境を構築するのも良いですが、場合によってはVagrantを使うのも良いかもしれません。何れにしても、少しインフラの知識が必要ですね。

では、また次のトピックの時まで!

はてなブックマーク - VirtualBox Vagrant CentOS7 PHP mySQL5.6 CakePHPのセットアップ方法
LINEで送る
Pocket

Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close