要求使用 /var/www 有效,但使用 localhost 不起作用


requiring using /var/www works but using localhost doesnt work

我是Linux环境的新手,我也在Linux上做一个php项目。我在需要 php 文件时遇到了一个问题。我有两个php文件,分别称为test.php和database.php。这两个文件都在/var/www/TEST/中。

这是数据库中的代码.php

<?php echo("You have included the database"); ?>

这是测试中的代码.php

<?php require("/var/www/TEST/database.php");?>

然后当我浏览测试时.php使用 Firefox 我得到了预期的输出"您已包含数据库"。 但是当我更改测试时.php 到

<?php require("localhost/TEST/database.php"); ?>

当我浏览测试时,我没有得到任何输出.php。我已经启动了 apache 服务,并将/var/www/的文件访问权限更改为 755。我希望你能帮助我为什么我会得到这样的结果。谢谢。

首先,您应该启用错误报告:

<?php 
// Put these lines to the top of your script
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('display_startup_errors', true);
ini_set('xmlrpc_errors', true);

然后,您尝试通过HTTP流包含文件,但是您忘记了http://https://之前localhost并且出于安全原因禁用了通过流包含。配置allow_url_include。默认情况下它是关闭的,您应该将其关闭。

尝试进入作曲家/psr类映射/psr自动加载。这是一种"行业标准"机制。你应该去那个。

要将其作为静态引用,您可以像这样编码:

require($_SERVER['DOCUMENT_ROOT'] . '/TEST/database.php'); // $_SERVER['DOCUMENT_ROOT'] gets you '/var/www' or whatever your server root maybe
<?php require("database.php");?>
<?php require("database.php"); ?>

在一个文件夹中工作时不需要完整路径