К ошибке при создании файла с помощью PHP-скрипта могут приводить следующие причины: - на сервере недостаточно свободного дискового пространства; - указана несуществующая директория (папка/каталог/путь), для сохранения файла; - недостаточно прав для сохранения файла в указанной директории.
Более подробно о каждом из указанных вариантов.
1. На сервере недостаточно свободного дискового пространства.
Получить информацию о доступном дисковом пространстве на сервере вы можете с помощью команды: df -h
Результат выполнения команды представлен на следующем скриншоте.
На скриншоте выделены дисковое устройство и столбец Avail - доступно 25GB. Дисковое устройство в зависимости от услуги и метода распределения пространства может быть указано в выводе команды как: /dev/vd[a-z]*, /dev/sd[a-z]* или /dev/mapper/* В случае, если в столбце Avail (доступно) для дискового устройства будет указано 0 - значит на дисковом устройстве отсутствует свободное пространство. В этом случае необходимо очистить диск, удалив лишние файлы, а в случае отсутствия таковых - необходимо его расширение.
2. Указана несуществующая директория (папка/каталог/путь), для сохранения файла.
Проверить, существует ли указанная директория вы можете с помощью команды: ls -l [директория]
* [директория] - укажите полный путь к вашей директории, в которой должен быть создан файл. В данном примере используется директория /home/oleg/www/data/needed
Если директория не существует - будет выведена соответствующая информация. Если директория существует - будет выведено ее содержимое.
В случае, если директория не существует, ее необходимо создать, либо изменить путь к файлу в PHP-скрипте. Создать директорию вы можете командой: mkdir -p [директория]
После чего проверить директорию вы можете указанной ранее командой: ls -l [директория]
Пример указанных операций продемонстрирован на следующем скриншоте.
Так как директория в примере отсутствовала, после создания она пуста, о чем и свидетельствует вывод: total 0
3. Недостаточно прав для сохранения файла в указанной директории.
Для выполнения операций с файлами пользователь, от имени которого запускается PHP-скрипт должен иметь необходимые права на директорию и/или изменяемый файл. Соответственно данному пользователю должны быть предоставлены корректные права. Узнать, от имени какого пользователя работает веб-сервер Apache (httpd) вы можете используя команду: ps aufx
Часть вывода команды с интересующими нас процессами представлена на следующем скриншоте.
Имя пользователя указано в первом столбце, в данном случае - Apache Изменяем владельца (пользователя и группу) для используемой нами директории на Apache командой: chown apache:apache [директория]
, и проверяем изменение владельца на директорию командой: ls -l [директория-1]
* в данном примере [директория] - /home/oleg/www/data/needed , а [директория-1] - /home/oleg/www/data Пример указанных операций продемонстрирован на следующем скриншоте.
|