Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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
Php 是否有更好的方法将我的函数存储在一台服务器上,以便在多台服务器上使用?_Php - Fatal编程技术网

Php 是否有更好的方法将我的函数存储在一台服务器上,以便在多台服务器上使用?

Php 是否有更好的方法将我的函数存储在一台服务器上,以便在多台服务器上使用?,php,Php,这是我的快速代码。这允许我为常用的PHP函数保留一个文件,并根据需要检索它。这主要是我的私人工作,不是为客户服务的 $include_contents = '<?php '.file_get_contents("http://example.com/inc/functions.php"); $handle = fopen("_functions.php", 'w'); fputs($handle, $include_contents ); fclose($handle);

这是我的快速代码。这允许我为常用的PHP函数保留一个文件,并根据需要检索它。这主要是我的私人工作,不是为客户服务的

$include_contents = '<?php '.file_get_contents("http://example.com/inc/functions.php");  
$handle = fopen("_functions.php", 'w');  
fputs($handle, $include_contents );  
fclose($handle);  
include('_functions.php');

$include_contents=”您需要的是部署策略。应该是一个很好的调查起点。这是一个用PHP编写的软件,旨在解决外部依赖关系,但不是在运行时、安装时解决。从我给你的链接开始


除了composer之外,还有其他针对PHP的部署策略和软件,最值得注意的(但需要更多的努力才能使其正常工作)是,甚至不要这样做

更好的方法是将您需要的所有文件托管在本地文件系统上,并正常包含/需要它们

你所建议的方法没有任何好处,也有许多严重的缺点,这样做没有任何好处

如果提供所有包含内容的主机宕机,那么使用它们的每个站点也会宕机。即使没有降低额外的延迟,执行额外的http请求以包含远程文件也会增加脚本的总执行时间

更糟糕的是,如果远程服务器受到攻击,或者您的DNS服务器被选中将远程站点的域指向恶意服务器,黑客可以轻松引入恶意代码

服务器通常有大量的可用存储空间,没有理由不将所有PHP脚本保存在服务器上,它们生成的页面将从服务器上获得服务

注意:如果你坚持这样疯狂的做法,你可以启用allow_url_include,然后直接从url进行包含


但正如我所说,这是一个非常糟糕的主意,这也是为什么默认情况下禁用allow_url_include的原因

你为什么要这么做?很好的安全漏洞。干得好!注意:黑客可能会反省应用程序和存储代码的服务器之间的连接。所以他至少可以阅读代码,但他也可以修改。你不应该这样做,这是一个非常可怕的想法。您正在为每个请求的页面发出额外的HTTP请求,如果该HTTP请求失败,那么所有引用您的代码的站点都将不可用。只需将文件复制到您的项目中。我真诚地希望这不是针对客户的,否则如果我是客户,我会寻找新的开发人员。如果服务器关闭,这是另一个问题,您的所有网站都将脱机。更不用说远程包含的速度非常慢。别这样!从未!Composer是一个很好的依赖项管理器,但它不是一个部署工具。。。使用类似于
Capistrano
phing
的方法来管理部署我正在使用PEAR,很好!)顺便说一句,不要太在意依赖关系管理器这个词。。当然,composer可以用于部署php软件包。我从未见过它实际用于部署,我将不得不多读一点。因为它没有安装钩子脚本之类的功能,所以对于整个应用程序部署(使用数据库等)来说,它的功能不太强大。但它至少对部署库并使它们保持最新很有用。。再看一看。这是一个现有软件包的存储库是的,我也听说过packagist。。。我猜您可以使用composer进行部署,方法是对Web服务器进行sshing,并针对composer.json运行composer-我想我更喜欢使用Capistrano进行“一键式”部署,特别是对于跨多个服务器的复杂部署。没有人真正解释为什么它不好。除非解释事情是如何运作的,否则我无法学习。因此,本质上,安全问题在于.php文件是否被破坏。如果它在AmazonS3上以极大的冗余度托管会怎么样。。。这样我们就不用担心文件会被销毁。我也知道这会减慢加载时间,这是另一个负面影响。大多数回复都把我当成一个5岁的孩子,但没有解释他们大喊大叫背后的原因。这背后的想法是,我的网站并不都在同一台服务器上。以后我只复制functions.php文件。如果您的体系结构要求不同的服务器出于任何原因提供任务的不同部分,更好的方法是让每台服务器都具有完成服务器需要执行的特定任务所需的php脚本,并让不同服务器上的脚本以标准文本格式(如JSON或XML)相互通信。这两个都在PHP中得到了很好的支持。