2013-04-04 67 views
0

我剛剛轉移到我的共享主機上的Linux服務器,以查看它是否比godaddy上的Windows服務器更少垃圾(我一直愚蠢到支付他們12個月前,所以我現在卡住了這些白癡)。我現在不再能夠使用任何類型的會話。託管公司在服務器上禁用會話正常嗎?

他們已經回到我身邊說我要解決這個問題,讓它工作......是的,這是正確的......要讓會話開始工作!對不起,如果我看起來有點憤怒,但我很憤怒。

有人能告訴我怎樣才能以某種方式讓會話在Apache服務器上工作嗎?我從來沒有必須以前設置它,因爲它從來沒有問題。只要我做的:

<?php session_start() ?> 

...它只是想出約8個錯誤的行說:

Warning: session_start() [function.session-start]: open(/var/chroot/home/content/30/10247530/tmp/sess_sgruthqkbhfms6ekcle2l0n6i5, O_RDWR) failed: No such file or directory (2) in /home/content/30/10247530/html/sessionthing.php on line 2 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/content/30/10247530/html/sessionthing.php:2) in /home/content/30/10247530/html/sessionthing.php on line 2 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/content/30/10247530/html/sessionthing.php:2) in /home/content/30/10247530/html/sessionthing.php on line 2 

Warning: Unknown: open(/var/chroot/home/content/30/10247530/tmp/sess_sgruthqkbhfms6ekcle2l0n6i5, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct() in Unknown on line 0 

我試圖創建一個php.ini文件,我仍然不能讓它正常工作。我使用phpinfo()檢查了設置,我真的不知道從哪裏去。

編輯:有一些東西出現在頁面的一側,現在指向類似的問題。出於某種原因,當我進行搜索時,我沒有想到這些。其中一個甚至關閉:https://stackoverflow.com/questions/11374110/session-start-errors-on-godaddy-server?rq=1

那一個說他們得到它與Godaddy解決,所以我想我將不得不回到他們,並告訴他們整理出來。這並不是說我不想學習如何配置服務器......只是會話應該正常工作。

+0

主機什麼您使用的是? – Touch 2013-04-04 11:28:47

+0

這只是一個標準的PHP頁面。這實際上只是一個包含<?php session_start()?>的php文件,而這些都是它提出的錯誤。我只需要徹底刪除整個網站,因爲整個網站對公衆開放,因爲它繞過了會話檢查!基本上只有一個頁面與session_start()。 – 2013-04-04 11:34:07

回答

1

確保有沒有聲明其他<?php session_start() ?>,並嘗試設置自己的會話臨時路徑,

<?php 
    if (!is_dir(session_save_path())) { 
     session_save_path ('your/custom/existing/directory'); 
    } 
session_start(); 
?> 
+0

好的 - 這已經解決了這個問題,非常感謝你。我真的不認爲這應該是必要的,但。它不應該被設置,因爲它應該默認工作。當我第一次嘗試你的代碼時,我正在把完整的路徑,但我現在看着別人的帖子,並得到了使用相對地址的想法。相對地址正常工作,代碼正常工作。不幸的是,我剛剛從主機帳戶中刪除了一個我的域名,以便與另一家公司託管。看起來我現在必須把它放回去! – 2013-04-04 12:18:51

+0

很高興幫助; :D – egig 2013-04-04 12:24:26

+0

我會將此標記爲已回答,因爲它是解決問題的方法,但我確實認爲標準託管帳戶應該沒有必要。我認爲它應該是PHP的默認設置。幾乎每個使用PHP的人都會使用會話...... – 2013-04-04 12:24:50

1

PHP正在嘗試將該會話保存在/var/chroot/home/content/30/10247530/tmp/中,並且無法打開該目錄(因爲它不存在或者因爲它沒有寫入權限)。調查PHP對此路徑的訪問權限,我相信您會讓會話正常工作 - 也許您在將代碼遷移到新服務器時忽略了配置變量?

+0

我沒有遷移它,他們做到了。我是否應該讓他們用默認設置設置一個全新的服務器?我沒有在服務器上設置配置 - 我只是服務的用戶,我只是做標準的東西。 – 2013-04-04 11:26:28

+0

如果您可以修改您的PHP配置,您可以使用PHP在某處執行'mkdir()',然後將其用於會話。 – deed02392 2013-04-04 11:34:36

+0

我會要求他們確保目錄:'/ var/chroot/home/content/30/10247530/tmp /'存在,並且可以被PHP寫入 - 你不需要像新的那樣採取措施服務器來解決此問題。 – alexpls 2013-04-04 11:35:59