Я получаю следующую ошибку при попытке вызвать mkdir () на сервере …
Предупреждение: mkdir () [function.mkdir]: разрешение отклонено в /home/server/public_html/wp-content/themes/mytheme/catimages/cat-images.php в строке 373
Функция ниже. Его попытка создать папку в папке «wp-content / uploads» сайта. Я проверил, что версия PHP 5.2.15 и что файлы внутри папки темы доступны для записи, но это не обязательно означает, что папка uploads доступна для записи.
Как узнать, можно ли загрузить папку uploads?
protected function category_images_base_dir() { // Where should the dir be? Get the base WP uploads dir $wp_upload_dir = wp_upload_dir(); $base_dir = $wp_upload_dir[ 'basedir' ]; // Append our subdir $dir = $base_dir . '/cat-images'; // Does the dir exist? (If not, then make it) if ( ! file_exists( $dir ) ) { mkdir( $dir ); //THIS IS LINE 373 } // Now return it return $dir; }
is_writable()
, вероятно, является функцией, которую вы ищете.
http://cz.php.net/manual/en/function.is-writable.php говорит:
Возвращает TRUE, если имя файла существует и доступно для записи. Аргумент filename может быть именем каталога, позволяющим проверить, доступен ли каталог для записи.
Кроме того, здесь важна следующая следующая строка:
Имейте в виду, что PHP может получить доступ к файлу в качестве идентификатора пользователя, который работает веб-сервер (часто «никто»).
Другими словами, убедитесь, что ваш каталог доступен для записи по идентификатору пользователя веб-сервера – это может быть другой идентификатор пользователя, чем ваш! Задайте соответствующие разрешения – например, установите группу пользователей в папку с именем пользователя сервера и дайте возможность читать, писать и выполнять группу. ( chgrp somegroup uploads; chmod g+r uploads; chmod g+w uploads; chmod g+x uploads
)
Убедитесь, что родительская папка доступна для записи процесса, выполняемого веб-сервером.
Изменить: К сожалению, преждевременный ответ. Ваш хозяин дает вам браузер графического интерфейса?