php 抓取网页生成图片(用php执行系统命令的时候发现无法执行,但是可以执行CutyCapt)

优采云 发布时间: 2021-10-03 11:21

  php 抓取网页生成图片(用php执行系统命令的时候发现无法执行,但是可以执行CutyCapt)

  制作网站屏幕截图时,使用服务器的工具cutycapt。您可以通过服务器上的命令直接获取它,以生成指定URL的图片。但是,在使用PHP执行系统命令时,发现无法执行该命令,但是可以执行收录帮助信息的命令,例如cutycapt(“/usr/local/cutycapt/cutycapt/xvfb run.Sh--help”),但无法成功执行调用系统变量的脚本。有人怀疑这是一个许可问题。后来发现cutycapt权限设置为www。后来发现这是因为nginx服务器在执行命令时会调用shell脚本。此时,它将遇到权限问题

  可爱的

  屏幕截图中使用的系统命令:

  /usr/bin/sudo/usr/local/cutycapt/cutycapt/xvfb-run.sh/usr/local/cutycapt/cutycapt/cutycapt--url=--out=/tmp/insert.jpg

  1、设置sudo配置文件可写权限

  chmod u+w/etc/sudoers

  2、增加WWW用户执行cutycapt脚本的权限(添加要运行的脚本和命令的权限):

  www ALL=(root)NOPASSWD:/bin/sh、/usr/local/cutycapt/cutycapt/xvfb-run.sh、/usr/local/cutycapt/cutycapt/cutycapt

  3、关闭[强制控制台登录]以执行或允许www用户在不使用控制台的情况下登录

  修改内容:

  注意:需要默认值

  更好的修改方法(更安全):

  仅添加:默认值:www!要求(WWW用户不使用控制台登录)

  4使用PHP执行

  系统('/usr/bin/sudo/usr/local/cutycapt/cutycapt/xvfb-run.sh/usr/local/cutycapt/cutycapt/cutycapt-url=--out=/tmp/insert2.jpg',m)

  注(更安全的方式):

  系统('sudo/usr/local/cutycapt/cutycapt/xvfb-run.sh/usr/local/cutycapt/cutycapt/cutycapt-url=--out=/tmp/insert2.jpg',m)

  Nginx重启:

  同样,增加WWW用户执行nginx脚本的权限

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线