生产环境nginx代码报错500
2015-11-26 11:29
549 查看
2015年11月23日晚搭建完BRS系统(上传图片系统)后,测试机器功能发现无法图片无法上传到服务器上,查看nginx日志后发现日志nginx状态码返回500(内部服务器错误),
1、开始认为是nginx权限导致,把upload目录改为777,但是依然无效,后思考下如果是权限问题不应该返回500,而是403之类的状态码,后开始进行下一步排查;
2、后利用google的调试功能进行排查,后发现貌似数据库报错,插入不了数据,有的字段未显示但还不能为空,所以插入不进去数字,原因在于数据库配置问题,后把mysql配置文件中的严格模式改为非严格模式解决次问题;
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER
修改为:
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
3、数据库改完后发现上传原图可以了 ,但是生成规格图又无法上传了,还是报错500,请教php工程师后发现有个生成规格图的包在编译的php中exif.so未发现,然后安装exif.so扩展包后在测试成功解决问题!
先来了解什么是图片的Exif信息Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的。实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS)、缩略图等。简单地说,Exif=JPEG+拍摄参数。因此,你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息。
开启PHP模块默认情况下,PHP读取图片Exif信息模块是不开启的,我们需要先开启这个模块。开启Exif模块需要mbstring支持,所以先来安装mbstring,以下是以Linux环境为例,其它环境类似。安装mbstring模块首先找到php源码包位置,直接进入ext/mbstring,执行以下命令安装,具体参数得看自己的环境。
代码如下:
[root@lee ext]# cd /data0/software/php/ext/mbstring
[root@lee mbstring]# /usr/local/webserver/php/bin/phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
[root@lee exif]# ./configure --with-php-config=/usr/local/webserver/php/bin/php-config
[root@lee mbstring]# make && make install
Installing shared extensions: /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/
Installing header files: /usr/local/webserver/php/include/php/
[root@lee mbstring]#
安装好以后,我们可以进入extensions目录看看模块是否存在,存在表示安装成功。
1、开始认为是nginx权限导致,把upload目录改为777,但是依然无效,后思考下如果是权限问题不应该返回500,而是403之类的状态码,后开始进行下一步排查;
2、后利用google的调试功能进行排查,后发现貌似数据库报错,插入不了数据,有的字段未显示但还不能为空,所以插入不进去数字,原因在于数据库配置问题,后把mysql配置文件中的严格模式改为非严格模式解决次问题;
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER
修改为:
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
3、数据库改完后发现上传原图可以了 ,但是生成规格图又无法上传了,还是报错500,请教php工程师后发现有个生成规格图的包在编译的php中exif.so未发现,然后安装exif.so扩展包后在测试成功解决问题!
先来了解什么是图片的Exif信息Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的。实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS)、缩略图等。简单地说,Exif=JPEG+拍摄参数。因此,你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息。
开启PHP模块默认情况下,PHP读取图片Exif信息模块是不开启的,我们需要先开启这个模块。开启Exif模块需要mbstring支持,所以先来安装mbstring,以下是以Linux环境为例,其它环境类似。安装mbstring模块首先找到php源码包位置,直接进入ext/mbstring,执行以下命令安装,具体参数得看自己的环境。
代码如下:
[root@lee ext]# cd /data0/software/php/ext/mbstring
[root@lee mbstring]# /usr/local/webserver/php/bin/phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
[root@lee exif]# ./configure --with-php-config=/usr/local/webserver/php/bin/php-config
[root@lee mbstring]# make && make install
Installing shared extensions: /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/
Installing header files: /usr/local/webserver/php/include/php/
[root@lee mbstring]#
安装好以后,我们可以进入extensions目录看看模块是否存在,存在表示安装成功。
相关文章推荐
- Nginx
- nginx初测
- Nginx安装部署
- Nginx安装与性能优化
- Nginx服务器的功能模块
- linux+nginx搭建server与client通过证书双向认证环境
- [转]Nginx+ThinkPHP不支持PathInfo的解决办法
- Mac下安装LNMP(Nginx+PHP5.6)环境(转)
- lamp+nginx代理+discuz+wordpress+phpmyadmin
- Linux nginx 配置 location 语法 正则表达式
- Linux操作系统安装nginx
- Nginx服务器
- 【nginx】负载均衡和proxy的配置
- Nginx下用webbench进行压力测试
- Nginx 配置详解
- Linux下搭建nginx php环境
- keepalived+nginx的nginx高可用(个人简单不详细记录)
- nginx中location中关于proxy_pass和rewrite的应用
- nginx upstream setting
- Zabbix 监控Nginx_status 自动发现脚本