1. 程式人生 > >服務器如何開啟php的fsockopen函數? 使用發郵箱類

服務器如何開啟php的fsockopen函數? 使用發郵箱類

configure fig extension clas 啟用 fsockopen devel http協議 指定

服務器如何開啟php的fsockopen函數?如果你要使用一些郵件的類,那麽很多要求支持php的fsockopen函數。但是服務器默認不是開啟的。下面是從網上找的2中開啟的方法,針對不同的用戶。

echo phpinfo(); 查disable_functions,如果後面出現了fsock,fsockopen,則需要把這兩個函數去掉,重啟apache,然後繼續下面:

  方法一:

  第一步:

  php.ini文件中查找

  allow_url_fopen = On

  使其值為On

  第二步:

  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()函數,它在腳本運行完之後並不立即斷開。

一、
第一步
找到php.ini文件,用記事本打開,查找 allow_url_fopen = 看看後面是 off 還on, 如果是on,直接看下一步,如果是off 那就修改成on,需要註意完整的是allow_url_fopen = on等號的左右有空格。
allow_url_fopen = on
第二步
繼續在php.ini文件中,查找,查找extension=php_openssl.dll 找到以後大家註意,extension=php_openssl.dll這段代碼前面會有個 ; 號,只要把這個 ; 號刪除,然後保存。
extension=php_openssl.dll
第三步
如果是IIS 就重啟IIS
如果是apache 就重啟apache

二、
fsockopen()函數以Socket模擬HTTP協議(POST)
可以進行類似真實的http操作,可用於采集,群發論壇發帖等等。。。 fsockopen()函數的作用是可以用來打開一個socket連接,另一個函數pfsockopen()也有相似的功能,只不過後者是一個“持續”(persistent)的fsockopen()函數,它在腳本運行完之後並不立即斷開。

fsockopen()函數存在著比較大的安全問題,比如曾經就被黑客用來進行PHPDDOS攻擊,因此很多主機提供商禁用了這個函數。

那麽如何知道自己的主機提供商有沒有禁用這個函數呢?

我們可以在任意一個網站目錄下新建一個.php文件,在其中輸入如下代碼:

<?php

echo phpinfo();

?>

保存之後再在瀏覽器中訪問該頁面,可看到頁面中呈現的是當前PHP的配置信息,按Ctrl+F搜索allow_url_fopendisable_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

如果需要啟用,則只需進行相反操作。

服務器如何開啟php的fsockopen函數? 使用發郵箱類