虛擬主機禁用php fsockopen的解決方法

2021-06-03 00:40:12 字數 1331 閱讀 4693

warning: fsockopen() has been disabled for security reasons in d:\...\cos-html-cache\cos-html-cache.php on line 35

換了其他版本的cos-html-cache,還是不行。後來找到下面的方法。 = =、(結果不行,因為函式都被禁用了。)

大家試下,很少有我這樣的情況的,用其他替代函式。

一、如何禁用fsockopen()

下面是兩種常用的禁用fsockopen的方法。

1、修改php.ini,將 disable_functions = 後加入 fsockopen

2、修改php.ini,將 allow_url_fopen = on 改為 allow_url_fopen = off

二、如何解決fsockopen函式被禁用

1、如果伺服器沒有同時禁用pfsockopen,那麼直接將fsockopen函式替換為pfsockopen。

具體操作:搜尋程式中的字串 fsockopen( 替換為 pfsockopen( 。示例如下

修改前:

$fp = fsockopen($host, 80, $errno, $errstr, 30);

修改後:

$fp = pfsockopen($host, 80, $errno, $errstr, 30);

2、如果伺服器同時禁用了pfsockopen,那麼用其他函式代替,如stream_socket_client()。注意:stream_socket_client()和fsockopen()的引數不同。

具體操作:搜尋程式中的字串 fsockopen( 替換為 stream_socket_client( ,然後,將原fsockopen函式中的埠引數「80」刪掉,並加到$host。示例如下

修改前:

$fp = fsockopen($host, 80, $errno, $errstr, 30);

修改後$fp = stream_socket_client($host."80", $errno, $errstr, 30);

3、如果php版本低於5.0,fsockopen被禁用,又沒有stream_socket_client()怎麼辦呢?自己寫乙個函式實現fsockopen的功能,參考**:

function b_fsockopen($host, $port, &$errno, &$errstr, $timeout) 

}$errno = socket_last_error($s);

$errstr = socket_strerror($errno);

socket_close($s);

return false;}

mysql虛擬主機 虛擬主機有mysql嗎

mysql是一種開放源 的關係型資料庫管理系統 rdbms 使用最常用的資料庫管理語言 結構化查詢語言 sql 進行資料庫管理。mysql因為其速度 可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,mysql是管理內容最好的選擇。mysql所使用的 sql 語言是用於訪問資料庫的...

mysql和虛擬主機區別 虛擬主機mysql

推薦您看看下面的幾條,再做選擇 一 虛擬主機速度 這個是我們最關心的,一般的虛擬主機服務商都有演示的ip或者站點,咱們就可以ping它,看它的鏈結速度如何,一般的話國內的60ms,國外的200ms左右的話都算正常的,當然這個只是乙個大方面,還需要開啟站點測試一下,注意能選擇雙線空間最好,因為現在國內...

虛擬主機 virtual hosting

虛擬主機技術是網際網路伺服器採用的節省伺服器硬體成本的技術,虛擬主機技術主要應用於http服務,將一台伺服器的某項或者全部服務內容邏輯劃分為多個服務單位,對外表現為多個伺服器,從而充分利用伺服器硬體資源。如果劃分是系統級別的,則稱為虛擬伺服器。www伺服器虛擬主機是指使用一台物理機器,充當多個主機名...