Vagrant
Vagrant が何かに関しては検索すれば幾らでも情報が出てくるのでここでは述べない。
まずは Vagrant をインストールする。 公式からダウンロードしてインストールすれば良い。 VirtualBox も入っていなければインストールしておく。
Ubuntu 16.04 LTS に関しては公式に box が提供されているのでそれを使用する:
vagrant init ubuntu/xenial64
これでカレントディレクトリに VagrantFile
が出来るので、この中の以下の行のコメントアウトを外す:
" VM 上の 80 番ポートへのアクセスをホスト側の 8080 番ポートに変換する設定. 8080 が使用済なら適宜変更する
config.vm.network "forwarded_port", guest: 80, host: 8080
その後以下のコマンドを叩いて VM を起動する:
vagrant up --provider virtualbox
以下のコマンドで VM に SSH 接続する:
vagrant ssh
試しに Apache を導入し動作確認を行う:
sudo apt install apache2
http://localhost:8080/
にアクセスし、正しく Ubuntu の Apache テストページが表示されるのを確認する。
PHP 7.0
PHP 7.0 の環境を構築する。 Ubuntu 16.04 における PHP 7.0 関連の項目を検索するには以下のコマンドを叩く:
apt search php7.0
まとめて必要そうなのを入れてしまう:
sudo apt install libapache2-mod-php7.0 php7.0 php7.0-cli php7.0-intl php7.0-json php7.0-mbstring php7.0-sqlite3
/* sudo apt install php7.0-mysql */
/* sudo apt install php7.0-pgsql */
デフォルトの DocumentRoot が /var/www/html
なのでそこに試しに PHP ファイルを置いてみる:
cd /var/www/html
sudo mv index.html index.html.old
sudo vi index.php
index.php
の内容は以下とする:
<?php
phpinfo();
http://localhost:8080/
にアクセスし、正しく phpinfo
が表示されるのを確認する。
DocumentRoot を /vagrant/xxx にする
デフォルトの DocumentRoot のままだとホスト側に /vagrant
がマウントされる仕組みを活かすことが出来ないので変更する。
/vagrant/xxx
だが xxx
の部分は各自適当なプロジェクト名とする:
sudo vi /etc/apache2/sites-available/000-default.conf
以下 DocumentRoot を編集しアクセス許可を与える:
DocumentRoot /vagrant/xxx
<Directory /vagrant/xxx>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
テスト用のページを用意しておく。
先程の phpinfo
再利用でよいだろう:
mkdir /vagrant/xxx
sudo mv /var/www/html/index.php /vagrant/xxx
sudo service apache2 restart
http://localhost:8080/
にアクセスし、正しく phpinfo
が表示されるのを確認した上で DOCUMENT_ROOT
が /vagrant/xxx
になっているのを確認する。
mod_rewrite 有効化
CakePHP 3 では mod_rewrite
を使用しているが Ubuntu の Apache のデフォルトでは有効になっていないので以下で有効にしておく:
sudo a2enmod rewrite
sudo service apache2 restart
CakePHP 3 インストール
先程の index.php
は不要なので消しておく:
rm index.php
CakePHP 3 のインストールに関しては公式のドキュメントが素晴らしいのでこれに従っておけば問題ない。
ただ composer create-project
に zip
と unzip
が必要なようなので以下で入れておく:
sudo apt install zip unzip
あと composer create-project
で出来るプロジェクトがディレクトリに含まれているので (この例だと /vagrant/xxx
のこと) /vagrant
直下で composer create-project
するのがいい。
尚 DB ばデフォルトで MySQL を使用するように config/app.php
に書かれているので例えば SQLite を使うつもりでそのまま http://localhost:8080
にアクセスしても「MySQL のドライバーが見つからない」といったエラーになってしまう。
これに関しては config/app.php
を以下のように SQLite 用に直せば良い:
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Sqlite', // Sqlite にする
'persistent' => false,
'host' => 'localhost',
'username' => '', // 空にする
'password' => '', // 空にする
'database' => 'xxx.sqlite', // 適当な SQLite ファイル名を書く
... (省略) ...
'test' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Sqlite', // こっちも Sqlite にしないと駄目
'persistent' => false,
'host' => 'localhost',
'username' => '', // 空にする
'password' => '', // 空にする
'database' => 'test.sqlite', // 適当な SQLite ファイル名を書く
... (省略) ...
これで http://localhost:8080
にアクセスしカラフルな Get the Ovens Ready ページが表示されれば開発環境構築完了である。