我正在Ubuntu 18.04上运行apache2服务器,而PHP作为FPM服务器运行。我想使用libfaketime
(https://github.com/wolfcw/libfaketime)设置我可以设置的服务器假时间。我在/etc/apache2/envvars
文件中添加了以下几行:
export FAKETIME="$(cat /var/www/.faketimerc)"
export LD_PRELOAD="/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1"
文件/var/www/.faketimerc
包含我要使用的假时间。这些设置导致浏览器标题中的日期正确,但是当我在PHP文件中使用date
函数时,它将返回机器的时间而不是假的时间。问题似乎是我必须设置FPM才能使用libfaketime
。
我试图将以上两个变量都添加到/etc/environment
中,但这破坏了我的系统。我将以下行添加到*.conf
目录中的新/etc/php/7.2/fpm/pool.d
文件中:
env[FAKETIME] = "2019-12-03 12:00:00"
env[LD_PRELOAD] = "/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1"
但是在那之后,我的服务器不再工作了。