最新的Synology NAS DSM 6版本有一个奇怪的PHP设置。 命令行二进制文件是PHP版本5.6.11,几乎没有启用的模块,标记器部分没有编译进去。 但是,当安装Synology Web服务器应用程序,我运行phpinfo(); 那么它会向我展示带有许多模块(包括intl和tokenizer)的PHP 5.6.17版本。 正在运行的Web服务器是使用php-fpm的Apache。
是否有可能从Web服务器的PHP二进制命令行运行PHP? 我需要这样做,因为我只有一个基于Symfony的PHP命令行应用程序,需要intl和tokenizer(可能还有一些)扩展名。
编辑:
发现解决schemehttps://stackoverflow.com/questions/30238602/how-to-execute-a-php-file-using-a-php5-fpm-pool-socket ,但方式太复杂。
只需使用php56而不是cli中的php。
我终于在这里find了答案https://forum.synology.com/enu/viewtopic.php?f=20&t=91099#p425790 。 创build链接之后
ln -s /usr/local/bin/php56 /sbin/php
和
ln -s /usr/local/bin/php56 /usr/local/bin/php
它开始工作通过命令行和cron工作。