apache — PHP 5.5 rename () изменяет файлы и удаляет разрешения — почему?

Я использую WP Smushit Pro Плагин создан WPMU DEV. Их поддержка не зайдет так далеко, поэтому я обращаюсь. Я почти уверен, что проблема возникла на моем сервере.

Когда изображение задушено, функция PHP rename() работает и перезаписывает исходное изображение.

Проблема в следующем:

Разрешения изменены, оставив изображение недоступным для онлайн-пользователей

Предыдущие разрешения: rw-r--r-- (0644)
После доработки Пермь: rw------- (0600)


ОБНОВИТЬ

Оптимизированное (смушенное) изображение создается как файл .tmp (rename()) в том же каталоге, прежде чем copy()перезаписать существующий файл.

Рабочий процесс оптимизации изображений

  1. Отправь оригинальное изображение (imagename), чтобы тебя покраснели
  2. Изображение возвращается, сохраните его как файл imagename.tmp
  3. скопировать файл imagename.tmp в imagename — исходный файл

Сталкивались ли вы с этим типом изменения разрешений раньше?
Если так, что можно сделать, чтобы изящно решить проблему?

0

Решение

Пожалуйста, знайте, что означает переименовать файл.

Когда файл остается в той же файловой системе, переименование фактически не является операцией над самим файлом. Это только изменяет каталоги: каталог, в котором находился файл, и каталог, в котором будет находиться файл. Он не влияет на содержимое или свойства самого файла, такие как права доступа и владение. (Имя файла — это не свойство файла, а запись каталога, указывающая на файл.)

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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]