2013-08-20 3 views
2

Я не могу поверить в это (последняя красная коробка): http://ellislab.com/codeigniter/user-guide/general/caching.htmlCodeIgniter разрешение папки кэша 777

Примечание: Перед тем как кэш-файлы могут быть записаны необходимо установить файл разрешения на папку приложения/кэш так что это доступен для записи.

в странице приветствия:

$this->output->cache(60); 

CodeIgniter требует от нас, чтобы установить разрешение папки для 777 я тестировал и 775 или 755 не работает. только 777 сделал работа. Это означает, что каждый может прочитать содержимое папки, загрузить файл php и выполнить его. Почему кодогенератор предлагает такой небезопасный способ?


обновление:

Эти разрешения не работают:

ll 
    drwxr-xr-x 2 besime besime 4096 Aug 20 17:46 cache/ 
ll 
    drwxr-xr-x 15 besime besime 4096 Jun 14 11:11 application/ 
ll 
    drwxr-xr-x 4 besime besime 4096 Aug 3 12:08 CodeIgniter/ 

, пока я не изменить кэш:

drwxrwxrwx 2 besime besime 4096 Aug 20 17:46 cache/ 

Тогда я могу увидеть файл b082457291d5cfcb6fb76fda5b43f60a созданный в папке кэша после открытия приветственной страницы.

+0

Я не читал ничего о 777 в документах. У вас есть правильное владение? –

+0

@loops обновил вопрос. какое еще разрешение должно работать на это? – besime

ответ

1

Если вы не хотите, чтобы мир был доступен для записи, измените владельца на пользователя, с которым работает php. Если вы работаете с душевым правами пользователя, то PHP нить обыкновение иметь доступ на запись с текущим набором до

Чаун WWW: кэш WWW

, то вы должны быть в состоянии иметь 700 или 775, которые будут работать

вы можете проверить, какой пользователь работает с

echo exec('whoami'); 
+0

'sudo chown www-data: www-data cache' – besime

0

вы должны использовать Чаун команду, чтобы создать правильную собственность папки кэша вместо того, чтобы он доступен для записи/читаемыми для всех пользователей с CHMOD.

Если вы хотите, чтобы у нескольких пользователей был доступ к папке, вы можете использовать группу и добавлять к ней пользователей, а затем предоставить группе правильные разрешения.

Например, так:

sudo groupadd www 
sudo useradd -g <your username> www 
sudo chown -R :www /var/www 
sudo chmod -R g+rwX /var/www 

Это даст группе "WWW" для чтения и доступа к папке/вар/WWW написать.

Так что в вашем случае вместо этого используйте его в папке с кешем.

+0

Обычно вы не хотите, чтобы пользователь www записывал файлы, которые существуют. – exussum

Смежные вопросы