How to Install ProjectSend with Apache on Ubuntu Linux
ProjectSend on Ubuntu Linux sets up your own secure, self-hosted file-sharing system. ProjectSend is free software that lets you share files safely from your own server, giving you full control.
This guide walks you through installing ProjectSend using Apache on Ubuntu 20.04 LTS. Apache is a popular and dependable web server for hosting ProjectSend.
You can use ProjectSend to upload files and send them directly to clients or coworkers. This avoids email size limits and keeps your file sharing organised.
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
To install Apache on Ubuntu, you’ll run two simple commands in your terminal. Apache is the web server software that ProjectSend needs to run. This process gets the necessary software ready on your system.
To install Apache HTTP on the Ubuntu server, run the commands below.
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.
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.
http://localhost

Install MariaDB
ProjectSend needs a database to keep its information, and MariaDB is a good free choice. Installing MariaDB on your Ubuntu system is done with a couple of straightforward commands in your terminal. This sets up the database where ProjectSend will store all its files and user data.
To install MariaDB, run the commands below.
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.
sudo systemctl stop mariadb.service sudo systemctl start mariadb.service sudo systemctl enable mariadb.service
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.
sudo mysql -u root -p
Then, type the password you created above to sign on. If successful, you should see a MariaDB welcome message.

Install PHP 7.4
ProjectSend needs PHP version 7.4 to function properly. Since this specific version might not be already on Ubuntu, you’ll first add an extra software source. Then, you can install PHP 7.4 using a couple of commands.
Run the commands below to add the below third party repository to upgrade to PHP 7.4
sudo apt-get install software-properties-common sudo add-apt-repository ppa:ondrej/php
Then update and upgrade to PHP 7.4
sudo apt update
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.
sudo nano /etc/php/7.4/apache2/php.iniThen, save the changes on the following lines below in the file. The value below is an ideal setting to apply in your environment.
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
After installing MariaDB, you need to create a special database for ProjectSend to keep its data. This involves logging into MariaDB and making a new database named ‘projectsend’. This step keeps all your ProjectSend information organized.
To log on to the MariaDB database server, run the commands below.
sudo mysql -u root -p
Then, create a database called projectsend
CREATE DATABASE projectsend;Create a database user called projectsenduser with a new password
CREATE USER 'projectsenduser'@'localhost' IDENTIFIED BY 'new_password_here';
Then, grant the user full access to the database.
GRANT ALL ON projectsend.* TO 'projectsenduser'@'localhost' WITH GRANT OPTION;
Finally, save your changes and exit.
FLUSH PRIVILEGES; EXIT;
Download and Install ProjectSend
Now you can download the ProjectSend software and put its files in the right spot on your Ubuntu server. You’ll get the latest version from their website and then move the files to a folder that Apache can access. This puts the ProjectSend application where your web server can use it.
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.
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
Then make the highlighted changes below:
/**
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.
sudo chown -R www-data:www-data /var/www/projectsend/ sudo chmod -R 755 /var/www/projectsend/
Configure ProjectSend Site
To access ProjectSend using your website address, you must configure Apache to recognize it. This means creating a special configuration file for Apache that tells it where your ProjectSend files are located. This file helps Apache serve the ProjectSend site to visitors correctly.
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.
<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.
You enable the VirtualHost configuration by running the commands below and then restart the Apache web server. This action ensures that your ProjectSend application functions correctly with your Ubuntu Linux setup.
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.

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

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

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?
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.
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
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
Thank you for you answer. I did so but it didn’t work again! the default page shows up again!
I mean I added example.com to /etc/hosts on ubuntu 20 but it didn’t change anything
Hmm, disable the default site then. Run this command and reload Nginx. sudo rm /etc/nginx/sites-enabled/default
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.
I’m running Ubuntu 23.10 and having problems installing projectsend, particularly the add-apt-repository. Can anyone please rectify this issue?