PHP调用PHP文件上的exec在后台执行

PHP调用PHP文件上的exec在后台执行,php,exec,Php,Exec,我想用exec执行一个PHP文件,在后台处理一个进程,其中1234567是我希望从数据库调用的id,以获取有关我将要处理的内容的一些信息 exec('/var/www/somescript.php 1234567 > /dev/null &'); 是否存在任何潜在的安全问题或我可能遇到的问题 我是否应该对传入的参数使用escapeshellarg()?我确信这取决于是否应该通过web用户调用它,以及是否由用户创建参数或执行命令 在我看来,应该始终调用escapeshellarg(

我想用
exec
执行一个PHP文件,在后台处理一个进程,其中
1234567
是我希望从数据库调用的id,以获取有关我将要处理的内容的一些信息

exec('/var/www/somescript.php 1234567 > /dev/null &');
是否存在任何潜在的安全问题或我可能遇到的问题


我是否应该对传入的参数使用
escapeshellarg()

我确信这取决于是否应该通过web用户调用它,以及是否由用户创建参数或执行命令

在我看来,应该始终调用escapeshellarg(),因为您不会使用MYSQL函数,也不会因为SQL注入的风险而逃避任何输入。使用exec函数也是一个类似的问题,如果不转义输入,就不能使用脚本。然而,逃避输入并不一定能阻止人们滥用脚本

您确实需要确保已对发送到脚本的任何参数进行了验证,例如,您不希望任何人对您的脚本进行注释,并且在“参数”部分中,插入一个完全不同的脚本,以添加用户(如果有propper权限,则不允许发生这种情况)


如果问题无法通过其他方式解决,我会将此作为最后手段,而不是使用exec。

我有多个客户实时发送的地方,其中一个地方需要15-30秒,这是不可接受的时间量。客户发送到的所有其他地方,我们需要能够传回每个地方的信息,但这一个可以作为后台流程传递。id将来自数据库,任何用户都无法访问此部分。我正在努力考虑替代方案,pthread不是我想在服务器上安装的东西。抱歉,我不完全确定您的意思。那么后台进程将用于发回信息?如果是可以多次检索的恒定信息流,您是否尝试过使用memcached/memcache缓存数据?我们为每个客户使用多个web服务,我们所讨论的问题是,我们只需要通过它发送数据,这与实时客户的结果无关。您能否实现web应用程序可以通过其进行通信的web API和xml提要,并将其设置为一个固定的后台服务?这方面的主要问题是,如果有20个客户,则需要处理的时间量在一分钟内,将此添加到一个队列中,每次需要15秒,将需要5分钟才能完成,这将使我陷入一种工作永远无法完成的情况,需要一些线程解决方案。