2012-06-28 23 views
1

我有一個運行用戶管理腳本的客戶端。主機提供商阻止了allow_url_fopen,但使用了suPHP,因此我們創建了php.ini的本地副本,allow_url_fopen設置爲「on」。本地php.ini sessions.save_path問題 - 會話未被識別

現在唯一的問題是,您不能再使用腳本登錄 - 它說'成功登錄你' - 然後登錄你的權利(因爲會議要麼沒有得到創建或在錯誤的地方 - 請原諒我缺乏服務器知識)。

這裏是當地的php.ini

upload_tmp_dir = "/home/aspac124/public_html/tmp" 
register_globals = On 
memory_limit = 256M 
session.save_path = "/home/aspac124/public_html/tmp" 
safe_mode = off 
upload_max_filesize = 32M 
allow_url_fopen = On 
zend_extension = "/usr/local/IonCube/ioncube_loader_lin_5.3.so" 

我不知道爲什麼託管服務提供商打開了register_globals對客戶端的設置。但是,這是session.save_path的正確位置嗎?我已經檢查過,並且文件夾存在,我也將它設置爲777,以確保但沒有幸福。

使用同一系統的另一個客戶也有類似的問題,並告訴我,他改變了tmp目錄/文件夾到他的家目錄,一切都很好。

我試圖把保存路徑爲剛纔的/ tmp,/家庭/ aspac124/tmp和沒有任何反應 - 我們只需要退出是正常的。如果我構成一條路徑,那麼我得到一個「沒有這樣的文件或目錄」的錯誤。

當我把它稱爲「/家/ tmp目錄」我收到以下消息

Warning: session_start() [function.session-start]: open(/home/tmp/sess_4417d180e599b5f12fc34a28f5467d21, O_RDWR) failed: Permission denied (13) in /home/aspac124/public_html/domainnamehere.com/includes/lightwork_session.php on line 45 

這是什麼意思,是居家/ tmp目錄的正確位置,這和如果是的話我該怎麼辦 - 文件夾權限是否應該更改?

編輯:我沒有域根外部訪問文件夾,所以不能更改文件的權限 - 必須等待客戶端,但想盡可能多的信息在此之前。

在此先感謝

編輯:只爲任何人閱讀此。請確保您的本地php.ini文件設置適用於可能需要它的任何子文件夾。我正在向一個子文件夾中的文件發出一個Ajax請求給根,這就是問題所在。

+1

這是一個壞主意'/ home/aspac124/public_html/tmp' ..一個非常糟糕的主意。切勿將會話數據放入可公開訪問的目錄中。決不。 – Adi

+0

這是託管公司希望客戶擁有它的地方(我認爲這是我今天早上在php.ini文件中發現的) - 我曾認爲這不是一個熱門的主意......也有一個想法推薦另一家託管公司。 –

+0

這是否意味着您將相同的php.ini文件複製到需要利用會話變量的每個目錄? – Scott

回答

1

你應該把你的會話並上傳目錄文檔根目錄以外的地方,這些會被任何人看到,並可能導致遠程腳本注入,會話劫持等

你或許應該創建一個tmp目錄作爲/home/aspac124/tmp和設置權限,以便Apache可以寫入此目錄。也許將chmod設置爲0760.

+0

會話固定不適用於這種情況。這裏發生的是會話劫持(通過訪問服務器或客戶端上的會話存儲)。注意:會話固定是一種會話劫持。 – Adi

+0

@AdnanShammout你是對的,我的答案有點太快了!我已更新,謝謝。 –

+0

選擇此作爲正確的答案,因爲它是正確的,但沒有幫助,因爲託管公司到目前爲止還沒有達到醇技術支持。不管怎麼說,還是要謝謝你。 –