1. 程式人生 > >WeLive4無法連線伺服器的解決辦法

WeLive4無法連線伺服器的解決辦法

由於WeLive4是一個使用socket通訊技術的企業級線上客服系統, 能否正常使用,受各種伺服器的設定, linux下iptables防火牆配置等影響比較大。

不同的伺服器可能需要做相應的調整才能正常使用!!

我們的開發環境為: win7, PHPnow(apache php mysql)。本地伺服器基本未做任何調整,均能正常安裝與使用。

下面是其它型別的伺服器出現的問題及相應解決辦法:

第一類伺服器: IIS  FastCGI伺服器

1.  檢查IIS相關配置,開放welive4需要佔用的8340埠(welive4預設安裝時使用此埠,根據自己的實際設定調整)

2.  FastCgi的配置檔案“fcgiext.ini”(一般位於目錄“C:/WINDOWS/system32/inetsrv”下, 確切位置自己探索下)
在“fcgiext.ini”最末php的配置內容中增加了一些引數,如下:

[Types]
php=PHP
[PHP]
ExePath=C:/PHP/php-cgi.exe
InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000

RequestTimeout=500       //使用者連線時間限制(秒), 這個要改大,否則WeLive4連線中, 不發信息就會自動斷線(按理說fastCGI不應該限制socket連線時間)
ActivityTimeout=900          //這個設定影響socket長時間保持執行, 這個要改成9999999,即很大。

也可以將上述兩個設定直接刪除, 然後重啟伺服器再測試WeLive


第二類伺服器:LAMP apache伺服器或LNMP fastCGI伺服器:

LAMP = Linux + Apache + Mysql + PHP

LNMP = Linux + Nginx + Mysql + PHP

建議檢查伺服器如下配置:
1. php配置中的safe_mode為off          (如果為on, 肯定無法執行正常)

2. php配置中的disable_functions可能禁用了一些函式執行: set_time_limit, ignore_user_abort等函式不能禁用

3. SELinux是否disabled           (如果SELinux沒有設定成disabled, 還需要調整有關設定才能啟動socket服務)

4. 檢查iptables防火牆是否開放了socket使用的埠號,比如開放8430給socket使用,那麼此埠不能給其它服務使用,如被動的FTP服務。
    同時在防火牆iptables配置檔案中開放socket埠號時, 需要允許接受tcp和icmp兩種協議的封包。
    如果不知道如何配置iptables, 可以先關閉iptables服務進行測試,這樣可先定位無法正常使用的原因:service iptables stop

5. 檢查WeLive4基本設定中的socket埠號是否與第3點開放的埠號一致。

6. LNMP平臺, 使用fastCGI載入php,檢查fastCGI的配置檔案中以下配置:
     RequestTimeout=500       //使用者連線時間限制(秒), 這個要改大,否則WeLive4連線中, 不發信息就會自動斷線(按理說fastCGI不應該限制socket連線時間)
     ActivityTimeout=900          //這個設定影響socket長時間保持執行, 這個要改成9999999,即很大。

    IIS下的fastCGI有此兩項設定,上兩項供Nginx下fastCGI參考。

7. 配置等調整後,重啟伺服器,不是service httpd restart這種重啟。是reboot計算機重啟。


8. 問題還存在時,更改一下預設的埠號。在後臺基本設定中改一下Socket預設埠號843,改成8430試下。有些使用者這麼改下,伺服器連線成功。可能的原因是某些伺服器把843埠禁用了。