thinkphp在ubuntu下验证码无法加载或者验证码错误问题的解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp在ubuntu下验证码无法加载或者验证码错误问题的解决相关的知识,希望对你有一定的参考价值。

最近LZ在做一个thinkphp的项目,用的是WAMP开发的。把代码移植到ubuntu下,就出问题了,验证码无法显示。之前也碰到过这样的问题,无非是GD库没有加载,或者是session写入权限问题。 
先说下这两个问题的解决办法:

① GD库没有加载

安装gd库

apt-get install php5-gd

搜到gd.so在/usr/lib/php5/20090626+lfs/目录下 ,需要修改php.ini,php.ini在/etc/php5/apach2目录下。 
于是修改php.ini:

extension_dir="/usr/lib/php5/20060613+lfs/" 

再添加一行

 extension=gd.so 

 

重启 apach2:

/etc/init.d/apach2 restart

② session写入权限问题

<?php
  $sessionpath = session_save_path();
  //获取当前session的保存路径  
  echo $sessionpath;
?>

 

修改权限为777.

补充:还有童鞋说是bom问题 再此我也说下,可能好多童鞋可能不知道BOM 是什么,在此我也说明下。 
BOM: 
为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE(U+FEFF)字符开头。这作为一个“特征符”或“字节顺序标记(byte-order mark,BOM)”来识别文件中使用的编码和字节顺序。 
Linux/UNIX 并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。 (– 这就是导致这次页面出现空白行的原因) 
dom不是好东西就是一个数据签名,一串字符串而已,经常导致页面出现空白行,特别是PHP进行文件引入require_once和include的时候。

③ Linux下查找包含BOM头的文件和清除BOM头命令

查找包含BOM头的文件,命令如下: 
点击(此处)折叠或打开

grep -r -I -l $‘^\\xEF\\xBB\\xBF‘ ./

\\xef\\xbb\\xbf是UTF8 BOM的16进制表示 
这个命令会把当前目录及所有子目录下的BOM头删除掉。 
点击(此处)折叠或打开

find . -type f -exec sed -i ‘s/\\xEF\\xBB\\xBF//‘ {} \\;

另一种方法: 
点击(此处)折叠或打开

echo -ne ‘\\xef\\xbb\\xbf123456‘ | awk ‘{if(NR==1)sub(/^\\xef\\xbb\\xbf/,""); print}‘

BOM的详细解释 
http://www.cnblogs.com/chengmo/archive/2010/10/30/1864004.html

本文转载自http://blog.csdn.net/kunpeng1987/article/details/72876347












以上是关于thinkphp在ubuntu下验证码无法加载或者验证码错误问题的解决的主要内容,如果未能解决你的问题,请参考以下文章

你好 我的thinkphp后台 验证码图片无法显示 请问下如何解决啊 谢了

如何解决thinkphp5中验证码常见问题

ubuntu 中php不支持gd库的freetype,导致页面验证码无法加载

thinkphp5 跨域验证码

解决纸壳CMS在ubuntu系统验证码无法显示

Thinkphp 5 验证码无法正常显示的排错以及解决方案 已解决