我設置了一個簡單的虛擬主機。PHP絕對路徑不能正常工作
只是增加了這些線在底部
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/Reminder/"
<Directory "/var/www/Reminder">
AllowOverride all
Require all granted
php_admin_value open_basedir "/var/www/Reminder/"
</Directory>
php_admin_value open_basedir "/var/www/Reminder/"
ServerName test.mydomain.com
ErrorLog "logs/yourdomain.com-error_log"
CustomLog "logs/yourdomain.com-access_log" common
</VirtualHost>
我基本上要什麼,同時從提醒文件夾內,如果我給的絕對路徑,如「/測試/」文件包括PHP文件,它應該將Reminder文件夾視爲根,並從Reminder內部搜索測試文件夾。
現在,當我輸入echo DIR,我顯示了/ var/www/Reminder。
我的文件結構是:
/var/www/Reminder/database/db_connect.php /var/www/Reminder/registration/registration_handler.php
這是我的db_connect.php有:
<?php
define('DBHOST','localhost');
define('DBUSER','root');
define('DBPASS','password');
define('DBNAME','Reminder');
$conn=mysqli_connect(DBHOST,DBUSER,DBPASS) ;
if(!$conn) {
echo mysqli_connect_error();
}
else {
echo "connected successfully";
}
?>
這是我的registration_handler有:
<?php
echo "hi";
echo __DIR__;
require_once("/database/db_connect.php");
mysqli_query($conn,"INSERT INTO users() VALUES()") or die (mysqli_error($conn));
?>
我相信,如果一切正常,我應該能夠得到「連接成功」的消息(從db_connect),如果我運行registration_handler.php,但那不會發生。當我包含像這樣的文件:require_once(「../ database/db_connect.php」); ,我得到輸出
'我基本上要爲......,如果我給的絕對路徑,...,應該考慮的提醒文件夾因爲root的php不能像那樣工作 - 也不應該這樣。 – AD7six
但是,當我在hostgater等地方託管某些文件時,「/」會爲我提供我的網站根目錄的路徑。 –