If you came across my previous post regarding setting up Nginx for user access control you might be thinking that the setup is okay for two or just a few users, but what if the users are more? Yes, it gets a bit inconvenient and it lacks flexibility. In the previous work I have already installed Nginx, MySQL and PHP, so I will not be explaining that again here and now is the time to use them with, in my case, a good web file management platform. As I have not used such before and I went looking around, reading and picking. On the end I picked Pydio as it is a very well documented, there are lots of tutorials on how to install it on Debian, even a very good Nginx configuration file on Pydio’s web site itself – https://pydio.com/en/docs/kb/system/installing-debiannginx and also Pydio is in active development as well.
But as usual I had a slightly bumpy way and I thought I better write it down, you never know who you gonna help! 😉
I changed my Nginx configuration a bit, so people are not allowed to “wonder” on the server, especially on Pydio directories, though that did not make the software to not show its warning message about that on install.
I installed Pydio the “wget” way, as finding out it can be done via apt came later, never mind… 🙂
wget https://download.pydio.com/pub/core/archives/pydio-core-8.0.2.zip
unzip pydio-core-8.0.2.zip
mv <extracted directory name> /var/www/html/pydio
chown -R www-data:www-data /var/www/html/pydio
If your workspaces will be located somewhere else make sure they are owed by www-data, so the software can manipulate the files and the folders.
Adjust your php.ini and make sure those are covered, in my case:
file_uploads = On
post_max_size = 1G
upload_max_filesize = 1G
max_file_uploads = 200
output_buffering = Off
In /var/www/html/pydio/conf/bootstrap_conf.php add setlocale(LC_ALL, “en_US.UTF-8”); and uncomment define(“AJXP_LOCALE”, “en_EN.UTF-8”);
Now it is time to set up database, user and password in MySQL. This is where I had a funny surprise, after a have done it and started the installation Pydio could not connect to my MySQL server and I got the message that the server does not accept the client authentication method. MySQL 8 by default now accepts better SHA-256 Pluggable Authentication /which I did not know/, which seemingly my client was not able to support /or I could not figure out how to change that from client side/. To go around that add in /etc/mysql/my.cnf:
[mysqld]
default_authentication_plugin=mysql_native_password
and restart MySQL server.
Now you can create Pydio database and user.
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.11 MySQL Community Server – GPL
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> CREATE DATABASE pydio;
Query OK, 1 row affected (0.13 sec)
mysql> CREATE USER ‘pydio_user’@’localhost’ IDENTIFIED BY ‘your_password’;
mysql> GRANT ALL PRIVILEGES ON pydio.* TO ‘pydio_user’@’localhost’;
mysql> FLUSH PRIVILEGES;
Now navigate to Pydio and start the installation process, it is very easy to follow.
And that’s pretty much it.