PHP

PHPでImagickのバージョンに関する警告が発生する

いつから発生していたのか不明だけど、PHPStanやpeclなどを実行した時に次のような警告が出るようになった。 PHP Warning: Version warning: Imagick was compiled against ImageMagick version 1692 but version 1693 is loaded. Imagick will run but may …

テンプレートエンジンにおけるループ回数(index)の初期値

PHP

テンプレートエンジンでループのインデックス(現在のループ回数)を得る方法が、0 または 1 から始まる違いがあったので調べた。主要なテンプレートエンジンだけ抜粋。 Smarty indexは、0 から開始(1から開始するのは、@iteration) https://www.smarty.ne…

PHPの画面が真っ白に表示される、しかもソース丸見え

色々な要因はあるけど、「PHPのページの画面が真っ白で表示される」という状況に遭遇。他人がセットアップしたWebサーバにて、後からPHPが動作するようにPHP関連パッケージを追加したものの、PHPが動作しないという経緯。AlmaLinux8で起こったことだけど、ph…

PHP 7.3 をソースからビルドする時のlibzip

CentOS 7での話。PHP 7.3 を --enable-zip 付きでconfigureしたら、 checking for libzip... configure: error: system libzip must be upgraded to version >= 0.11 とエラー。libzip-devel が入っていないかと思ったら、既にインストールされていて、バー…

PHP 7.3 を --with-imap 付きでconfigureした時に発生したエラー

CentOS 7 にて、PHP 7.3 を --with-imap 付きでconfigureした時に色々とエラーが出たのでメモ。 エラー・その1 checking for utf8_mime2text signature... new checking for U8T_DECOMPOSE... no configure: error: utf8_mime2text() has new signature, bu…

WordPress で PHPのバージョンに関する警告が出る、そしてデータベース接続確立エラー

WordPress 5.1 に更新したせいか、管理画面のダッシュボードでPHPのバージョンに関する警告が出るようになった。 !PHPの更新が必要です サイトが安全ではいバージョンのPHPを実行していることを検出しました。 PHPとは何ですか?サイトにどう影響しますか?…

CentOS 7 で PHP 7.2 を OpenLDAP 付きで configure/make するとエラーになる

【環境】 $ cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) $ rpm -qa | grep openldap openldap-clients-2.4.44-20.el7.x86_64 openldap-devel-2.4.44-20.el7.x86_64 openldap-2.4.44-20.el7.x86_64 以下のようなオプションで、PHP 7.2 をc…

pecl の oci8 を更新する

pecl/oci8の新しいのが出ていたので、更新した話。バージョンとしては、oci8/2.0.11 → 2.0.12 への更新。リリース日は、2016-08-18 だったので、1年も気づいていなかった(´・ω・`)PECL oci8 https://pecl.php.net/package/oci8Changelog for oci8 https:/…

CentOS 7のPHPでOCI関数を使うまで

【環境】 CentOS 7.2.1511PHPのoci関数を利用するまでの手順。(PHP本体はインストール済みの状態)最初に「Oracle Instant Client」を導入する。Oracle社のWebサイトから、RPMファイルを入手する。アカウント登録が必要。色々とパッケージがあるが、以下の2…

PHP5.4以降で削除される関数の一覧

一覧が欲しかったので、まとめてみた。 関数名 削除バージョン 非推奨バージョン PHPマニュアルURL define_syslog_variables 5.4 5.3 http://php.net/manual/ja/function.define-syslog-variables.php import_request_variables 5.4 5.3 http://php.net/manu…

libMagickWand.so.2 が無いと言われる

CentOS 6.6→6.7に更新後から、PHPでImageMagickの警告が発生するようになった。 $ php hoge.php PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/imagick.so' - libMagickWand.so.2: cannot open shared object file: No…

PHPのOpenSSL関数で、ファイルを暗号化して保存する方法

前回は、PHPのmcryptでファイルを暗号化・復号化し、末尾に\0 がパディングされる事をメモしました。 http://shobon.hatenablog.com/entry/2014/03/31/215323今回は、ファイルを暗号化・複合化する方法として、OpenSSL関数を使う方法です。<環境> ・CentOS…

mcrypt関数で暗号化した時のパディングの問題

mcrypt関数でデータを暗号化→復号化した時に、末尾にデータが付加されて元に戻らない場合がある、という事で簡単に実験。 サンプルのテキストファイルを作成する。 $ echo -n 'encrypt-me' > before.txt 中身を確認 $ cat before.txt encrypt-me サンプルの…

PHPで連想配列にデフォルト値を適用しつつパラメータを上書き設定する方法

PHP

classのデフォルト値を設定する時などに便利なこと。 説明のためのソース $params = array('host'=>'192.168.1.1', 'dummy'=>'hoge'); $default = array('host'=>'localhost', 'port'=>80); $params = array_intersect_key($params, $default) + $default; p…

PHPのバージョンとallow_call_time_pass_referenceの関係

PHP

php5.2で動作していたソースをphp5.3で動作させると、以下のような警告が出る。 Deprecated: Call-time pass-by-reference has been deprecated in ***.php これは、関数のコール時に引数が参照で渡された場合に警告するかどうか(allow_call_time_pass_refe…

CentOS 5.xにPHP5.5をインストール

CentOS 5.xにPHP5.5で試してみようと、yumでは入らないのでソースからインストールしたメモ。 ■環境 # cat /etc/redhat-release CentOS release 5.9 (Final) ※httpdは、yumでインストールされている(設定ファイルは /etc/httpd 以下にある) httpdもソース…