CakePHP3をインストールする
ComposerでCakePHP3をインストールします。今回は/var/wwwディレクトリにcake3sampleというディレクトリに作成し、そこにインストールします。
cd /var/www mkdir cake3sample cd cake3sample composer create-project --prefer-dist cakephp/app ./
CakePHP内のディレクトリに対して権限の設定を行います。
cp /var/www/cake3sample/config/app.default.php /var/www/cake3sample/config/app.php chmod 777 /var/www/cake3sample/logs/ chmod -R 777 /var/www/cake3sample/tmp/
CakePHPの設定ファイルを編集します。Security.saltというCakePHPで使用する暗号化メソッドの基底となる値を設定します。画像の赤線部分を適当なランダム文字列に変更して保存します。
vi /var/www/cake3sample/config/app.php
データベースを作成、CakePHP3の設定ファイルを編集する
mariadbのコンソールにログインし、データベースの作成、作成したデータベースに対しての権限の作成、usersという名前のテーブルを作成します。
mysql
-- データベースを作成する CREATE DATABASE cake3sample CHARACTER SET utf8 COLLATE utf8_general_ci; -- 作成したデータベースに対しての権限を作成する -- IDENTIFEIDの行の[password]はデータベースへアクセスする際のパスワードになるので適宜変更してください GRANT ALL ON cake3sample.* TO 'cake3sample'@'localhost' IDENTIFIED BY '[password]'; FLUSH PRIVILEGES; -- 作成したデータベースにusersというテーブルを作成する use cake3sample; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, created DATETIME, modified DATETIME ); exit;
作成したデータベース関係の情報をCakePHP3の設定ファイルに書き込みます。
vi /var/www/cake3sample/config/app.php
230行目付近のusername、password、databaseの項目の値を編集します。
Bakeでデータ管理機能のプログラムを自動生成する
Bakeと呼ばれるCakePHPの機能を使用して先ほど作成したusersテーブルのデータを登録/更新/一覧表示/削除する機能を生成します。
/var/www/cake3sample/bin/cake bake all users
自動生成に成功すると以下のような画面が表示されます。
SSL証明書を発行(拡張)する
先ほどお名前.comで追加したcake3サブドメインで使用可能なSSL証明書を発行します。今回は先にサブドメインを含まないドメインに対してのSSL証明書を発行していますので、拡張という形で証明書を再発行します。SSL証明書の発行時に80番ポートを使用するため、再発行のコマンドの前後でhttpdを停止、起動します。
systemctl stop httpd certbot certonly --standalone -d blog.imo-tikuwa.com/ssl -d cake3.blog.imo-tikuwa.com/ssl systemctl start httpd
certbotコマンド中に以下の画像ようなTUIの表示がされるので指示に従い、<Expand>を選択してEnterキーを押下します。<Expand>を押下してCongratulations!という表示とexpire on ~~という証明書の期限が表示されていれば正常に発行されています。
httpdのバーチャルホストを設定する
ブラウザでアプリケーションにアクセスできるようにするため、httpdのバーチャルホストの設定ファイルに追記します。
vi /etc/httpd/conf.d/httpd-vhosts.conf
以下を追記します。
<VirtualHost *:80> ServerName cake3.blog.imo-tikuwa.com/ssl DocumentRoot /var/www/cake3sample/ RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] <Directory /var/www/cake3sample/> AllowOverride All Options FollowSymLinks Require all granted </Directory> </VirtualHost> <VirtualHost *:443> ServerName cake3.blog.imo-tikuwa.com/ssl DocumentRoot /var/www/cake3sample/ SSLEngine on SSLCertificateFile /etc/letsencrypt/live/blog.imo-tikuwa.com/ssl-2016/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/blog.imo-tikuwa.com/ssl-2016/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/blog.imo-tikuwa.com/ssl-2016/chain.pem <Directory /var/www/cake3sample/> AllowOverride All Options FollowSymLinks Require all granted </Directory> </VirtualHost>