Follow
Ubuntu Linux

How to Install ProjectSend with Apache on Ubuntu Linux

Richard
Written by
Richard
Apr 14, 2021 Updated Mar 18, 2026 6 min read
How to Display Seconds on Ubuntu Top Menu Clock
How to Display Seconds on Ubuntu Top Menu Clock

You install ProjectSend with Apache on Ubuntu Linux to set up your own secure, self-hosted file-sharing system.

ProjectSend is free software that lets you share files securely from your own server, giving you total control over your data.

This tutorial covers installing ProjectSend on Ubuntu 20.04 LTS with the Apache web server. Apache is a powerful and reliable choice for hosting your ProjectSend.

You can upload files and assign them directly to clients or colleagues, bypassing email limits and organizing your sharing workflow efficiently.

⚡ Quick Answer

Install Apache with `sudo apt install apache2`, MariaDB with `sudo apt install mariadb-server`, and PHP 7.4 from a PPA with `sudo add-apt-repository ppa:ondrej/php`. Then configure PHP settings in `php.ini` and restart Apache.

Install Apache

Apache HTTP Server is probably the second most popular web server today. Go and install Apache since ProjectSend needs it.

To install Apache HTTP on the Ubuntu server, run the commands below.

🐧Bash / Shell
sudo apt update
sudo apt install apache2

After installing Apache, the commands below can stop, start, and enable Apache service to always start up with the server boots.

🐧Bash / Shell
sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service

To test the Apache setup, open your browser and browse to the server hostname or IP address. You should see the Apache default test page, as shown below.

💻Code
http://localhost
Apache test page displayed on Ubuntu server
apache2 test page

Install MariaDB

MariaDB database server is a great place to start when looking at open-source database servers to use with ProjectSend.

To install MariaDB, run the commands below.

🐧Bash / Shell
sudo apt install mariadb-server mariadb-client

After installing MariaDB, the commands below can stop, start, and enable the service to start when the server boots.

🐧Bash / Shell
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

After that, run the commands below to secure the MariaDB server by creating a root password and disallowing remote root access.

🐧Bash / Shell
sudo mysql_secure_installation

When prompted, answer the questions below by following the guide.

  • Enter current password for root (enter for none): Just press the Enter
  • Set root password? [Y/n]: Y
  • New password: Enter password
  • Re-enter new password: Repeat password
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]:  Y
  • Reload privilege tables now? [Y/n]:  Y

To test if MariaDB is installed, type the commands below to log on to the MariaDB server.

🐧Bash / Shell
sudo mysql -u root -p

Then, type the password you created above to sign on. If successful, you should see a MariaDB welcome message.

mariadb welcome
mariadb ubuntu 1604

Install PHP 7.4

PHP 7.4 may not be available in Ubuntu default repositories. To install it, you will have to get it from third-party repositories.

Run the commands below to add the below third party repository to upgrade to PHP 7.4

🐧Bash / Shell
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Then update and upgrade to PHP 7.4

🐧Bash / Shell
sudo apt update

Next, run the commands below to install PHP 7.2 and related modules.

🐧Bash / Shell
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip imagemagick php-imagick php7.4-bz2 php7.4-bcmath php7.4-gmp

After installing PHP 7.4, run the commands below to open Apache’s PHP default config file.

🐧Bash / Shell
sudo nano /etc/php/7.4/apache2/php.ini

Then, save the changes on the following lines below in the file. The value below is an ideal setting to apply in your environment.

💻Code
file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Create ProjectSend Database

Now that you’ve installed all the packages required for ProjectSend to function, continue below to start configuring the servers. First, run the commands below to create a blank ProjectSend database.

To log on to the MariaDB database server, run the commands below.

🐧Bash / Shell
sudo mysql -u root -p

Then, create a database called projectsend

💻Code
CREATE DATABASE projectsend;

Create a database user called projectsenduser with a new password

💻Code
CREATE USER 'projectsenduser'@'localhost' IDENTIFIED BY 'new_password_here';

Then, grant the user full access to the database.

💻Code
GRANT ALL ON projectsend.* TO 'projectsenduser'@'localhost' WITH GRANT OPTION;

