服务器如何开启php的fsockopen函数? 使用发邮箱类

服务器如何开启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

如果需要启用,则只需进行相反操作。

原文地址:https://www.cnblogs.com/xuzhengzong/p/8203728.html

时间: 2024-07-30 20:34:09

服务器如何开启php的fsockopen函数? 使用发邮箱类的相关文章

fsockopen函数被禁用的解决方法

判断fsockopen 是否可用:function_exists('fsockopen');如果没有开启 一.开启fsockopen函数 修改php.ini,将 disable_functions = 后面的fsockopen去掉,如果有的话. 修改php.ini,将 allow_url_fopen = Off 改为 allow_url_fopen = On 二.虚拟主机替代方法 1.pfsockopen替代 如果服务器没有同时禁用pfsockopen,那么直接将fsockopen函数替换为pf

利用 fsockopen() 函数开放端口扫描器

利用 fsockopen() 函数开放端口扫描器 1.前言 本文利用 fsockopen() 函数,编写一个功能简单的端口扫描器. 2.关键技术 本实例的端口号是固定的,通过对数组的遍历,利用 fsockopen() 函数连接,如果连接成功,则该端口处于开放状态,否则该端口处于关闭状态. 核心代码如下: foreach ($port as $key => $value) { echo '<tr>'; echo '<td>' . $key . '</td>'; ec

PHP的fsockopen函数详解

先来看看手册是如何定义fsockopen函数的. fsockopen - 打开一个网络连接或者一个Unix套接字连接. resource fsockopen    ( string $hostname   [, int $port = -1   [, int &$errno   [, string &$errstr   [, float $timeout = ini_get("default_socket_timeout")  ]]]] 使用fsockopen方法和使用

PHP Socket编程 之使用fsockopen()函数

Socket可以理解为两台计算机相互通信的通道. 用法:使用fsockopen()函数 具体用法详见上篇文章.函数的参数为URL.端口号.一个存放错误编号的变量.一个存放错误信息字符串的变量和超时等待时间.(只有第一个参数是必须的) 常见的端口表: 端口号 主要用途 21 FTP 22 SSH 23 Telnet 25 SMTP 80 Web 110 POP 其中,组成URl的几个部分为:协议名(scheme),主机(host),端口号(port),文件路径(path),查询参数(query).

织梦dedecms 无法下载远程图片 fsockopen函数被禁用的解决方法

在linux服务器上fsockopen()函数被无情的禁用了(这其实是出于安全考虑,可以理解),下载远程图片的功能就没有办法使用了.找了一些资料之后,找到了解决方法,就是用stream_socket_client()函数替换掉fsockopen()函数.具体的方法如下: 打开/include/中的dedehttpdown.class.php文件,找到如下代码: $this->m_fp = @fsockopen($this->m_host, $this->m_port, $errno, $

PHP服务器变量$_SERVER及其几个函数的使用

PHP服务器变量$_SERVER及其几个函数的使用 PHP服务器变量$_SERVER及其几个函数的使用:QUERY_STRING.REQUEST_URI.SCRIPT等1.$_SERVER["QUERY_STRING"]说明:获取的query的字符串2.$_SERVER["REQUEST_URI"]说明:访问地址的页面及页面参数Url3.$_SERVER["SCRIPT_NAME"]说明:访问当前脚本的路径4.$_SERVER["PHP

IIS6.0服务器完美开启Gzip压缩[转]

转自:http://seo.qiankoo.com/731 在昨天服务器还没重装之前,这个服务器已经开启了Gzip,去年配置的时候就很波折,因为配置文件在C盘,所以重装后Gzip就没了. 今天理论上第二次配置Gzip应该很轻松的,但是苦逼的人总能遇到意想不到的问题. IIS6.0开启Gzip的整个流程 第一步 首先右击“本机计算机”选择“允许直接编辑配置数据库”,这样做的目的是可以直接修改配置文件,或者在服务里停止掉“IIS Admin Service”服务(需谨慎), 第二步 右键“web服务

检查服务器是否开启GD库

1.把以下代码复制到记事本中并保存成A.php<?phpOb_end_flush();header ("Content-type: image/png");$im = @imagecreate (200, 100)or die ("无法创建图像");$background_color = imagecolorallocate ($im, 0,0, 0);$text_color = imagecolorallocate ($im, 230, 140, 150);

Android客户端判断服务器是否开启 HttpHostException解决方案

Android判断服务器是否开启,试了很多方法都不行(若server未开启会卡在HttpResponse那),有人说高版本的Android程序不允许在主线程中访问网络(主线程中可以读写网络流)有待于验证. 方法一: 在xxxActivity的onCreate()方法中添加 StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadP