Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Composer集成到PHP web项目中_Php_Apache_Batch File_Composer Php - Fatal编程技术网

将Composer集成到PHP web项目中

将Composer集成到PHP web项目中,php,apache,batch-file,composer-php,Php,Apache,Batch File,Composer Php,我想将Composer集成到一些web项目中。因为我不能假设有人可以访问/www或/htdocs以上的任何内容,所以我的想法是为web项目提供一个composer.phar,并使用cronjob触发更新程序,这样我就不用为项目的更新做任何事情 问题是,为了能够触发编写器,它需要php.exe的路径,并且不能保证环境变量设置为Linux服务器 有没有办法让Composer在不访问php.ini和不知道php程序路径的情况下在web服务器上工作?当为试图运行的用户获取可执行标志时,/path/to/

我想将Composer集成到一些web项目中。因为我不能假设有人可以访问
/www
/htdocs
以上的任何内容,所以我的想法是为web项目提供一个composer.phar,并使用cronjob触发更新程序,这样我就不用为项目的更新做任何事情

问题是,为了能够触发编写器,它需要php.exe的路径,并且不能保证环境变量设置为Linux服务器


有没有办法让Composer在不访问php.ini和不知道php程序路径的情况下在web服务器上工作?

当为试图运行的用户获取可执行标志时,
/path/to/Composer.phar
文件应该是开箱即用的,即
/path/to/Composer.phar
将在不添加php的情况下工作。在Windows上,.phar文件打开时可能应该与已安装的PHP版本关联

但有一点很重要:作曲家并没有做任何与确保不间断的生产服务相关的事情!这不是任务。总要想一想,如果作曲家所做的任何事情都失败了会发生什么。有太多的组件可能变得不可用,从packagist.org、Github/Bitbucket/younameit开始,在更新过程中意外地抓取损坏的发布版本,这将完全禁用更新过程,等等

考虑一下在尝试添加这种无需注意的基于cron的更新步骤时所增加的风险


另一件事是,您必须确保安装了将软件安装到机器上所需的工具。这意味着您必须至少有可用的ZIP工具,tar/gz,并且取决于您是否安装分支(您不应该这样做,在自动无人值守的更新中更是如此),您将需要在生产机器上安装Git、Mercurial和SVN(如果您只安装标记版本,这也可能是正确的)。因此,这不仅仅是对PHP的依赖,至少对这五种工具也是如此。

也许这是一个愚蠢的问题,但你已经尝试过了吗?如果是,错误是什么?我希望,由于路径将包括到PHP的路径,
composer update
不应该出现问题,但这可能是我乐观的天性。这是真的,但我正在寻找一个始终有效的解决方案。如果我构建了一个其他用户可以使用的脚本,那么确保编写者每次都能工作是很重要的。如果设置了PHP.exe的路径,则不应将其绑定到PHP的安装路径。这条线的问题是怎么走?!您提到了“php.exe”(仅限Windows),但也提到了Linux。你在用哪一个?抱歉,我还在考虑在Windows(本地)上进行测试,但我的目标是Linux,所以忘了.exe扩展。再次,我正在寻找一个解决方案,如果你不知道php程序路径或无法修改php.ini,你也可以将composer集成到web项目中。你是对的,我忘了这一点。作曲家不捕捉错误?在我看来,这应该也是一项任务。我想依靠它,如果有错误,就会收到错误消息。所以,在其他方面,我们不可能忽视这一点?我不会指望作曲家在尝试更新时不会改变内容。你可能会因为一个随机但很罕见的问题而有一个不稳定的供应商目录树——比如解压缩过程中的“文件外空间错误”。记住,Composer只是处于它的alpha状态,它还没有在最终的、稳定的版本中发布。