PHPプログラマーの松永です。
今回は、CakePHPのインストールから初期表示までの設定方法方法をご紹介します。 PHPフレームワークの導入の参考になれば幸いです。
目次
環境
- OSCentOS6.9
- VirtualBoxとVagrantを使用し、CentOSを立てています。
CakePHPのインストール
カレントディレクトリ
CakePHPをインストールするディレクトリはどこでも問題ございません。
今回の記事用といたしまして下記ディレクトリにCakePHPをインストールすることといたします。
/var/www/html/cakephp/www/
Composerを使用したCakePHPのインストール
CakePHPのインストールにはComposer
を使用いたします。
公式サイト: Composer
Composerのダウンロード
curl -sS https://getcomposer.org/installer | php
パスが通っている場所に移動
composer XXXXXX
という形でコマンドを実行したいので、ダウンロードしたComposerをパスが通っている場所に移動いたします。
sudo -s mv composer.phar /usr/bin/composer
CakePHPのインストール
下記コマンドを実行することでCakePHPのインストールとプロジェクトの作成を行います。
CakePHPをインストールするカレントディレクトリの確認
pwd
/var/www/html/cakephp/www
Composerを利用したCakePHPのインストール
composer create-project --prefer-dist cakephp/app ajikeproject
※ ajikeproject
は作成するプロジェクト名に変更してください。
上記コマンドを実行中に
Set Folder Permissions ? (Default to Y) [Y,n]?
が表示されます。
「CakePHPが使用するフォルダのパーミッションを自動で設定するかどうか」の選択肢になりますのでY
を入力しパーミッションの設定をCakePHPに任せます。
Set Folder Permissions ? (Default to Y) [Y,n]? Y
上記Y
を実行すると、下記が表示され、正常にパーミッションの設定を行ったファイルが明確になります。
Permissions set on /var/www/html/cakephp/www/ajikeproject/tmp/cache
Permissions set on /var/www/html/cakephp/www/ajikeproject/tmp/cache/models
Permissions set on /var/www/html/cakephp/www/ajikeproject/tmp/cache/persistent
Permissions set on /var/www/html/cakephp/www/ajikeproject/tmp/cache/views
Permissions set on /var/www/html/cakephp/www/ajikeproject/tmp/sessions
Permissions set on /var/www/html/cakephp/www/ajikeproject/tmp/tests
Permissions set on /var/www/html/cakephp/www/ajikeproject/tmp
Permissions set on /var/www/html/cakephp/www/ajikeproject/logs
Updated Security.salt value in config/app.php
生成されたファイルの確認
CakePHPのインストールが完了いたしますと
/var/www/html/cakephp/www
配下にajikeproject
が生成されています。
ドキュメントルートの設定
ドキュメントルートはプロジェクト内のwebroot
に設定いたします。
httpd.confの設定
sudo vim /etc/httpd/conf/httpd.conf
listen 8004
<VirtualHost "*:8004">
ServerName cakephp
DocumentRoot "/var/www/html/cakephp/www/ajikeproject/webroot"
<Directory "/var/www/html/cakephp/www/ajikeproject/webroot">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
</Directory>
</VirtualHost>
※ 今回はバーチャルホスト環境で行っております。
※ 設定の際はご自身の環境に合わせ設定をおこなってください。
httpd再起動
httpd.conf編集後、設定を反映させるためにhttpdを再起動いたします。
sudo service httpd restart
表示確認
現時点でブラウザからアクセスするとWelcome to CakePHP 3.5.2 Red Velvet. Build fast. Grow solid.
などが表示されます。
ただし、表示されているのみになり、このままでは「データベースを使用したCakePHP」としては機能することができません。
「データベースを使用したCakePHP」として使用するにはデータベース設定を行う必要があります。
データベース接続設定
MySQLの
- インストール
- 設定
- MySQLが起動していること
- cakephpで使用するデータベース作成
が完了していることを前提としております。
データベース接続設定は、
/var/www/html/cakephp/www/ajikeproject/config/app.php
で設定いたします。
上記、app.php内のDatasources
→default
の
- username
- password
- database
に作成済みのMySQLユーザー名、データベース名を設定いたします。
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'dbusername', // こちらを変更いたします。
'password' => 'dbpassword', // こちらを変更いたします。
'database' => 'dbdatabase', // こちらを変更いたします。
'encoding' => 'utf8',
'timezone' => 'Asia/Tokyo', // こちらを変更いたします。
'flags' => [],
'cacheMetadata' => true,
'log' => false,
※ timezone
の変更も行っております。
上記設定をし、ブラウザからアクセスするとDatabase
のエラー表示がなくなり、データベースに正常に接続できていることがわかります。
まとめ
Wordpressとは違い、composerを使用したインストールなど、CMSよりも敷居が高く感じますが、慣れてしまえばルーチン作業としてインストールすることが可能になります。
今回の記事を通じてCakePHPのインストールへの苦手意識がなくなるお手伝いができれば幸いでございます。
PHPフレームワークを利用したスクラッチ開発に着手してみては如何でしょうか。