初心者向け cakephp cakephpフレームワークの導入 第1回
Windowsマシンにcakephp v4.3.2を導入します。
1.プロジェクトを作成
Composerと使ってCakePHPアプリケーションのプロジェクトを作成します。
コマンドプロンプトで下のコマンドを実行すると、コマンドを実行したディレクトリに、プロジェクト名のディレクトリが作成されます。(ここで作成しましたプロジェクト名のディレクトリをプロジェクトディレクトリと呼びます。)
「php composer.phar create-project --prefer-dist cakephp/app プロジェクト名」
補足
1.cakephpは、php拡張モジュールのopensslとmbstringとintlを必要とします。
- 「The openssl extension is required for SSL/TLS protection but is not availab
le.」が表示された場合は、php.iniで、extension=extension=php_openssl.dllの行頭の「;」を削除し、opensslを有効にします。 - 「the requested PHP extension intl is missing from your system.」が表示された場合は、php.iniで、extension=php_intl.dllの行頭の「;」を削除し、intlを有効にします。
- 「the requested PHP extension mbstring is missing from your system.」が表示された場合は、php.iniで、extension=php_mbstring.dllの行頭の「;」を削除し、mbstringを有効にします。
2.Set Folder Permissionsの設定
上のコマンドを実行すると、途中で「Set Folder Permissions ? (Default to Y) [Y,n]? 」が表示されましたので、「Y」と入力しました。その後「Updated Security.salt value in config/app.php」が表示されました。
2.cakephpコンソールを起動
- コマンドプロンプトで、プロジェクトディレクトリに移動して、コマンド「php bin/cake.php」を実行します。
- 正常に起動した場合、「Welcome to CakePHP v3.4.2 Console」が表示されます。
3.cakephpビルトインサーバを起動
- コマンドプロンプトで、カレントディレクトリをプロジェクト名のフォルダに移動して、コマンド「php bin/cake.php server」を実行します。
- 正常に起動した場合、「Welcome to CakePHP v3.4.2 Console」が表示されます。
- ブラウザを開き「http://localhost:8765/」にアクセスすると、cakephpのページが表示されます。
補足
- ビルトインサーバは開発サーバとして使用し公開しません。
- ホスト名やポートを指定する場合は、下の例のようなコマンドを実行します。すると「http://127.0.0.1:5973」でアクセスできるようになります。
4.Apacheでcakephpを使う
1.URLリライティングができるように設定
cakephpはデフォルトでmod_writeを使用する設定になっています。そのためmod_writeが使用できるようにApacheを設定します。
1-1.mod_rewrite がロードされるように設定
Apacheのhttpd.confの下の行の先頭の「#」を削除します。
LoadModule rewrite_module modules/mod_rewrite.so
1-2..htaccessで設定の上書きができるように設定
プロジェクトを使用するドキュメントルートディレクトリの設定を、.htaccessで上書きできるように、 Apacheのhttpd.confで「AllowOverride All」を設定します。
(例)
<Directory />
Options FollowSymLinks
AllowOverride All
# Order deny,allow
# Deny from all
</Directory>
1-3.Apacheのhttpd.confを変更後、Apacheを再起動
2..htaccessの設定
2-1.プロジェクトディレクトリの.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
2-2.ドキュメントルートディレクトリの.htaccess
<IfModule mot_write.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
プロジェクトディレクトリのindex.phpにアクセスします。
cakephpページが表示されます。