Soy nuevo en trabajar en un entorno Linux y también estoy trabajando en un proyecto php en Linux. Y enfrenté un problema al requerir archivos php. Tengo dos archivos php llamados test.php y database.php. Ambos archivos están en /var/www/TEST/.
Este es el código en base de datos.php
<?php echo("You have included the database"); ?>
Y este es el código en test.php
<?php require("/var/www/TEST/database.php");?>Luego, cuando busco test.php usando Firefox, obtengo el resultado esperado "has incluido la base de datos". pero cuando cambio test.php a
<?php require("localhost/TEST/database.php"); ?>No obtengo resultados cuando busco test.php. Inicié el servicio de apache y también cambié el acceso al archivo de /var/www/ a 755. Espero que puedan ayudarme sobre por qué obtengo este tipo de resultado. Gracias.
Primero debe habilitar el informe de errores:
<?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); Luego, intenta incluir un archivo a través de una transmisión HTTP, pero olvidó http:// o https:// antes de que localhost e incluir a través de una transmisión estén deshabilitados por razones de seguridad. La configuración es allow_url_include . Está desactivado de forma predeterminada y debe dejarlo desactivado.
Intente acceder a composer/psr classmaps/psr autoloading. Este es un mecanismo un poco "estándar de la industria". Deberías ir por eso.
Para convertirlo en una referencia estática, puede codificarlo como:
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"); ?>No es necesario solicitar la ruta completa cuando trabaja en una carpeta