How to Install ProjectSend on Ubuntu 20.04

Install ProjectSend on Ubuntu 20.04

In this article, we will have explained the necessary steps to install and configure ProjectSend on Ubuntu 20.04 LTS. Before continuing with this tutorial, make sure you are logged in as a user with sudo privileges. All the commands in this tutorial should be run as a non-root user.

ProjectSend (previously cFTP) is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself, Secure, private, and easy. No more depending on external services or e-mail to send those files!

Install ProjectSend on Ubuntu 20.04

Step 1. First, before you start installing any package on your Ubuntu server, we always recommend making sure that all system packages are updated.

sudo apt update
sudo apt upgrade

Step 2. Install LEMP Stack.

ProjectSend is built with PHP. You can host it like you would any other web app is written in PHP. So, you’re going to need to set Ubuntu up as either a LEMP server. If you haven’t done so already, use our traditional LEMP guide to set up Ubuntu to serve PHP before you continue.

Step 3. Download and Install ProjectSend on the Ubuntu system.

Now download and extract the ProjectSend archive to a directory on your server:

sudo wget -O projectsend.zip https://www.projectsend.org/download/387/
sudo mkdir -p /var/www/projectsend
sudo unzip projectsend.zip -d /var/www/projectsend/

Next, create a ProjectSend configuration file from the sample:

sudo cp /var/www/projectsend/includes/sys.config.sample.php /var/www/projectsend/sys.config.php

After that, run the commands below to open its configuration file:

sudo nano /var/www/projectsend/sys.config.php

Add the following file:

/**
 Database driver to use with PDO.
 Possible options: mysql, mssql
 */
 define('DB_DRIVER', 'mysql'); 
 /** Database name */
 define('DB_NAME', 'projectsend');
 /** Database host (in most cases it's localhost) */
 define('DB_HOST', 'localhost');
 /** Database username (must be assigned to the database) */
 define('DB_USER', 'projectsenduser');
 /** Database password */
 define('DB_PASSWORD', 'your_database_user_password');
 /**
 Prefix for the tables. Set to something other than tbl_ for increased
 security onr in case you want more than 1 installations on the same database.

Change the ownership of ‘ProjectSend’ folder with the following command below:

sudo chown -R www-data:www-data /var/www/projectsend/
sudo chmod -R 755 /var/www/projectsend/

Step 4. Create a Database for ProjectSend.

ProjectSend uses the MariaDB database to store all. Log in to your MariaDB server with the following command and enter your MariaDB root password:

mysql -u root -p

Once you’re in the MariaDB console, create a new database:

CREATE DATABASE projectsend;
CREATE USER 'projectsenduser'@'localhost' IDENTIFIED BY 'your_passwords';
GRANT ALL ON projectsend.* TO 'projectsenduser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;

Step 5. Configure Nginx.

Now create a new configuration file named projectsend.conf. To do that, run the commands below:

sudo nano /etc/nginx/sites-available/projectsend.conf

Add the following line:

server {
    listen 80;
    listen [::]:80;

    server_name linuxtips.us www.linuxtips.us;
    root   /var/www/projectsend;
    index  index.php;
    
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    client_max_body_size 100M;
  
    autoindex off;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }
}

After that, run the command below to enable VirtualHost:

sudo ln -s /etc/nginx/sites-available/projectsend.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx.service

Step 6. ProjectSend Web Access.

Now it’s time to open your web browser and access the web console of ProjectSend using your FQDN or Server’s IP address on default port ’80’:

https://linuxtips.us

That’s all you need to do to install ProjectSend on Ubuntu 20.04 LTS Focal Fossa. I hope you find this quick tip helpful. For further reading on ProjectSend, please refer to their official knowledge base. If you have questions or suggestions, feel free to leave a comment below.