歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 22, 2024, 08:41:20 下午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  在虛擬主機安裝的問題(open_basedir restrict) « 上篇主題 下篇主題 »
頁: [1] 2 3
作者 主題: 在虛擬主機安裝的問題(open_basedir restrict)  (閱讀 47719 次)
Blowfish
訪客
« 於: 三月 16, 2005, 09:15:31 下午 »

真的沒辦法了, 試了好多次, 只好厚著臉皮來這裏求救.

我在虛擬主機上, 權限也設好了, wizard.php也都跑過了, 資料庫的tables的也被建立好了, 但在進到blog首頁或admin.php時, 都會出現下面的訊息:

Exception message: is_readable(): open_basedir restriction in effect. File(/usr/share/pear/./templates//./templates//blueish/header.template) is not within the allowed path(s): (/home/httpd/vhosts/3dpapermodel.w-web.com/httpdocs:/tmp)
Error code: 2
-- Backtrace --
/home/httpd/vhosts/3dpapermodel.w-web.com/httpdocs/3dpms/3dpmsblog/class/template/smarty/core/core.get_include_path.php(34): is_readable
/home/httpd/vhosts/3dpapermodel.w-web.com/httpdocs/3dpms/3dpmsblog/class/template/smarty/Smarty.class.php(1670): smarty_core_get_include_path
/home/httpd/vhosts/3dpapermodel.w-web.com/httpdocs/3dpms/3dpmsblog/class/template/smarty/Smarty.class.php(1558): cachedtemplate._parse_resource_name
.....


其實頁面該出面的東西都有出現, 但只是被這一堆錯誤訊息擠到旁邊了...-_-
去找了找資料, 說應該是存取到沒有權限存取的地方, 但server又不是我管的, 也沒辦法去改php.ini...........所以就此卡住, 不知道怎麼解決...

請各位高手幫幫忙吧,
先謝謝囉
已記錄
cody
新手見習
*
文章: 39


檢視個人資料
« 回覆文章 #1 於: 三月 16, 2005, 09:32:18 下午 »

請主機商把你的
   php_admin_value safe_mode 1
  php_admin_value open_base_dir /home/xxxx.com.tw/

這兩條關起來
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #2 於: 三月 16, 2005, 11:47:31 下午 »

Hi cody:

謝謝!沒你跟 lss 我還真不知 linux 的問題該如何回答。該用功來看 linux 了,已經立志好多遍了。  吐舌頭

Mark
已記錄

Blowfish
訪客
« 回覆文章 #3 於: 三月 17, 2005, 07:40:39 上午 »

引用自: cody
請主機商把你的
   php_admin_value safe_mode 1
  php_admin_value open_base_dir /home/xxxx.com.tw/

這兩條關起來


謝謝cody,  開懷大笑

再請問, 這兩個設定是不是可以直接放在plog目錄下的 .htaccess中, 例如:

程式碼:

<Directory "/path/to/my/www-root">
    php_admin_value safe_mode 0
    php_admin_value open_base_dir /path/to/my/www-root/
</Directory>


謝謝幫忙!!^__^
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #4 於: 三月 17, 2005, 01:32:13 下午 »

Hi Blowfish:

<Directory></Directory>

好像是不用加的!試試看吧!結果立即揭曉。記得回報可不可行。

Mark
已記錄

Anonymous
訪客
« 回覆文章 #5 於: 三月 17, 2005, 07:03:30 下午 »

只要加了 php_admin_value 那兩行進去.htaccess , 都會造成, 500 Internal Server Error.... 目瞪口呆
程式碼:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


而且不管有沒有加<Directory>結果都一樣.....#@$
[/code]
已記錄
lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #6 於: 三月 17, 2005, 08:23:34 下午 »

資料來源: http://tw.php.net/configuration.changes
引用
php_admin_value  name  value

    Sets the value of the specified directive. This can not be used in .htaccess files. Any directive type set with php_admin_value can not be overridden by .htaccess or virtualhost directives. To clear a previously set value use none as the value.


看來只好請你的主機商幫忙了。如果不幫,那就換一家吧!
已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
Blowfish
訪客
« 回覆文章 #7 於: 三月 17, 2005, 08:36:26 下午 »

引用自: lss
資料來源: http://tw.php.net/configuration.changes
引用
php_admin_value  name  value

    Sets the value of the specified directive. This can not be used in .htaccess files. Any directive type set with php_admin_value can not be overridden by .htaccess or virtualhost directives. To clear a previously set value use none as the value.


看來只好請你的主機商幫忙了。如果不幫,那就換一家吧!


嗯...果真不能override admin的設定值, 看來真的只能請主機商改了, 我們放的那個主機商是在國外, 不知道肯不肯改... 疑惑

不管怎麼樣, 還是謝謝大家的幫忙!! ^__^
已記錄
Anonymous
訪客
« 回覆文章 #8 於: 三月 17, 2005, 11:11:52 下午 »

找到解決辦法了, 特地來跟大家報告一下.

一開始發現, 錯誤是出現在 $plog_home/class/template/smarty/core/core.get_include_path.php這個檔案裏, 所以去看了一下code

程式碼:

1: function smarty_core_get_include_path(&$params, &$smarty)
2: {
3:     static $_path_array = null;
4:
5:     if(!isset($_path_array)) {
6:          $_ini_include_path = ini_get('include_path');
7:          
8:
9:         if(strstr($_ini_include_path,';')) {
10:             // windows pathnames
11:            $_path_array = explode(';',$_ini_include_path);
12:         } else {
13:             $_path_array = explode(':',$_ini_include_path);
14:         }
15:     }
16:     foreach ($_path_array as $_include_path) {
17:         if (@is_readable($_include_path . DIRECTORY_SEPARATOR . $params['file_path'])) {
18:                $params['new_file_path'] = $_include_path . DIRECTORY_SEPARATOR . $params['file_path'];
19:             return true;
20:         }
21:     }
22:     return false;
}


問題就出在 Line: 17 , 在call is_readable() function時, 會檢查到沒有權限的目錄, 就是在$_path_array中, 有不可存取的目錄, 而$_path_array又是從$_ini_include_path得到的, 所以問題一定在這裏.

然後用phpinfo()印出php的系統資料, 找到include_path, 原來這台主機的include_paht 設定為.吸血蝙蝠/usr/share/pear
, 就是/usr/share/pear出了問題了, 不在allowable的include path中, 難怪會有問題.

解決方法:
把Line 6 改成 $_ini_include_path="."; 就可以了.

呼...終於解決. 開懷大笑
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #9 於: 三月 17, 2005, 11:31:00 下午 »

精華!又是一篇精華!你是哪一家主機,講出來大家以後注意一下。

Mark
已記錄

lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #10 於: 三月 18, 2005, 12:41:44 上午 »

引用自: Anonymous
找到解決辦法了, 特地來跟大家報告一下.

一開始發現, 錯誤是出現在 $plog_home/class/template/smarty/core/core.get_include_path.php這個檔案裏, 所以去看了一下code

程式碼:

1: function smarty_core_get_include_path(&$params, &$smarty)
2: {
3:     static $_path_array = null;
4:
5:     if(!isset($_path_array)) {
6:          $_ini_include_path = ini_get('include_path');
7:          
8:
9:         if(strstr($_ini_include_path,';')) {
10:             // windows pathnames
11:            $_path_array = explode(';',$_ini_include_path);
12:         } else {
13:             $_path_array = explode(':',$_ini_include_path);
14:         }
15:     }
16:     foreach ($_path_array as $_include_path) {
17:         if (@is_readable($_include_path . DIRECTORY_SEPARATOR . $params['file_path'])) {
18:                $params['new_file_path'] = $_include_path . DIRECTORY_SEPARATOR . $params['file_path'];
19:             return true;
20:         }
21:     }
22:     return false;
}


問題就出在 Line: 17 , 在call is_readable() function時, 會檢查到沒有權限的目錄, 就是在$_path_array中, 有不可存取的目錄, 而$_path_array又是從$_ini_include_path得到的, 所以問題一定在這裏.

然後用phpinfo()印出php的系統資料, 找到include_path, 原來這台主機的include_paht 設定為.吸血蝙蝠/usr/share/pear
, 就是/usr/share/pear出了問題了, 不在allowable的include path中, 難怪會有問題.

解決方法:
把Line 6 改成 $_ini_include_path="."; 就可以了.

呼...終於解決. 開懷大笑

不太對哦  挑眉質疑
/usr/share/pear 的前面還有一個 . ,也就是目前目錄,是在 /usr/share/pear 之前。所以出現這個錯誤,代表第17行的程式碼判斷由目前目錄取得的檔名是不可讀的,才會判斷到由 /usr/share/pear 目錄下取的得檔名,接下來才有 php 安全模式的問題。
我覺得問題還不算完全解決。
已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
Blowfish
訪客
« 回覆文章 #11 於: 三月 18, 2005, 07:24:33 上午 »

引用自: markwu
精華!又是一篇精華!你是哪一家主機,講出來大家以後注意一下。


我們用的是這一家, http://www.w-web.com/ 大宇科技的Linux虛擬主機, 他們用一套叫Plesk的虛擬主機管理系統, 是http://sw-soft.com/這家公司出版的.
供大家參考一下.
已記錄
Blowfish
訪客
« 回覆文章 #12 於: 三月 18, 2005, 07:59:51 上午 »

程式碼:

1: function smarty_core_get_include_path(&$params, &$smarty)
2: {
3:     static $_path_array = null;
4:
5:     if(!isset($_path_array)) {
6:          $_ini_include_path = ini_get('include_path');
7:          
8:
9:         if(strstr($_ini_include_path,';')) {
10:             // windows pathnames
11:            $_path_array = explode(';',$_ini_include_path);
12:         } else {
13:             $_path_array = explode(':',$_ini_include_path);
14:         }
15:     }
16:     foreach ($_path_array as $_include_path) {
17:         if (@is_readable($_include_path . DIRECTORY_SEPARATOR . $params['file_path'])) {
18:                $params['new_file_path'] = $_include_path . DIRECTORY_SEPARATOR . $params['file_path'];
19:             return true;
20:         }
21:     }
22:     return false;
}

引用

不太對哦  挑眉質疑
/usr/share/pear 的前面還有一個 . ,也就是目前目錄,是在 /usr/share/pear 之前。所以出現這個錯誤,代表第17行的程式碼判斷由目前目錄取得的檔名是不可讀的,才會判斷到由 /usr/share/pear 目錄下取的得檔名,接下來才有 php 安全模式的問題。
我覺得問題還不算完全解決。


嗯...對哦, 真的是有點怪怪的,剛又看了一下, 發現都是return false.

不過summary.php and admin.php是都可以正常顯示了, 但如果連到index.php的話則會有錯誤, Exception message: Smarty error: unable to read resource: "./templates//blueish/header.template", 可是這個檔案是存在的, 也是可讀的

但由管理介面連到網誌去, 是都沒問題.......真的搞不懂.
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #13 於: 三月 18, 2005, 08:08:35 上午 »

剛剛想到一個問題:

1. 你是用什麼時候的版本,有用最新的試過嗎?
2. 請把 全域設定>>模版設定>>allow_php_code_in_templates

改為 on 試試!

Mark
已記錄

Anonymous
訪客
« 回覆文章 #14 於: 三月 18, 2005, 10:44:58 上午 »

引用自: markwu
剛剛想到一個問題:

1. 你是用什麼時候的版本,有用最新的試過嗎?
2. 請把 全域設定>>模版設定>>allow_php_code_in_templates

改為 on 試試!


1. 是用最新版的.1.0 beta
2.改了, 還是一樣.

我再試試其他方法吧.謝謝
已記錄
頁: [1] 2 3
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  在虛擬主機安裝的問題(open_basedir restrict) « 上篇主題 下篇主題 »
    前往: