php7.3 + phalcon 3.4.3 + mac (macports)
これをmacにインストールがようやくできたのでメモ
ちなみに、Windowsユーザさんは、
https://github.com/phalcon/cphalcon/releases/tag/v3.4.3
こちらのDLLをもっていけばよいです。
macports のインストール
Macでは、
macportsが必要です。最近はhomebrewがメインになってまして、ちょっと前までもphalconはhomebrewでインストールできてました。だがしかし、ここにきてmacportsで提供に変更されてます。
※たぶん開発メンバーの方の嗜好性がでているのか。。。
インストールは、以下からmacportsのpkgをダウンロードし、インストールします。
https://www.macports.org/install.php
phalconをインストール
phalconのHPに記載が追加されていました。
https://phalcon.io/en-us/download/linux
※1973/09/24 時点のスクショ 実はちょっとウソ発見
パッケージ名検索するとちょっと違いました。
portは、searchできるので、phalconで調べると名前がphp73-phalcon3ですね。
port search phalcon
php73-phalcon3 @3.4.4 (php)
full stack PHP framework written as an extension
sudo port install php73-phalcon
ではなくて
sudo port install php73-phalcon3
これでインストールできます。
※php7.3本体は、homebrewでもいいのですでにインストールしてたらそれでいいです。
で、インストール先はどこじゃ!って調べてたらやっとみつかった。
/opt/local/lib/php73/extensions/no-debug-non-zts-20180731
ここでphp-cli(phpのコマンドラインバージョン)のバージョンを確認
php -v
PHP 7.3.9 (cli) (built: Sep 14 2019 18:07:55) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.9, Copyright (c) 1999-2018, by Zend Technologies
7.3であることを確認
(2020/06/19 追記)
最新のcatalinaだとphpが/usr/bin/php にある
/etc/php.iniを参照しようとしているが、デフォルトはファイル無し。でここに作ろうとしても、最近のMacはセキュリティががんがんにきついので、
/usr/local/bin/ ここにphpを起きたい。
ということで、php -v で php7.3であっても、brewでphp7.3をインストールする。
そして、
/usr/local/bin/にシンボリックリンクを作成する。
cd /usr/local/bin
ln -s /usr/local/Cellar/php@7.3/7.3.19/bin/php .
こうすると、php –info でphp.iniの場所をみると、編集可能な場所が見える。
ーーー
もし違ってphp7.1とかであれば、homebrewでもいいので、php7.3にします。
php7.3にする
homebrewだとphp@7.3という名前で存在しているので、それをインストールします。ちなみに、パッケージの確認はsearch
brew search php@7.3
==> Formulae
php@7.3 ✔
あるとおもいます。ので、インストールします。
brew install php@7.3
いったんターミナルを閉じて開き直して
php -v
で、php7.3になってない場合は、手動で切り替え。
以下のコマンドで切り替えできます。
brew unlink php@7.1
brew link php@7.3
もう一つの方法
brew unlink php@7.3
brew link php@7.3
こうすると以下のメッセージが表示される。
echo ‘export PATH="/usr/local/opt/php@7.3/bin:$PATH"’ >> ~/.zshrc
echo ‘export PATH="/usr/local/opt/php@7.3/sbin:$PATH"’ >> ~/.zshrc
これは、macのcatalinaでは、通常のshellが、zshという種類のshellで動作しているので、そのシェル起動時に読み込まれるファイルに2行追加しなさいということです。
言われるままに実行してみてください。
cd
ls -la
.zshrcというファイルができているとおもいます。
中身を確認したい場合は、
cat ./.zshrc
で確認してみてください。
これは、shellが実行されるときに読み込まれる=macでいうとターミナルが起動時に読み込まれるので、ターミナルを一旦閉じて新たに開けばbrewでインストールしたphpを参照できます。
なぜこんなことをするかというと、
をmac初期だとphp.iniファイルが/etc/php.ini
を見てるので、ここは、macのセキュリティ上、勝手に触れない領域なので、
/usr/local/
という、Linuxでも同じですが、ユーザが利用して良いところに持っていく必要があるということです。
php.iniに追加
composerが依存関係とか気にしてくれるのでphpのコマンドライン(CLIという)でphalconをちゃんと認識させる必要があります。
で、php.iniの場所を探します。 php –info | grep php.iniとその結果
php –info | grep php.ini
Configuration File (php.ini) Path => /usr/local/etc/php/7.3
Loaded Configuration File => /usr/local/etc/php/7.3/php.ini
Loaded Configuration File => /usr/local/etc/php/7.3/php.iniここにあることがわかります。
そこに
設定を追加なんですが、最近のphp.iniは、同じディレクトリに、conf.d/というディレクトリが用意されており設定を分割して管理できるようになっています。(ちなみに、設定の読み込みの順番を指定可能だがここでは省略)
拡張子は、iniであれば自動で読み込まれます。
実際になにをやるかというと
/usr/local/etc/php/7.3/conf.d/
ここに
phalcon.ini
というファイルを作り、その中に
extension=/opt/local/lib/php73/extensions/no-debug-non-zts-20180731/phalcon.so
の記述を追加します。
それを以下のコマンドでできます。
(文字列を吐き出してそれをphalcon.iniファイルに書き込む)
echo "extension=/opt/local/lib/php73/extensions/no-debug-non-zts-20180731/phalcon.so" > /usr/local/etc/php/7.3/conf.d/phalcon.ini
コマンドラインでphpにphalconが設定されていることを確認する
php –info | grep phalcon
/usr/local/etc/php/7.3/conf.d/phalcon.ini
phalcon
phalcon => enabled
phalcon.db.escape_identifiers => On => On
phalcon.db.force_casting => Off => Off
phalcon.orm.cast_on_hydrate => Off => Off
phalcon.orm.column_renaming => On => On
phalcon.orm.disable_assign_setters => Off => Off
phalcon.orm.enable_implicit_joins => On => On
phalcon.orm.enable_literals => On => On
phalcon.orm.events => On => On
phalcon.orm.exception_on_failed_save => Off => Off
phalcon.orm.ignore_unknown_columns => Off => Off
phalcon.orm.late_state_binding => Off => Off
phalcon.orm.not_null_validations => On => On
phalcon.orm.update_snapshot_on_save => On => On
phalcon.orm.virtual_foreign_keys => On => On
こんな感じで表示されたらOKです。