ラベル FuelPHP の投稿を表示しています。 すべての投稿を表示
ラベル FuelPHP の投稿を表示しています。 すべての投稿を表示

2020年10月8日木曜日

FuelPHP1.8.2のSessionをレンサバで動かす

特に1.8.2はPHP7.3に対応してくれているのでFuelPHPで結構サイトを作成していたものとしては助かります。

個人的にはORMの方は問題なかったのですが、Session周りで困ったことが起こりました。
こんなエラーメッセージがログに残ります。


shutdown - Fuel requires Sodium support in PHP. Either use PHP 7.2+, install the libsodium PECL extension, of the sodium-compat composer package!


1.8.2でSessionでsodiumというのを利用するようになってまあそれがないという事なんですが、windowsとかroot持っているサーバなんかだとphp_libsodium.dllとかlibsodiumとかを入れて対応できたんですが、レンタルサーバではこのあたりの対応ができず動かない。

composerもうまくいかない。

ネットの知見を探して...ありました。

こちらのサイトを参考にさせていただいて事なきを得ました。

https://qiita.com/ookishin2018/items/5d17f75f8fdad4d8fa04


手順は以下の通りです。


githubからparagonie/sodium_compatをダウンロード

https://github.com/paragonie/sodium_compat


fuel/app/vender/にディレクトリ「paragonie」を作成して、解凍したsodium_compat-masterをsodium_compatにして設置


fuel/app/bootstrap.phpにautoload.phpを追加

require APPPATH ."vendor/paragonie/sodium_compat/autoload.php";


これでSessionが動きました。



sodium_compatの設置場所はfuel/vender/paragonie/にして、fuel/bootstrap.phpに「require COREPATH ."vendor/paragonie/sodium_compat/autoload.php";」とか書いたほうがいいかもしれないですね。



2013年5月3日金曜日

PHPのコンパイル設定

今使っているPHPのフレームワーク、FuelPHP (ver 1.5)。
むっちゃ使いやすい。これは広がってほしい。

ただpdoじゃないmysqlドライバしか入っていないサーバに入れてmysqlドライバで動かそうとしたんだけど設定をどう書いてもpdoドライバで動かそうとしてPDO_Exceptionが出る。

phpとapacheを独自にコンパイルしているサーバ(別の方がセッティング)なので仕方なしにphp(ver. 5.4.12)をコンパイルしなおしました。phpをコンパイルするのなんて何年ぶりだろう。
あまりに久しぶりでオプションとかぜんぜん忘れてて、調べなおすのに半日かかりましたw

有効にしたモジュールは、
mysql関連
gd
mbstring
zip
※ PHP5.4からmysqlndがデフォルトで、--with-mysql-sock以外は値を指定しなくても大丈夫
※ fileinfo, session, json, xml関連などはデフォルトで入るので特に指定しない
※ mcrypt(fuelphpで必要)は面倒なのでFuelPHP内でPHPSecLibで代用してもらう


足りてない.hファイルをyumで入れる(環境によっては他にも必要なのが出てくるでしょう)


# yum install libjpeg-devel
# yum install libpng-devel
# yum install freetype-devel

configureする
# ./configure --prefix=/usr/local/php-5.4.12 --with-apxs2=/usr/local/apache_2.4.4/bin/apxs --with-gd --with-jpeg-dir=/usr/lib64 --with-png-dir=/usr/lib64 --with-zlib-dir=/lib64 --with-freetype-dir=/usr --enable-gd-native-ttf --with-mysql --with-mysqli --with-pdo-mysql --with-mysql-sock=/var/lib/mysql/mysql.sock --enable-mbstring --with-zlib --enable-zip


make, make testすると既知のバグっぽいのが出ますが目を瞑ってmake install。

apache再起動でめでたくPDOで動きました。

mysqlドライバで動かす書き方をちゃんと見つけたほうが良かった気がする。