php web端不能调用shell_exec运行linux命令(unoconv为例)
来源:互联网 发布:arm linux 外设使用 编辑:程序博客网 时间:2024/06/16 23:50
新建一个php文件(test.php)
将下面的代码进行粘贴到新建的PHP文件中
<?php
shell_exec("unoconv -f pdf test.odt");
?>
(1)在终端中执行php test.php,此时生成了test.pdf文件
(2)在web端输入链接访问test.php,发现此时test.pdf文件没有生成。这时可以有80%怀疑权限问题(且php并没有报错)
(3)进入test.php所在的目录,
将下面的代码进行粘贴到test.php文件中
<?php
print_r(shell_exec("ls"));
?>
在web端使用链接进行访问,发现可以运行的,这时有基本可以确定是权限的问题了
(4)那么错误在什么地方可以看到呢,在终端下运行下面的命令
find / -name auth.log
比如 /var/log/auth.log
(5)打开 auth.log找出问题所在可以发现报错为:www-data:user not in sudoers;............改怎么改呢
(6)本人是在虚拟机中进行测试的,现在讲讲这个解决方法
在终端下运行su root输入密码,这时你会发现不管你怎么输入密码均是错误的,那该怎么解决呢,不要急,听我慢慢讲来
在终端下输入su passwd 这时会提醒你输入密码,随便输入一个密码如:123456,回车再次确认下密码;此时的root密码为123456了
在终端下输入su root,输入刚刚设置的密码,你会发现你进入了root权限了,这时在终端下运行chmod u+w /etc/sudoers,
在终端下输入vim /etc/sudoers,修改文件,将下面的话添加到文件中
www-data ALL=(ALL) NOPASSWD: ALL;这边为啥是NOPASSWD:因为,你没有给www-data设置密码啊
在终端下分别运行chmod u-w /etc/sudoers,exit
(7)这时你再次在web使用链接运行test.php文件
<?php
shell_exec("unoconv -f pdf test.odt");
?>
哈哈:文件出来了
- php web端不能调用shell_exec运行linux命令(unoconv为例)
- linux下php调用unoconv命令将doc,ppt转pdf,pdf在转图片
- 解决Windows下PHP的exec、shell_exec等函数不能正常运行的方法
- PHP执行Linux命令的两个有用的函数exec和shell_exec
- PHP调用python,shell命令执行成功,web运行失败
- php执行外部命令函数:exec()、passthru()、system()、shell_exec()对比
- PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()
- PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()
- Linux-CentOS 安装Unoconv
- php shell_exec vs shell
- suse linux 运行命令为 ./
- unoconv
- php无法调用linux命令:授权拒绝或审计接口不能打开
- php调用linux命令函数
- Linux php 不能调用sendmail发邮件
- 概述PHP命令行shell_exec()使用
- 强大的php函数shell_exec
- 解决PHP中Web程序中shell_exec()执行Shell脚本不成功问题
- java字符串排序。
- AI:模式识别的数学表示(集合—函数观点)
- tomcat内存溢出问题:java.lang.OutOfMemoryError: PermGen space
- Hadoop性能调优概要说明
- 各种第三方框架
- php web端不能调用shell_exec运行linux命令(unoconv为例)
- MySQL基于gtid特性与xtrabackup的数据恢复
- 得到某位的值,0或1
- 多态的理解
- Z-tree实例——复选框
- makefile(一):变量
- 多线程很少用,遇到个问题,mark
- Flask系列教程(1)——认识web
- 前端插件之间面对重复使用规则的兼容转换---$(...).XXX is not a function