PHP: Phing, Phar, and phar.readonly


PHP: Phing, Phar, and phar.readonly

我正在使用PHP构建系统phing来创建phar归档文件。

有没有任何已知的科学可以让我在运行phing时自动将phar.readonly设置为0(这将允许创建phar),但在所有其他时间都将其设置为0

phar.readonly只能在PHP.INI 中设置

他们的文档说它可以由ini_set()("phar.radionly"1"PHP_INI_ALL")设置,但不能。

$ php -r "ini_set('phar.readonly',0);print(ini_get('phar.readonly'));" 1

更新自http://php.net/manual/en/phar.configuration.php

由于安全原因,此设置只能在php.ini中取消设置。如果在php.ini中禁用了phar.radionly,则用户可以在脚本中启用phar.radion,也可以稍后禁用它。如果在php.ini中启用了phar.radionly,脚本可能会无害地"重新启用"ini变量,但可能不会禁用它。

简短回答:您应该将php.ini文件中的参数phar.readonly从1设置为0。

长话短说:我的PHP运行在docker上,为了重写phar.readonly,我在dockerfile 中设置了一个INI文件

RUN echo 'phar.readonly=0' >> /usr/local/etc/php/conf.d/docker-php-phar-readonly.ini

docker将读取您放入/usr/local/etc/php/conf.d/文件夹中的每个INI文件,并使用以下参数重写php.INI: