I just built a new linux server over xmas. I tried Piwigo and ended up going with Zenphoto with the zbase theme. I've used Gallery3 in the past.
OpenSky Photos
Piwigo is very user friendly, but is is extremely limited. It has no real user / group / album ownership functionality without using the community plug in which doesn't even provide DELETE functionality for photos and albums created by users. It also catalogs all your photos is a custom directory structure by giving all your files random names and uses mysql to piece everything together. Basically you CANNOT upload photos into a file directory and expect them to show up.
Zenphoto is super complicated and will take a day or two to go through all the options it has. However it has built in user / group ownership of albums, private vs public vs unpublished albums, functionality to custom sort your photos in an album, move and reorg your albums etc.. This functionality is available for any album owner through the web interface. There are built in web editing tools to rotate, crop, etc.. your images.
The best thing is that you can use FTP to make new album directories and upload photos. It took a bit of tweaking, but I basically gave my www-data group ownership of all existing and future directories while using ACLs to give individual user accounts rights on their root albums. Now they can login using SFTP clients to manage their albums and photos.
$ cd /var/www/html/zenphoto/albums
$ sudo chmod -R g+s "Your Album Name" # gives www-data group rights to all existing and future directories created by any user
$ sudo setfacl -R -m u:"Your User Id":rwx "Your Album Name" # gives a user read write access to all directories in their album
$ sudo setfacl -R -m d:"Your User Id"rwx "Your Album Name" # gives the user read write access to all newly created directories in their album.
Symlink a user's album directory to their home directory for easy access..
ln -s /var/www/html/zenphoto/albums/"Your Album Name" /home/"Your User Id"/zenphoto
There is a MariaDB backend as well to capture extra metadata info like comments, ratings, etc..