Как записать файл с PHP в Linux?

#php #file

#php #файл

Вопрос:

Я хочу написать текстовый файл, используя PHP.

Я могу записать его, используя функции fopen и fwrite на платформе Windows. Но эта программа не может записать его на платформе Linux.

Есть ли какое-либо решение?

Комментарии:

1. В чем ошибка? Возможно, вам нужно предоставить права на запись папке, в которой вы создаете файл.

2. Вы модифицировали папку, в которой пишете?

3. Я надеюсь, что вы назвали файлы правильно (или, по крайней мере, пройденный вами путь был относительным)

4. Не могли бы вы предоставить нам несколько примеров кода? И что это за «та программа», на которую вы ссылаетесь?

5. @Ozzone: Тогда покажите нам свой код.

Ответ №1:

fopen и fwrite работают точно так же в Linux, но там у вас может возникнуть проблема с разрешениями. Чтобы решить эту проблему, вам нужно проверить:

  • пользователь, под которым запускается PHP (в ванильной установке Apache / PHP это обычно www-data )
  • права доступа и владельца каталога, в который вы пытаетесь выполнить запись

Что вам нужно, так это разрешение на запись в каталог для пользователя PHP / Apache. Самый простой (и грязный) способ добиться этого — просто сделать каталог доступным для записи во всем мире ( chmod o w the_dir ), но это крайне небезопасно, позволяя любому, кто имеет какой-либо доступ к системе, хранить там материалы. Лучшее решение — либо назначить пользователя PHP владельцем каталога и указать разрешение 700 (или 755, если вы хотите, чтобы он был доступен для чтения во всем мире), либо создать новую группу, поместить пользователя PHP и себя в эту группу, установить группу в каталоге и установить разрешение 770 (775 для удобства чтения во всем мире) в каталоге.

Ответ №2:

Это должно сработать, пожалуйста, проверьте права доступа пользователей к каталогу и / или файлу. Вы всегда можете попробовать эту программу, написав в /tmp/my.log, она должна работать)

Ответ №3:

Конечно, вы можете использовать те же функции fopen и fwrite в Linux.

Единственная особенность заключается в том, что папке, в которой это записано (или, по крайней мере, самому файлу), должны быть предоставлены разрешения на запись.

Простым способом протестировать это было бы установить разрешение для файла (или его папки) равным 777.

Комментарии:

1. Предоставление прав на чтение, запись и выполнение всем — плохой совет.

Ответ №4:

fopen и fwrite работают на обоих SO.

Вероятно, вам отказано в разрешении. Попробуйте разрешить запись вашего файла в Linux.
Вы можете использовать php chmod func