Windows 2008 下 PHP 开启 opcache 后频繁 500 错误解决方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 2008 下 PHP 开启 opcache 后频繁 500 错误解决方式相关的知识,希望对你有一定的参考价值。

参考技术A 最近公司后台访问速度下降,操作卡顿,公司后台环境是 windows server 2008 + iis7 + php5.6,于是在参考网上解决方案后,觉得使用 opcache 最为方便,于是参考几篇配置示例文档后,在线部署了。经过一段时间体验后,发现确实快了很多,但是相应的出现了一个以前几乎没见过的问题,访问后台时经常性 500 错误,但是刷新页面就恢复正常了,将这个现象在网上搜了一番,确实存在这个问题,但是找了许多帖子也没有发现靠谱的解决方案,于是就搁置了这个问题,刷新页面重试也是可以忍受的。

后来,经公司运营反馈发现,500 错误发生的太频繁了,另外有时候刷新也不管用,因为后台有些页面会一次性批量请求后端接口,然后几乎都是 500,这个问题就有些严重了,于是重新开始在网上寻求解决方式。

搜索到两个方案如下:

在 Internet 信息服务(IIS)管理器下的应用程序池中选择应用,右键-高级设置-标识,将 ApplicationPoolIdentity 修改为 LocalSystem,经验证,失败。

在 PHP 手册中有这么一个配置项

另外,在评论中有下面这段话,

大致意思是当我们在 windows 平台下开启 opcache 时,你可能发现运行时出现随机 500 错误,然后在 php.ini 中添加一行配置 opcache.mmap_base = 0x20000000 可以解决。不幸的是,我不知道值“0x20000000”的意义,我只能告诉你这个值可以解决这个问题。
经过验证,成功解决 500 错误!

下面贴下我自己的 opcache 配置

PHP环境的openssl开启

原文地址 : http://blog.csdn.net/tangdc88/article/details/46336871

 

windows下开启方法:

1: 首先检查php.ini中;extension=php_openssl.dll是否存在, 如果存在的话去掉前面的注释符‘;‘, 如果不存在这行,那么添加extension=php_openssl.dll。
2: 讲php文件夹下的: php_openssl.dll, ssleay32.dll, libeay32.dll 3个文件拷贝到 WINDOWS\system32\  文件夹下。
3: 重启apache或者iis(iisreset /restart)

至此,openssl功能就开启了。

Linux下开启方法:

我使用的是锦尚数据的云主机,PHP版本:5.2.14
下面方案就以我的主机为例讲解为PHP添加openssl模块支持。
网上一些答案说要重新编译PHP,添加configure参数,增加openssl的支持。这里讲一个不需要重新编译的方法。
如果服务器上存在PHP安装包文件最好,如果已经删除,去下载和phpinfo页面显示版本一样的PHP安装文件,我这里是 php-5.2.14.tar.gz
推荐去搜狐镜像下载,网易镜像没有找到。地址为: http://mirrors.sohu.com/php/
用ssh工具连接到主机。

 

复制代码代码如下:

# 下载到/var/www/php5目录下
cd /var/www/php5
wget http://mirrors.sohu.com/php/php-5.2.14.tar.gz
# 解压
tar zxvf php-5.2.14.tar.gz
# 进入PHP的openssl扩展模块目录
cd php-5.2.14/ext/openssl/
/var/www/php5/bin/phpize # 这里为你自己的phpize路径,如果找不到,使用whereis phpize查找
# 执行后,发现错误 无法找到config.m4 ,config0.m4就是config.m4。直接重命名
mv config0.m4 config.m4
/var/www/php5/bin/phpize
./configure --with-openssl --with-php-config=/var/www/php5/bin/php-config
make
make install
# 安装完成后,会返回一个.so文件(openssl.so)的目录。在此目录下把openssl.so 文件拷贝到你在php.ini 中指定的 extension_dir 下(在php.ini文件中查找:extension_dir =),我这里的目录是 var/www/php5/lib/php/extensions
# 编辑php.ini文件,在文件最后添加
extension=openssl.so
# 重启Apache即可
/usr/local/apache2/bin/apachectl restart

 

好了,现在就成功添加openssl支持。



























以上是关于Windows 2008 下 PHP 开启 opcache 后频繁 500 错误解决方式的主要内容,如果未能解决你的问题,请参考以下文章

windows server2008R2 开启远程桌面

windows2008 r2怎么开启telnet服务器

windows server2008R2 开启远程桌面

windows server2008R2 开启远程桌面

怎么开启Windows Server 2008R2域安全策略的方法步骤

windows 2008 r2 远程桌面怎么破解