我一直在使用codeigniter的验证码我在我的电脑上工作得很好,但不知何故,当我上传到服务器时,它不生成图像,我一直在尝试从stackoverflow的其他帖子的建议,但它不工作
我已经检查过了
- GD已启用
1.我已经用递归模式对资产目录执行了chmod 755
请在下面找到我的控制器代码
public function captcha_config() {
$this->load->helper(array('captcha','form'));
$vals = array(
'img_path' => '/var/www/html/assets/files/captcha/',
'img_url' => base_url().'assets/files/captcha/',
'img_width' => 150,
'img_height' => 30,
'expiration' => 7200
);
$cap = create_captcha($vals);
$this->session->set_userdata('capt',md5($cap['word']));
$image = $cap['image'];
//$data['captcha_img'] = $cap['image'];
//return $image;
var_dump($cap); //it shown bool(false)
}
结果是
bool(false)
我一直在把下面的路径改变成这样,但也没有奏效。
./assets/files/captcha/
2016年4月6日更新------------------------------------------
我还有一条线索
当我在helper(captcha_helper)中进行调试后,我将一些返回值False更改为调试模式。它显示以下错误
Message: imagejpeg(/var/www/html/assets/files/captcha/1465012057.5767.jpg): failed to open stream: Permission denied
我已经做了改变captcha目录是chmod 777,但它似乎不工作。
我已经将所有权更改为Apache,我正在使用此脚本从Web检查所有权,但仍然不起作用?
<?php echo exec('whoami'); ?>
为什么验证码无法写入该目录?
4条答案
按热度按时间bcs8qyzn1#
你的i
img_path
不对,用这个试试CodeIgniter Captcha Helper Example - FormGet.com
cs7cruho2#
因为这篇文章,我找到了线索,因为SELinux在Centos 7上是活跃。
https://blog.lysender.com/2015/07/centos-7-selinux-php-apache-cannot-writeaccess-file-no-matter-what/
g6baxovj3#
是的。正是由于错误的图像路径,它显示这个错误。使用准确的路径和网址在codeigniter它的罚款。
uklbhaso4#
首先测试SELinux是否处于活动状态:
$状态
如果输出是这样一些:
然后暂时禁用它:
$允许使用sudo setenforce
尝试生成一个新的验证码。如果它工作的原因是一个SELinux权限问题。
再次启用SELinux:
$sudo setenforce强制执行
并将读/写策略应用于验证码目标目录,在您的示例中为“/var/www/html/assets/files/captcha/”
我的意思是说,如果你不想让别人知道你的名字,你可以把你的名字写下来,这样你就可以把你的名字写下来。
再次测试。