Версия сервера: Apache / 2.4.34 (Unix)
ПРИМЕЧАНИЕ. Это не вопросы Plesk или панели управления. Это пользовательское PHP-приложение, размещенное на выделенном сервере Rackspace без панели управления.
Я пытаюсь использовать существующий сертификат SSL для нескольких подкаталогов домена, но архитектура домена разделяет две директории для небезопасных / безопасных:
httpdocs
httpsdocs
Я скопировал все с httpdocs на httpsdocs, а также принудительно отправил трафик на https с помощью .htaccess. Все отлично работало, пока я не попробовал функциональность загрузки файлов PHP.
Вот фрагмент кода, который не выполняется с безопасной стороны:
$path = "uploaded_files/".$row_query[0].'/'.$file_name;
copy($temp_file, $path);
В ходе некоторой отладки я обнаружил, что временный файл создается:
/ TMP / phpanKT4N
но ошибка, которую я вижу в журналах:
копия (uploaded_files / New Sub Folder / 30052_testing.txt): не удалось открыть поток: в доступе отказано в /var/www/vhosts/.com/httpsdocs/demo/resource/add_resource.php строке 108
Я попытался изменить copy () на move_uploaded_file (), но вот ошибка для этого:
PHP Warning: move_uploaded_file(uploaded_files/test/30054_testing.txt): failed to open stream: No such file or directory in /var/www/vhosts/<thedomain>.com/httpsdocs/demo/resource/add_resource.php on line 111
PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpOC9YEF' to 'uploaded_files/test/30054_testing.txt' in /var/www/vhosts/<thedomain>.com/httpsdocs/demo/resource/add_resource.php on line 111
Я искал в стеке и обнаружил, что право владения должно совпадать, но разрешения для httpdocs и httpsdocs выглядят одинаково.
Папка / tmp принадлежит root: root, и, как я уже сказал, она отлично работает из незащищенной папки. Папки незащищенной и безопасной загрузки идентичны:
httpdocs:
drwxrwxr-x+ 8 theuser apache 4096 Sep 22 2015 uploaded_files
httpsdocs:
drwxrwxr-x+ 8 theuser apache 4096 Sep 22 2015 uploaded_files
Это конфигурация, проблема с разрешениями или как?