Finally, save your changes and exit.

💻Code
FLUSH PRIVILEGES;
EXIT;

Download and Install ProjectSend

Download the ProjectSend package from its download page. You can simply run the commands below to create a ProjectSend directory, extract its content into the directory, and change the content permissions.

Command Prompt
cd /tmp
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/

Once you’re done above, run the commands below to create a ProjectSend configuration file from the sample.

🐧Bash / Shell
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.

🐧Bash / Shell
sudo nano /var/www/projectsend/sys.config.php

Then make the highlighted changes below:

💻Code
/**
 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', 'type_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. 

Save and exit.

Next, run the commands below to change the root folder permissions.

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

Configure ProjectSend Site

Next, configure the Apache virtual host for the ProjectSend site. This file will control how users access ProjectSend content. Run the commands below to create a new configuration file called projectsend.conf

🐧Bash / Shell
sudo nano /etc/apache2/sites-available/projectsend.conf

Then copy and paste the content below into the file and save it. Replace the highlighted line with your domain name and directory root location.

💻Code
<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/projectsend
     ServerName example.com
     ServerAlias www.example.com

     <Directory /var/www/projectsend/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Save the file and exit.

After configuring the VirtualHost above, please enable it by running the commands below and restart Apache.

🐧Bash / Shell
sudo a2ensite projectsend.conf 
sudo a2enmod rewrite 
sudo systemctl restart apache2.service

Finally, open your browser and go to the URL.

http://example.com

You should see the ProjectSend setup wizard—type in the database name, username, and password. Then, continue with the wizard.

Installing ProjectSend on Ubuntu Linux
projectsend ubuntu install

Next, create the site name, administrator account, and password.

Configuring ProjectSend setup on Ubuntu
projectsend ubuntu setup

After the installation, log in with the admin account created above.

ProjectSend user dashboard on Ubuntu 20.04
projectsend ubuntu dashboard

That’s it!

Conclusion:

This post showed you how to install ProjectSend on Ubuntu 20.04 | 18.04. If you find any error above, please use the form below to report.

Was this guide helpful?

Was this helpful?
Richard

About the Author

Richard

Tech Writer, IT Professional

Richard, a writer for Geek Rewind, is a tech enthusiast who loves breaking down complex IT topics into simple, easy-to-understand ideas. With years of hands-on experience in system administration and enterprise IT operations, he’s developed a knack for offering practical tips and solutions. Richard aims to make technology more accessible and actionable. He's deeply committed to the Geek Rewind community, always ready to answer questions and engage in discussions.

📚 Related Tutorials

How to Install BoxBilling with Apache on Ubuntu Linux
Ubuntu Linux How to Install BoxBilling with Apache on Ubuntu Linux
How to Setup MariaDB Master Slave Replication on Ubuntu
Ubuntu Linux How to Setup MariaDB Master Slave Replication on Ubuntu

0 Comments

  • Hi there
    I have followed every step that exists in this tutorial and everything went fine. but when I enter example.com inside the address bar It doesn’t redirects into the projectsend installation and it shows another page. what should I do? Thanks

    Reply
    • You need to replace example.com with your own domain. Or add example.com in your hosts file.
      Search the site for adding records to hosts file

      Thanks

      Reply
      • Thank you for you answer. I did so but it didn’t work again! the default page shows up again!

        Reply
      • I mean I added example.com to /etc/hosts on ubuntu 20 but it didn’t change anything

        Reply
        • Hmm, disable the default site then. Run this command and reload Nginx. sudo rm /etc/nginx/sites-enabled/default

          Reply
  • Perfect walk through on the installation guide everything went smoothly. Only problem I’m running into now is the configuration of a SSL certificate. The projectsend.conf file has no information for SSL certificate creation in /etc/apache2/sites-enabled. Do we need a different file for port 80 and one for port 443? Or can we just edit the projectsend.conf file with the SSL information once we create a certificate. Will you be adding instructions to the guide for securing the project send server with either a self signed or 3rd party certificate. Thank you.

    Reply
  • I’m running Ubuntu 23.10 and having problems installing projectsend, particularly the add-apt-repository. Can anyone please rectify this issue?

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *