我正在尝试执行命令exec('vlc');
来自php脚本(在linux中),
但是,页面(php)尚未加载。
即使使用pcntl_fork(用于exec命令),这也无效。
但如果我尝试从命令行php -S localhost:8000 -t path/to/src
运行,
并在浏览器中输入localhost:8000/page.php
,页面已加载并且vlc已打开。
有什么问题?
注意:
如果我尝试从命令行php -r "exec('vlc');"
运行,则vlc会打开。
另外,我检查了php并没有在安全模式下工作。
UPDATE1:
<?php
echo shell_exec('vlc');
?>
**** 无法正常工作 ****
<?php
echo shell_exec('vlc 2>&1');
?>
输出:
主目录无法访问:权限被拒绝[08ea1490]脉冲音频输出错误:PulseAudio服务器连接失败:连接被拒绝[08e9e448]核心接口错误:没有合适的接口模块[08ded0d0]核心libvlc错误:接口“globalhotkeys,无“初始化失败[08e9e448] dbus接口错误:无法连接到D-Bus会话守护程序:无法自动启动dbus-daemon而没有$ DISPLAY for X11 [08e9e448]核心接口错误:没有合适的接口模块[08ded0d0]核心libvlc错误:接口“dbus,none”初始化失败[08ded0d0] core libvlc:使用默认接口运行vlc。使用'cvlc'来使用没有接口的vlc。 [08e9e448] qt4接口错误:无法连接到X服务器[08e9e448] skins2接口错误:无法初始化OSFactory [08e9e448] [cli] lua接口:侦听主机“* console”。 VLC媒体播放器2.2.0 Weatherwax
<?php
echo shell_exec('whoami');
?>
输出:www-data
/var/log/httpd
不存在
但/var/log/apache2/error.log
存在并且:
Home directory not accessible: Permission denied
[0980c490] pulse audio output error: PulseAudio server connection failure: Connection refused
[09809448] core interface error: no suitable interface module
[097580d0] core libvlc error: interface "globalhotkeys,none" initialization failed
[09809448] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[09809448] core interface error: no suitable interface module
[097580d0] core libvlc error: interface "dbus,none" initialization failed
[097580d0] core libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[09809448] qt4 interface error: Could not connect to X server
[09809448] skins2 interface error: cannot initialize OSFactory
[09809448] [cli] lua interface: Listening on host "*console".
[09809448] [cli] lua interface: Requested shutdown.
UPDATE2:
shell_exec("DISPLAY=:0 vlc");
工作,但非常缓慢(使用php -S ...
,更快)。
我正在尝试
shell_exec("DISPLAY=:0 vlc v4l2:///dev/video0 --sout '.settings.'");
(有些设置)但我收到错误
[b4602c50] mux_ogg mux: Open
[b4604a30] v4l2 demux error: cannot open device '/dev/video0': Permission denied
[b4604a30] v4l2 demux error: cannot open device '/dev/video0': Permission denied
[b4604a30] v4l2 access error: cannot open device '/dev/video0': Permission denied
[b4b04ea0] core input error: open of `v4l2:///dev/video0' failed
[b4b04ea0] core input error: Your input can't be opened
[b4b04ea0] core input error: VLC is unable to open the MRL 'v4l2:///dev/video0'. Check the log for details.
[b4602c50] mux_ogg mux: Close
但是php -S ...
正在运作。
有什么问题?
提前致谢
答案 0 :(得分:0)
我没有足够的声誉发表评论,这使得调试有点困难。首先检查/ var / log / httpd中的错误日志,看看是否有任何明显的错误。如果那里什么也没有,你能执行这个并告诉我们这是否有用吗?
<?php
echo shell_exec('vlc');
?>
如果这样做什么都不做
<?php
echo shell_exec('vlc 2>&1');
?>
和
<?php
echo shell_exec('whoami');
?>