2016-02-29 24 views
1

我有laravel 4.2安裝在本地環境(Windows 10)進行測試,但在更新任何文件後不斷收到連接重置錯誤。任何文件更改後Laravel連接重置

我的項目將加載並且服務器正常顯示我的頁面。但是,如果我更新文件(例如索引),然後嘗試訪問呈現最新更新的文件的頁面,我總是會收到連接重置錯誤。即使是一段簡單的變化。

更有趣的是,當我使用php工匠來服務我的文件時,我從來沒有得到連接重置問題。如果我通過工匠服務頁面訪問頁面,那麼所有突然出現的xampp都想工作,但是隻有在我從工匠之前加載頁面之後才能工作。

如果我再次修改文件,我必須重複這個過程。

本地設置

我的項目是從XAMPP(V 3.2.2)與下列V-主機配置本地託管。主機文件也被正確配置。

<VirtualHost *:80> 
DocumentRoot "C:/xampp/htdocs/myproject/public" 
ServerName myproject.local 
ServerAlias myproject.local 
ErrorLog "logs/myproject.log" 
CustomLog "logs/custom.myproject.log" combined 
<Directory "C:/xampp/htdocs/myproject/public"> 
    AllowOverride All 
    Require all granted 
</Directory> 

總之:我改變一個文件,我得到的連接復位的XAMPP試圖訪問該頁面時。我查看了工匠的頁面,然後在xampp上刷新頁面,突然它就起作用了。

更新

我試圖交替如laragon盧卡斯的建議,但同樣的錯誤仍然存​​在。在嘗試訪問該頁面時更新任何文件後,出現連接重置錯誤。

我已經找到了更多的信息,看看laragon的apache日誌。

[Tue Mar 01 08:52:22.785519 2016] [mpm_winnt:notice] [pid 6748:tid 544] AH00428: Parent: child process 8276 exited with status 3221225725 -- Restarting. 
[Tue Mar 01 08:52:22.928687 2016] [ssl:warn] [pid 6748:tid 544] AH01909: www.example.com:8443:0 server certificate does NOT include an ID which matches the server name 
[Tue Mar 01 08:52:22.938712 2016] [mpm_winnt:notice] [pid 6748:tid 544] AH00455: Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.6.16 configured -- resuming normal operations 
[Tue Mar 01 08:52:22.938712 2016] [mpm_winnt:notice] [pid 6748:tid 544] AH00456: Apache Lounge VC11 Server built: Oct 13 2015 10:54:13 
[Tue Mar 01 08:52:22.938712 2016] [core:notice] [pid 6748:tid 544] AH00094: Command line: 'C:\\laragon\\bin\\apache\\apache-2.4.17/bin/httpd -d C:/laragon/bin/apache/apache-2.4.17' 
[Tue Mar 01 08:52:22.939695 2016] [mpm_winnt:notice] [pid 6748:tid 544] AH00418: Parent: Created child process 3672 
[Tue Mar 01 08:52:23.214917 2016] [ssl:warn] [pid 3672:tid 532] AH01909: www.example.com:8443:0 server certificate does NOT include an ID which matches the server name 
[Tue Mar 01 08:52:23.296629 2016] [ssl:warn] [pid 3672:tid 532] AH01909: www.example.com:8443:0 server certificate does NOT include an ID which matches the server name 
[Tue Mar 01 08:52:23.306647 2016] [mpm_winnt:notice] [pid 3672:tid 532] AH00354: Child: Starting 64 worker threads. 
[Tue Mar 01 08:52:24.159843 2016] [mpm_winnt:notice] [pid 6748:tid 544] AH00428: Parent: child process 3672 exited with status 3221225725 -- Restarting. 
[Tue Mar 01 08:52:24.305896 2016] [ssl:warn] [pid 6748:tid 544] AH01909: www.example.com:8443:0 server certificate does NOT include an ID which matches the server name 
[Tue Mar 01 08:52:24.315916 2016] [mpm_winnt:notice] [pid 6748:tid 544] AH00455: Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.6.16 configured -- resuming normal operations 
[Tue Mar 01 08:52:24.315916 2016] [mpm_winnt:notice] [pid 6748:tid 544] AH00456: Apache Lounge VC11 Server built: Oct 13 2015 10:54:13 
[Tue Mar 01 08:52:24.315916 2016] [core:notice] [pid 6748:tid 544] AH00094: Command line: 'C:\\laragon\\bin\\apache\\apache-2.4.17/bin/httpd -d C:/laragon/bin/apache/apache-2.4.17' 
[Tue Mar 01 08:52:24.317905 2016] [mpm_winnt:notice] [pid 6748:tid 544] AH00418: Parent: Created child process 3600 
[Tue Mar 01 08:52:24.580068 2016] [ssl:warn] [pid 3600:tid 552] AH01909: www.example.com:8443:0 server certificate does NOT include an ID which matches the server name 
[Tue Mar 01 08:52:24.666114 2016] [ssl:warn] [pid 3600:tid 552] AH01909: www.example.com:8443:0 server certificate does NOT include an ID which matches the server name 
[Tue Mar 01 08:52:24.675120 2016] [mpm_winnt:notice] [pid 3600:tid 552] AH00354: Child: Starting 64 worker threads.
+0

