CakePHP学習用個人備忘録
ゴール
XAMPP環境にCakePHPをインストールして、デフォルトページを表示するところまで
ポイント
intl拡張機能のエラー解消
環境
Mac
ローカル開発環境はXAMPP
PHP/Composer/インストール済
XAMPPインストール
MacOS用のダウンロードページからPHPバージョンを選択し、遷移先画面で末尾がinstaller.dmg
のリンクをクリックしてDL(vmのほうではないので注意)
https://sourceforge.net/projects/xampp/files/XAMPP%20Mac%20OS%20X/
インストールが完了すると勝手にコンパネが出てきます。
この時点でApacheが起動しているので以下にアクセスしてXAMPPのホーム画面が表示されればOK
http://localhost/dashboard/
(表示されない時はコンパネのManage ServerタブをクリックしてApacheをstartすればOK)
CakePHPをインストール
アプリケーションフォルダ内にXAMPP
フォルダが出現しています。公開フォルダであるhtdocs
へ移動します。
cd /Applications/XAMPP/htdocs
ターミナル上でhtdocsディレクトリに移動したら、プロジェクトディレクトリの生成とCakePHPのファイルをダウンロードします。
例でプロジェクト名(ディレクト名)はmessagesappにします。(好きなように決めてください)
composer create-project --prefer-dist cakephp/app messagesapp
以下でCakePHPのデフォルトページが表示されればOKです。(プロジェクト名は指定した名称に変更してください)
http://localhost/dashboard/messagesapp
intl拡張機能のエラー解消
【エラー文】
概要: intl拡張機能が読み込まれていないのでPHPを調整して設定してください。
Fatal error: You must enable the intl extension to use CakePHP. in /Applications/XAMPP/xamppfiles/htdocs/messagesapp/config/requirements.php on line 31
【原因と解決策】
・HomebrewがHomebrew/php
をdeprecated(廃止)しており、
MacのデフォルトのPHPが使われていため、PHPを再インストールしてみる。
・MacPortsというパッケージ管理システムでintl拡張機能をインストールしてみる。
PHPを再インストール
XAMPPのPHPバージョンを確認(ページ最上部)
http://localhost/dashboard/phpinfo.php
インストールできるPHPのバージョンを確認します。
brew search php
*結果*
==> Formulae
brew-php-switcher php-code-sniffer php@7.2 php@7.4 phplint phpmyadmin phpunit
php ✔ php-cs-fixer php@7.3 phpbrew phpmd phpstan
==> Casks
eclipse-php netbeans-php
XAMPPのバージョンにあったPHPをインストールします。
brew install php@7.4
格納先を確認
MacのPHPのパスから、今回インストールしたPHPのパスが表示され、インストールしたPHP適応されていることを確認できます。
which php
*結果*
/Applications/XAMPP/xamppfiles/bin/php
バージョンを確認
php -v
*結果*
PHP 7.4.16 (cli) (built: Mar 12 2021 04:42:02) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
intl拡張機能をインストール
現在、intlをHomebrewでダウンロード出来ないので、MacPorts
というパッケージ管理システムでインストールしていきます。
以下記事を参考にMacPortsをインストールしましょう。MacPortsは/opt/local/以下にインストールされます。
https://webkaru.net/dev/macports-download-install/
2.
パスを通します。
設定ファイルを開く
vi ~/.bash_profile
以下を追記
PATH=/opt/local/bin:/opt/local/sbin:$PATH
MANPATH=/opt/local/man:$MANPATH
export PATH
export MANPATH
読み込ませる
source ~/.bash_profile
3.
アップデートします。
(MacPorts本体の更新とパッケージリストの更新を同時に行います。MacPortsを使う前に実行する癖をつけるといいらしいです)
sudo port selfupdate
4.
インストールしたPHPと同じバージョンのintl拡張機能をMacPortのコマンド(port)でインストールします。
sudo port install php74-intl
XAMPPのphp.iniを編集
1.
intlをインストールしたことで以下の場所にフォルダが生成されますのでパスを取得します。
/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-********
2.
XAMPPのphp.iniに2行を追記します。
********は上記で調べたフォルダ名に差し替えてください。
extension=/opt/local/lib/php74/extensions/no-debug-non-zts-********/intl.so
extension=/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-********
php.iniの格納先は以下URLのLoaded Configuration File項目に記載されています。
http://localhost/dashboard/phpinfo.php
Apacheを再起動してアクセス
XAMPPのコンパネでApacheを再起動していかにアクセスしてデフォルトページが表示されればOKです。
http://localhost/messagesapp/
参考記事
https://hacknote.jp/archives/56258/
https://webkaru.net/dev/macports-download-install/
https://www.karakaram.com/macports-howto/#install