繁体   English   中英

PHP从命令行输出,但不从浏览器输出

[英]PHP outputs from command line but not from the browser

我有一个PHP文件testphp.php其中包含以下内容:

<?php
echo system('mysql -u root -pMyPassword -e "SELECT VERSION();"');
?>

它从命令行完美输出:

D:\>php testphp.php
VERSION()
5.5.24-log
5.5.24-log
D:\>

当我通过Web浏览器( http://localhost/testphp.php )执行相同的文件时,我看不到输出。 为什么?

这有很多原因:

  1. 您正在使用命令mysql ,该命令可能不在Web服务器运行的用户的路径中。 从命令行运行它时,您使用自己的用户帐户运行它。 Web服务器在不同(受限制)的帐户下运行。 您应该提供mysql二进制文件的完整路径。 从提示符中键入which mysql作为普通用户,以找出可执行文件的完整路径。

  2. 命令mysql可能受到系统配置的限制,因此并非所有用户都可以执行它。

  3. 您在Web服务器上的PHP配置禁止使用system()

  4. 你可以通过运行这个来获得相同的信息(假设你为你的php安装配置了mysql):

     $con = new mysqli("localhost", "root", "MyPassword"); printf("%s", $con->server_info); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM