参考: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
若是须要启用,则只需进行相反操做。