我有一個關於如何在我的網站上爲開發創建虛擬主機的教程。可能必須將其移植到Windows,因爲它是用於Linux的http://simpledeveloper.com/how_to_setup_virtual_host_in_apache/ – Eenvincible

回答

2

這個問題最終通過Apache的配置更改解決。

添加以下到的httpd.conf文件

<IfModule mpm_winnt_module> 
    ThreadStackSize 8888888 
</IfModule> 

然後重新啓動。

問題是,Windows的默認堆棧大小比Linux/Unix系統小。我花了一段時間才弄清楚這一點。 Apache無聲無息地崩潰,我的日誌中沒有發現任何錯誤,因此很難追蹤。

我正在處理的項目有大量的正則表達式調用,顯然這是一個已知的觸發器,導致這個問題與Windows上的Apache。如果您查看apache文檔,我們可以將ThreadStackSize更新爲更接近於Unix/Linux系統8MB的值。

http://httpd.apache.org/docs/2.2/mod/mpm_common.html#ThreadStackSize

我希望這可以幫助任何人運行Apache作爲本地服務器在Windows系統上的其他發展。這是一段時間以來最令人頭疼的事情。

+0

在Windows上開發時,我從來沒有遇到過這個問題,但如果在將來發生的時候很好地知道如何解決它。 – Lucas

+0

@盧卡斯是這是我第一次遇到這個問題。事實上,花了大約2個月才終於解決了這個問題。 – Olixr

0

php artisan serve使用內置在服務器上(php -S localhost:80 -t public)的PHP託管應用程序。

也許問題可能是你的Apache配置,所以試試這個:

# define DOCROOT variable 
define DOCROOT "C:/xampp/htdocs" 

<Directory "${DOCROOT}"> 
    AllowOverride All 
    Require all granted 
</Directory> 

<VirtualHost *:80> 
    DocumentRoot "C:/xampp/htdocs/myproject/public/" 
    ServerName myproject.dev 
</VirtualHost> 

如果問題仍然存在,請嘗試使用Laragon始終打開它爲管理員。

+0

感謝您的迴應,我試圖將Apache配置更新無濟於事。我在另一臺計算機上有完全相同的設置,無法重現此問題。我也完全刪除xampp並重新安裝,但問題仍然存在。內置的php服務器無法正常工作(有許多資產問題)。我目前正試圖下載laragon,看看我們從那條路線上得到了什麼。任何其他選項表示讚賞。 – Olixr

+0

讓我知道你是否喜歡拉拉貢。 – Lucas

+0

拉拉貢看起來不錯,使用簡單,但同樣的錯誤仍然存​​在(連接重置)。我用更多的信息更新了我的問題。 – Olixr

0

打開php錯誤日誌可能會幫助您找到真正的問題。我的代碼有錯誤(直接在函數上使用isset())