Codeigniter 在 CentOS 7 中不生成验证码,但在 windows 中有效

Codeigniter does not generates Captcha in CentOS 7, but works in windows

此代码:

{
    $this->load->helper('form');
    $this->load->helper('captcha');
    // Captcha configuration
    $config = array(
        'img_path'      => 'captcha/',
        'img_url'       => base_url().'captcha/',
        'img_width'     => '150',
        'img_height'    => 50,
        'word_length'   => 3,
        'font_size'     => 35,
        'pool'          => '0123456789',
    );
    $captcha = create_captcha($config);
    // Unset previous captcha and store new captcha word
    $this->session->unset_userdata('captchaCode');
    $this->session->set_userdata('captchaCode',$captcha['word']);
    // Send captcha image to view
    $data['captchaImg'] = $captcha['image'];
    $this->load->view('Login', $data);
}

在 windows 中非常好地生成验证码,图像在验证码文件夹中创建并显示在视图中。 问题是我将我的 Codeiniter 网站移动到 linux,CentOs7,我将 www 文件夹权限更改为 777 并且所有者是 apache 但仍然没有在验证码文件夹中创建图像,当然也没有验证码图像出现在视图中。

 ls -ld www ===> drwxrwxrwx. 4 apache apache 33 Jun 11 17:18 www

 ls -ld www/html/CodeIgniter-3.1.3/captcha/ =======>
 drwxrwxrwx. 2 apache apache 6 Jun 15 06:06 www/html/CodeIgniter-3.1.3/captcha/ 

我发现问题了,CentOS默认启用了SELinux。我选择了禁用 SELinux 的简单方法,现在一切正常。

sudo gedit /etc/sysconfig/selinux

改变

SELinux=enforcing to SELinux=disabled