CakePHPのインストールから初期表示まで

PHPプログラマーの松永です。

今回は、CakePHPのインストールから初期表示までの設定方法方法をご紹介します。 PHPフレームワークの導入の参考になれば幸いです。

公式サイト: CakePHP - Build fast, grow solid

目次

環境

  • 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内のDatasourcesdefault

  • 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フレームワークを利用したスクラッチ開発に着手してみては如何でしょうか。

この記事を書いた人 matsunaga 自宅に音楽スタジオがあるとこを夢見るPHPエンジニア
TOP