2016-09-22 4 views
-1

Мне трудно поверить, что на этот вопрос нет ответа, но я искал и искал, и я не могу его найти.Решение fopen() - разрешено на удаленном сервере без 777

Я использую fopen() на удаленном сервере, и у меня есть только FTP-доступ - ничего другого.

При попытке создать или открыть файл для записи, я ударил со следующей ошибкой:

Warning: fopen(entries/newsletter.csv): failed to open stream: Permission denied in /var/www/sites/xxx/public_html/index.php on line 24 Error: Can't open file. Your entry was not saved.

Я попытался изменить права доступа к файлам 777 и открыть существующий файл, и он работает! Но это не может быть рекомендованным решением, так как 777 так небезопасно.

Есть ли способ разрешить это по FTP без использования 777?

ответ

2

Не можете ли вы изменить параметры на открытии, чтобы попытаться просто открыть в режиме только для чтения? PHP Manual for fopen() options.

fopen("csv/newsletter.csv", "r"); 

Это использует наименьшее количество разрешений, но вы должны иметь доступ на чтение. Конечно, вы не можете писать в файл. Кроме того, 777 включает исполняемый бит, поэтому вы можете просто хотеть 666.

Вы также можете попробовать подключиться через FTP в качестве пользователя и обеспечить, чтобы права пользователей на файл были rw (6), а затем другие, не нужны что они могут быть прочитаны только.

Возможно, через ваш FTP-интерфейс, возможно, chmod() файл для чтения/записи перед открытием, затем chmod только после чтения.

+0

К сожалению, мне нужно написать файл. У меня есть только один логин для FTP. –

+0

Вы можете установить права доступа к файлу для одного входа в rw (6), а затем другие значения другого значения. Другим вариантом может быть файл chmod (666), когда вы переходите к нему через интерфейс FTP, а затем устанавливаете его обратно с помощью другого chmod. –

+0

Я не могу установить разрешения для входа, к сожалению. Я очень ограничен! –

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