Support Multiple Locations for User Files (Including Different Filesystems / Partitions)

Mark Tudor добавил(а) 3 года назад
В рассмотрении

Currently, user files are stored under /var/www by default (e.g. /var/www/johnsmith). It would be great to be able to define multiple user roots (e.g. /var/www AND /var/www2), each of which could be stored on a different partition / mount / drive / filesystem.

In my environment, I have one user who has a dedicated 100GB partition. I tried to mount a partition to their user directory (e.g. /var/www/biguser) but ISPManager's reliance on hard links means that the control panel fails to operate for this user once this is done. This is because:

a. the panel attempts to create a hard link from: /var/www/biguser/data/logs/biguser.com.access.log -> /var/www/httpd-logs/biguser.com.access.log (and the same for the biguser.com.error.log).

b. the panel attempts to create a hard link from: /var/www/biguser/data/php-bin/php -> /var/www/php-bin/biguser/php (and the same for php.ini).

Because in this setup, /var/www and /var/www/biguser are on separate filesystems / mounts, the hard link fails to be created and the panel will not save changes to the user.

I propose that it should be possible to create multiple "user roots", e.g. /var/www and /var/www-biguser. The /var/www-biguser folder could then have a folder structure identical to /var/www and the hard links could be created there instead... e.g.

.. /var/www-biguser/

.... -> ./httpd-logs

.... -> ./php-bin

.... -> ./biguser

........ -> ./data/logs/

........ -> ./data/www/

In my situation, biguser would be the only user in the user root of "/var/www-biguser". Every other user would be in "/var/www" as per normal. However there is no reason that you couldn't segregate users however you wish, into any number of "user roots".

This would solve the hard link problem and also give more flexibility into where users are stored in an ISPManager-based web server.


- If anyone wants a workaround in the meantime, you can disable error and access logs and also add "Option DisableSecurePhpBin" to ispmgr.conf. This isn't ideal, but it stops the hard links being created and allows mounting other filesystems / partitions to individual user homes -