參考:http://www.daixiaorui.com/read/16.html#viewplphp
服務器如何開啓php的fsockopen函數?若是你要使用一些郵件的類,那麼不少要求支持php的fsockopen函數。可是服務器默認不是開啓的。下面是從網上找的2中開啓的方法,針對不一樣的用戶。html
echo phpinfo(); 查disable_functions,若是後面出現了fsock,fsockopen,則須要把這兩個函數去掉,而後繼續下面:
方法一:web
第一步:apache
php.ini文件中查找瀏覽器
allow_url_fopen = On安全
使其值爲On服務器
第二步:socket
php.ini文件中查找函數
extension=php_openssl.dll網站
若是前面有分號;,去掉分號;
第三步:
重啓web服務器,apache或IIS
還有一種狀況,也就是方法二:
1. vi php.ini
找到 allow_url_fopen 這個參數設置成 On,即
allow_url_fopen = On
2. 讓你的php支持 opensll擴展。
默認,是沒有openssl擴展的,只能從新編譯安裝。
yum install openssl openssl-devel
cd /usr/local/src/php-5.2.14/ext/openssl
/usr/local/php/bin/phpize
./configure –with-openssl –with-php-config=/usr/local/bin/php-config
make && make install
看提示,把編譯成的openssl.so 拷貝到你在php.ini 中指定的 extension_dir 下
3. vi php.ini
加入
extension=openssl.so
4. 重啓web server
摘要: fsockopen()函數的做用是能夠用來打開一個socket鏈接,另外一個函數pfsockopen()也有類似的功能,只不事後者是一個「持續」(persistent)的fsockopen()函數,它在腳本運行完以後並不當即斷開。
fsockopen()函數存在着比較大的安全問題,好比曾經就被黑客用來進行PHPDDOS攻擊,所以不少主機提供商禁用了這個函數。
那麼如何知道本身的主機提供商有沒有禁用這個函數呢?
咱們能夠在任意一個網站目錄下新建一個.php文件,在其中輸入以下代碼:
<?php
echo phpinfo();
?>
保存以後再在瀏覽器中訪問該頁面,可看到頁面中呈現的是當前PHP的配置信息,按Ctrl+F搜索allow_url_fopen或disable_functions,能夠看到以下圖所示:
在allow_url_fopen那一欄中,若是值爲On,而且disable_functions這個禁用函數列表中沒有fsockopen函數時,則代表fsockopen()函數是可使用的,不然fsockopen()函數可能就被禁用了。
那如何才能啓用或禁用這個函數呢?
咱們須要找到php.ini這個PHP配置文件,若是須要禁用,則需在其中進行以下修改:
1.將allow_url_fopen=On修改爲allow_url_fopen=Off
2.在disable_functions=後添加fsockopen
若是須要啓用,則只需進行相反操做。