访问php时提示内存位置访问无效的解决办法和思路分析
php  /  管理员 发布于 7年前   213
我们就需要找到是哪一个DLL文件加载出现了问题。排查方法是:
将php.ini中 display_startup_errors = Off 改为display_startup_errors = On 。
这是访问php页面,服务器上会弹出php错误的提示对话框,你就可以明确看到是哪一个dll文件加载失败,有时会有多个dll文件加载失败,需要你先分号(;)注释掉php.ini中提示那个dll后继续访问如此反复排查。
把出问题的dll都用分号(;)注释掉后,php就可以正常运行了。
如果加载失败的dll是你必须使用的扩展库文件,那么就要从版本是否对应、文件是否齐全、文件是否已损坏等等方面去排查加载失败的原因了。不同的扩展具有不同的情况,这里就无法一一罗列了,记住:搜索引擎是你最好的帮手,针对单个dll去搜索解决的方法吧。
另外:新版本的Windows版本PHP,在出现错误时,会将详细的错误信息自动存储到Windows系统的TEMP临时目录,文件名为:php-errors.log。在Windows2003系统中路径一般是:C:\WINDOWS\Temp\php-errors.log。用记事本打开这个文件,就可以看到详细的php错误记录了。
此处往下是从网上转载的内容:
客户一个PHP网站每天早上都访问不了,提示“内存位置访问无效”,重启IIS无效,要重启服务器才能暂时正常,过一会儿又是出现这个“内存位置访问无效”的提示。
到百度上搜索了一下,找到解决方法,在此记录一下:
打开c:\windows\php.ini文件,搜索下面的字段
extension=php_exif.dll
找到后在前面加一个;分号注释掉
如下:
;extension=php_exif.dll
保存重启iis再访问一下php文件看看能否打开了,没有出现内存位置访问无效了。
以上操作实际上是把php_exif.dll组件禁用了。如果一定要用到这个组件可以试试下面这个方法:
一、将IIS的错误显示打开,未发现错误原因
二、检查IIS扩展,ISAPI、php.ini与Mysql配置以及相应的安装目录ACLs权限,均无误。
三、回收IIS进程,错误仍然出现”内存位置访问无效”….
四、将php.ini中 display_startup_errors = On 打开,问题所在终于发现了… (注:如果将php.ini的display_startup_errors打开,如果php有错误出理,就会提示,而且 在事件查看器中有记录。如果设置为display_startup_errors = Off,则不会有任何提示)
五、Warning Cannot load module ‘SQLite' because required module ‘pdo' is no loaded
六、根据以上错误提示,解决办法就很简单了,因为加载php_sqlite.dll时未加载到php_pdo.dll文件,所以运行phpinfo()函数时提示内存 位置访问无效。
找到php.ini配置文件,然后去掉”;extension=php_pdo.dll”前面的分号,extension=php_sqlite.dll
然后再回收一下IIS应用程序池进程,问题彻底解决….
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号