2023年10月7日土曜日

PHPで/tmpディレクトリへのアクセスがエラー

phpから /tmp にファイルが書き込めない 

CentOS7以降では、(systemd で動いている)PHPからの/tmpディレクトリへのアクセスが、/tmp/systemd-private-xxxx-php-fpm.service-xxxx/ のようなディレクトリへのアクセスになるようになったらしい。

なので /tmp にアクセスしているつもりが、実際には上記のディレクトリにアクセスしていた。

このディレクトリの中身は、php-fpm を restart すると消えてしまう。

手元の環境は Amazon Linux 2023 だが、同じ状況だった。

2023年8月20日日曜日

PHP8 で php.ini の変更が反映されないのは

 Webサーバだけでなく、php-fpm の再起動も必要。

sudo systemctl restart php-fpm

 

PHP8でPEAR形式の__autoload

 PHP8 で __autoload は無くなった。

代わりに spl_autoload_register で登録する。


 spl_autoload_register(function($className) {

if (strpos($className, '.') !== false) {

throw new Exception('不正なclass名をautoloadしようとしました');

}

require(strtr($className, '_', '/') . '.php');

});