This is a desperate call for help since the website is live and users are unable to upload pics. This is not a VirtualMin issue, but something related to folder permissions.
I just migrated my website from CentOS 7 to 8. Old & new server details are as follows
Old Server
Operating system CentOS Linux 7.8.2003
Apache version 2.4.6
PHP versions 5.6.40, 7.0.27
MySQL version 5.5.65
PHP: mod_php
New Server
Operating system CentOS Linux 8.2.2004
Apache version 2.4.37
PHP versions 7.2.24
MySQL version 10.3.17
PHP: PHP-FPM
I have a folder named âuserpicsâ where i store photos uploaded by user. The userpics folder & files are owned by the user apache recursively. Folders have permission 0755 and files have permission 0644.
This used to work without issues in old server with CentOS 7 . But after migrating to CentOS 8, I am getting the following error while creating a directory.
PHP message: PHP Warning: mkdir(): Permission denied in /home/vserv/public_html/m.php on line 28\nâ
sestatus command returns âSELinux status: disabledâ in both the servers.
I tried setting httpd_sys_rw_content_t for the folders, but it didnât work.
I have spent 2 days to diagnose the issue. But nothing worked. Please help.
Update:
I ran echo exec(âwhoamiâ) in old and new server and found that the Old Server returns apache and new server returns the virtual server username. So, I think this has something to do with who runs PHP scripts. Is it PHP-FPM issue?
If the userpics folder & files are within the /home/vserv directory structure then this might help:
Virtualmin â Limits & Validation â Validate Virtual Servers. Under the Fix Permissions tab, choose a suitable option. This will apply the correct ownership and permissions to files and directories that the Virtualmin ecosystem, including the web server, needs to work normally.
You were using mod_php on the old server. If userpic is outside /home/vserv directory you must manually apply the same ownership and permissions to the userpics folder & files that have been applied to folder & files that are within the /home/vserv directory on the new server for the script will work and users to be able to upload files.
Thanks a lot Niel. I was able to fix the issue. Thanks a ton.
I am assuming this was the reason - in old server I had given âapacheâ as the owner of userpics since I was using mod_php. And in new server only PHP-FPM is available. So, the fix you suggested changed the ownership of userpics folder to domain owner and that solved the issue. Hope this wonât result in security issues.
After I checked Virtualmin -> Limits & Validation -> Validate Virtual Servers, I found other minor issues. Fixing those too.
I believe this will make the system more secure than before because using PHP-FPM rather than mod_php will restrict the impact of a security breach to only the virtual server that has been compromised.