0

Server version: Apache/2.4.34 (Unix)

I'm trying to utilize an existing SSL certificate for several sub-directories of a domain, but the architecture for the domain separates out two directories for non-secure/secure:

httpdocs
httpsdocs

I copied everything from httpdocs to httpsdocs and also forced traffic to https using .htaccess. Everything worked great until I tried the PHP file upload functionality.

Here's the bit of code that is failing from the secure side:

$path = "uploaded_files/".$row_query[0].'/'.$file_name;
copy($temp_file, $path);

In doing some debugging, I found that the temp file gets created: /tmp/phpanKT4N

but the error I see in the logs is: copy(uploaded_files/New Sub Folder/30052_testing.txt): failed to open stream: Permission denied in /var/www/vhosts/.com/httpsdocs/demo/resource/add_resource.php on line 108

I tried changing copy() to move_uploaded_file() but here's the error for that:

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

I searched stack and saw that ownership must match, but the permissions appear to be the same for httpdocs and httpsdocs.

The /tmp folder is owned by root:root and like I said this works perfectly from the non-secure folder. The non-secure and secure upload folders are identical:

httpdocs:

drwxrwxr-x+  8 theuser apache  4096 Sep 22  2015 uploaded_files

httpsdocs:

drwxrwxr-x+  8 theuser apache  4096 Sep 22  2015 uploaded_files

Is this a configuration, permissions issue, or what?

Mitch Moccia
  • 103
  • 3

1 Answers1

0

Figured this out... Ran the following:

First find apache's user:

egrep -i '^user|^group' /etc/httpd/conf/httpd.conf 

Result: User apache Group apache

Then ran this and it solved all the PHP file upload issues in httpsdocs:

chown -R apache:apache /var/www/vhosts/<thedomain>.com/httpsdocs/
chmod -R g+rw /var/www/vhosts/<thedomain>.com/httpsdocs/
Mitch Moccia
  • 103
  • 3