2016-06-03 3 views
0

Я использую captcha для codeigniter, я отлично работаю на своем ПК, но почему-то, когда я загружался на сервер, он не генерировал изображение, я пытался с предложением из другого сообщения из stackoverflow, но он не работаетCodeigniter Captcha не отображается изображение

Я был чека ниже точек

  1. GD уже позволяет
  2. я уже делать 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/ 

-------------------------- Обновление 06-04-2016 ----------- ---------------------

я получил еще один ключ

После того как я делать отладку в помощнике (captcha_helper) я изменить некоторые возвращают значение False, чтобы быть отладки Режим. это показано следующее сообщение об ошибке

Message: imagejpeg(/var/www/html/assets/files/captcha/1465012057.5767.jpg): failed to open stream: Permission denied 

Я сделал изменить каталог искаженным быть CHMOD 777, но это, кажется, не работает.

Я сделал изменение собственности, чтобы быть apache, я использую этот скрипт, чтобы проверить право собственности из Интернета, но все еще не работает?

<?php echo exec('whoami'); ?> 

Почему captcha не может писать в этот каталог?

+0

Есть 4 места, где она возвращается false в функции 'create_captcha()'. Если путь/URL-адрес изображения не были установлены (ваш код установлен, это не проблема). Если путь к образцу не является каталогом (я надеюсь, что вы создали каталог, или это будут проблемы). Если путь к изображению не доступен для записи (я подозреваю, что это ваша проблема 0755 означает, что он доступен для записи вашим пользователем, но только для чтения/выполнения для других пользователей, для разрешения на изменение 0777). И, наконец, если GD lib не установлен (вы утверждаете, что это уже так не должно быть проблемой). Удачи :) – mic

+0

вы пробовали этот 'assets/files/captcha /' –

+0

@mic: я проверял путь, создавал каталог, делал каталог доступным для записи с помощью chmod 666, GD уже установил (я видел на PHP info), в чем проблема?, это запутывает –

ответ

0

Ваш неправильный адрес img_path. Попробуйте с этим

'img_path' => './assets/files/captcha/', 

CodeIgniter Captcha Helper Example - FormGet.com

+0

привет @abdulla, пожалуйста, посмотрите на мой вопрос выше, я тоже изменил это, но он не работает –

+0

@ abdulla, относительные пути опасны в включениях. Причина этого и путь: объясняется здесь: https://stackoverflow.com/questions/36577020/failed-to-open-stream-no-such-file-or-directory –

0

я нашел ключ из этой статьи, это происходит потому, что SELinux активен на Centos 7.

https://blog.lysender.com/2015/07/centos-7-selinux-php-apache-cannot-writeaccess-file-no-matter-what/

+0

Действительно, и вы можете устранение таких проблем и поиск решений для них: https://stackoverflow.com/questions/36577020/failed-to-open-stream-no-such-file-or-directory –