gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 08:31:47 27 4
gpt4 key购买 nike

我有一个包含以下内容的 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:\>

当我通过网络浏览器 (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);

关于PHP 从命令行输出,但不从浏览器输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16372157/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com