在做对网站截图的时候,用到了服务器的一个工具CutyCapt,在服务器上可以直接用命令进行抓取,生成指定url的图片。但是在用php执行系统命令的时候,发现无法执行,但是可以执行CutyCapt这样的帮助信息的命令(“/usr/local/cutycapt/CutyCapt/xvfb-run.sh --help”),但是执行调用系统变量的脚本却无法成功。怀疑是权限的问题,后来将CutyCapt权限设置为www,发现也不行,后来查找资料,发现是由于nginx服务器在执行命令的时候,会调用shell脚本,这时会遇到权限问题。
CutyCapt
截图用到的系统命令:
/usr/bin/sudo /usr/local/cutycapt/CutyCapt/xvfb-run.sh /usr/local/cutycapt/CutyCapt/CutyCapt --url=http://www.163.com --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用户不使用控制台登录
修改内容:
注释掉:Defaults requiretty
更好的修改方式(较安全):
只添加:Defaults:www !requiretty (www用户不使用控制台登录)
4 用php执行
system('/usr/bin/sudo /usr/local/cutycapt/CutyCapt/xvfb-run.sh /usr/local/cutycapt/CutyCapt/CutyCapt --url=http://www.163.com --out=/tmp/insert2.jpg',$m);
注(更安全方式):
system('sudo /usr/local/cutycapt/CutyCapt/xvfb-run.sh /usr/local/cutycapt/CutyCapt/CutyCapt --url=http://www.163.com --out=/tmp/insert2.jpg',$m);
Nginx重启:
同样增加www用户执行nginx脚本的权限
分享到:
相关推荐
windows平台网页缩略图抓图工具,使用--help查看参数设置。
Windows下通过python调用海康SDK实现登入、预览、抓图、光学变倍功能Demo
使用Qt调用海康威视SDK实现登陆、预览、抓图,包括源代码和可执行文件,可以作为服务端自动抓图、客户端预览等,可执行文件的依赖项已经全部打包。
网页 抓图软件网页 抓图软件网页 抓图软件网页 抓图软件网页 抓图软件网页 抓图软件网页 抓图软件
红蜻蜓抓图软件(网页抓图、截图工具)方便快捷实用
因工作的需要,使用python3调用opencv对摄像头进行抓图。这是个最简单的例子,希望对大家有用。
调用基于IP的监控抓图并写入数据库,c#源码
用java实现的网页抓图, 随时随地下载自己喜欢的图片
实现 像QQ一样截屏抓图
按一下键盘上的“印屏幕(Pr Scrn)”键可以轻松实现抓图功能。但有时我们需要在程序代码中自动完成抓图功能,而不是手动去按按钮。 那么我们如何用VB实现屏幕抓图呢?本资源包含的源程序代码将为您解答。 ...
c#调用摄像头截图_摄像头抓图截图两个版本 一个解决方案中包含两个项目,版本为.net4 vs2010打开
抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图
Winform中实现屏幕抓图示例代码
MFC实现屏幕抓图效果,新手们很具有参考价值。
在windous系统下Python实现海康相机登入、预览、抓图、光学变倍、相机激活、区域聚焦、区域曝光功能;linux系统下载相应的海康SDK,并将lib文件更换为相对应的库文件,同时将HCNetSDKCom文件夹拷贝出来(与lib文件夹...
抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图抓图
红蜻蜓网页抓图软件——很好用的抓图软件,分享给大家! 无意中找到这么个软件,很好用。
用php如何对网页进行抓图,并生成jpg格式的图片
网页抓图工具,容量小,下载快,抓图精细,不失真,方便快捷,好用
Snap抓图 非常好用的抓图软件,网页抓图,屏幕抓图 可以用命令行来进行抓图,使用非常简单,而且容量非常小