PHP fastcgi模式运行的PHP上传文件MaxRequestLen错误解决
刚装好的apache2.4.9+php5.4,在使用phpmyadmin导入数据时出现服务器500错误。查看日志后发现
mod_fcgid: HTTP request length 135024 (so far) exceeds MaxRequestLen (131072)
意思应该是请求太长了,但以前从没见过MaxRequestLen这玩意,到httpd.conf中查找,没有;又到php.ini中查找,还是没有。只好百度,原因貌似是高版本的apache的默认请求数据改小了,也有说是fcgi运行的原因,反正不管怎么样,解决方法只有一个:
在httpd.conf中添加一条
# 修改fgci请求限制
MaxRequestLen 5242880
例子
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
FcgidConnectTimeout 20
# to get around upload errors when uploading images increase the MaxRequestLen size to 15MB
MaxRequestLen 15728640
</IfModule>
然后重启apache,就不再提示错误了。
注意:如果你只需要修改单个虚拟主机的MaxRequestLen,只需要添加到 virtualhost中就行了。如果是全局的,添加到 httpd.conf
PHPMailer在SAE上无法发送邮件怎么回事呢,我们以前在php5.2.7版本中使用了PHPMailer是可以发,但移到sae中发现无法发邮件了,那么此问题如何解决在SAE上直接用5.2.7之前版本的PHPMailer发送邮件会出现错误,原因在于PHPMailer默认使用stream_socket_client()来建立socket,而SAE禁用了这个函数。WordPress使用的就是5.2.7版本的PHPMailer,因此也会出现同样的问题。
解决方法很简单,修改class.smtp.php (WordPress中是wp-includes/class-smtp.php)中
$this->smtp_conn = @stream_socket_client(
$host . ":" . $port,
$errno,
$errstr,
$timeout,
STREAM_CLIENT_CONNECT,
$socket_context
);
为
$this->smtp_conn = fsockopen($host, $port, $errno, $errstr);
即可。
最新的5.2.8版PHPMailer已经解决了这个问题。
下面来看看在使用php5.3时碰到的Fatal error: Undefined class constant MYSQL_ATTR_INIT_COMMAND错误解决办法。
今天帮朋友做了个简单的信息录入程序,本地调试一切OK。
传到朋友的服务器后,死活不能用,一涉及数据库的读写就出现一个Fatal error.
Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' 查来查去,原来是PHP5.3.0的BUG
http://bugs.php.net/bug.php?id=47224
解决办法有两种,一是改代码
$pdb = new PDO("mysql:host=localhost;dbname=test", 'root');
$pdb->exec("SET NAMES utf8");
二就是升级你的PHP到更高的版本喽~~
所以,要从PHP5.2升级到PHP5.3的同学,要注意一下你的代码呀~~
先来看配置文件
$cache = new Cache(43200,'D:/wwwroot/cache/tmp/anzhuo/');//参数1 秒,参数2内容
$page = intval(isset($_GET['page'])?$_GET['page']:1);
$key = 'anzhuo_data_4'.$page;
$values = $cache->display($key);
这个是生成缓存文件了,但是发现生成是提示
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(../license.php) is not within the allowed path(s):
这个百度直接搜索 open_basedir restriction in effect 错误看到如下图所示答案
问题是出现在了PHP.INI上面了
原因是php.ini里设置了
opendir=/var/web/w0895/:/tmp:/usr/lib/php
解答:
其实open_basedir 这个是用来限制php的目录访问权限什么的,如果不在允许的范围内,php就不能访问。
这个 open_basedir 在 php.ini 里可以设定,也可以在 apache的httpd.conf 里面设定
例如:
php_admin_value open_basedir "D:/wwwroot/cache/tmp/anzhuo/"
再比如:
php_admin_value open_basedir =/var/web/w0895/:/tmp:/usr/lib/php
好了再重启apache问题解决了。
下面一起来看看在php开发中碰到PHP Fatal error: Cannot use object of type stdClass as array in错误问题的解决办法吧。
普通的数组出现如下错误
代码如下 | 复制代码 |
<?php |
后来百度搜索一个关于差不多的问题,但对方是json数据
php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误:
Cannot use object of type stdClass as array
产生原因:
代码如下 | 复制代码 |
$res = json_decode($res); |
解决方法(2种):
1、使用 json_decode($d, true)。就是使json_decode 的第二个变量设置为 true。
2、json_decode($res) 返回的是一个对象, 不可以使用 $res['key'] 进行访问, 换成 $res->key 就可以了。
好了现在回到我们原问题发现
原来是不能直接用[]来显示导致的,上面代码的输出是用的:$pic[0][title],改为$pic[0]->title后正常了
相关文章
php无刷新利用iframe实现页面无刷新上传文件(1/2)
利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25如何在Spring WebFlux的任何地方获取Request对象
这篇文章主要介绍了如何在Spring WebFlux的任何地方获取Request对象,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下...2021-01-26- 分享给大家php判断上传文件类型的方法,大家一起学习学习。/** * 读取文件前几个字节 判断文件类型 * @return String */ function checkTitle($filename){ $file=fopen($filename, "rb"); $bin=fread($file, 2); /...2015-10-21
C#中HttpWebRequest、WebClient、HttpClient的使用详解
这篇文章主要介绍了C#中HttpWebRequest、WebClient、HttpClient的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25- 这篇文章主要介绍了Vue使用formData格式类型上传文件的示例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-04
python爬虫用request库处理cookie的实例讲解
在本篇内容里小编给大家整理的是一篇关于python爬虫用request库处理cookie的实例讲解内容,有需要的朋友们可以学习参考下。...2021-02-21微信小程序 wx.request(object) API详解及实例代码
这篇文章主要介绍了微信小程序 wx.request(object) API详解及实例代码的相关资料,需要的朋友可以参考下...2016-10-02c# HttpWebRequest通过代理服务器抓取网页内容应用介绍
在C#项目开发过程中可能会有些特殊的需求比如:用HttpWebRequest通过代理服务器验证后抓取网页内容,要想实现此方法并不容易,本文整理了一下,有需求的朋友可以参考下...2020-06-25- 下面小编就为大家分享一篇c# FTP上传文件的实例代码,超简单哦~希望对大家有所帮助。一起跟随小编过来看看吧,...2020-06-25
- if( isset($_FILES['upImg']) ) { if( $userGroup[$loginArr['group']]['upload'] == 0 ) { echo '{"error":"您所在的用户组无权上传图片!"}'; } else...2016-11-25
解决偶现的MissingServletRequestParameterException异常问题
这篇文章主要介绍了解决偶现的MissingServletRequestParameterException问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-25- 这篇文章主要介绍了yii实现使用CUploadedFile上传文件的方法,结合具体的前端与后端处理代码实例分析了CUploadedFile类的使用方法,需要的朋友可以参考下...2015-12-31
阿里云OSS 通过表单直接上传文件 Post Policy例子
本文章为各位简单介绍阿里云OSS 通过表单直接上传文件 Post Policy例子,这个例子非常的简单只需要简单的像php一样就可以了,具体如下。 代码如下 复制代...2016-11-25ASP.NET使用HttpWebRequest读取远程网页源代码
本文分享了一个使用HttpWebRequest读取远程网页的案例,供大家参考学习。...2021-09-22- 这篇文章主要介绍了PHP响应post请求上传文件的方法,涉及php针对post传输数据处理的相关技巧,需要的朋友可以参考下...2015-12-21
- Request是一个Node.jsNPM模块,它是一个HTTP客户端,使用简单功能确十分强大...2017-05-09
php中time()与$_SERVER["REQUEST_TIME"]比较
简单的说time()与$_SERVER["REQUEST_TIME"]都是获得时间了,但time返回当前的 Unix 时间戳而$_SERVER["REQUEST_TIME"]得到请求开始时的时间戳了了,稍有区别哦。 1)...2016-11-25failed to open stream: HTTP request failed
fopen他以采集远程服务器的内容保存到本地同时也可以打开本地的文件,是一个非常不错的函数,下面我们来看看关于在使用fopen函数时出现failed to open stream: HTTP reque...2016-11-25failed to open stream: HTTP request failed!
file_get_contents函数有时出错 failed to open stream: HTTP request failed! 地址是上面的,有些地址可以,有些就 failed to open stream: HTTP request failed!, file_...2016-11-25关于ThreadLocal对request和response的用法说明
这篇文章主要介绍了关于ThreadLocal对request和response的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-18