How to Setup ProjectSend File sharing Tool on CentOS 7

ProjectSend is an Open Source web file and image sharing tool for professionals that solve the issue of sharing files between a company and its clients. ProjectSend provides an easy and secure multi-file uploading and unlimited file size on ANY server! Even on common hostings shared accounts.It is basically a clients-oriented file uploading utility where the clients are created and assigned a username and a password. Then you can upload as much files as you want under each account, with the ability to add a title and description to each one. When the client logs in, you will see a web page that contains your company logo, and a sortable list of every file uploaded under your name, with description, time, date, etc. It also works as a history of "sent" files. You can check the differences between versions, the time that it took to do that, and so on. Additional benefits of using ProjectSend include saving hundreds of mb. on email accounts since every file remains on your server until you decide to delete it, and they can be accessed from any browser anywhere.

Let's follow the instructions to install and use ProjectSend on CentOS 7 server with LAMP stack.

1) System Update

Connect to your Linux CentOS 7 server using your root user credentials and after setting up the fully qualified domain name of your server, run the following command to update/upgrade your server with updates, security patches and latest kernel release.

# yum -y upgrade

2) LAMP Setup

Now you have an updated system ready for the installation of required packages for ProjectSend application setup. You need to setup the LAMP (Linux Apache MySQL PHP) stack as a prerequisite of ProjectSend.

Installing Apache
Run the following command to install Apache Web server on CentOS 7.

# yum install httpd openssl mod_ssl

Apache Installation

Once installed, start its services and enable it start at boot.

# systemctl start httpd

# systemctl enable httpd

You can verify by opening your favorite web browser and entering the IP address of your server in the URL, you should get a “Testing 123″ page .

Installing MySQL-MariaDB

MariaDB is a replacement for MySQL, that is a robust, scalable and reliable SQL server that comes rich set of enhancements. We will be using 'yum' command to install MariaDB as shown.

# yum install mariadb mariadb-server

MariaDB Installation

To start and enable MariaDB active services on your system run the following commands.

# systemctl enable mariadb
# systemctl start mariadb

Start MariaDB

By default, MariaDB is not hardened. You can secure MariaDB using the 'mysql_secure_installation' script by choosing the appropriate options as shown .

# mysql_secure_installation

/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found


In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Secure MariaDB

Installing PHP and its Modules

Run the command below to install PHP along with its necessary modules required for PrejectSend on CentOS 7.

]# yum install php php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-mcrypt

PHP and its modules

3) Installing ProjectSend

After completing the LAMP installation setup , now we are moving towards the installation of ProjectSend Application on our CentOS 7 Server. To download its package go to the ProjectSend Download Page.

Download Projectsend

You can also get its packages using 'wget' utility command on your server and then extract it with 'unzip' command. Make sure that you have 'wget' and 'unzip' package installed on your server to run below commands.

# wget

# unzip

wget ProjectSend

Now move the ProjectSend archive to the document root directory of your web server using below command.

# mv ProjectSend-master/ /var/www/html/projectsend

Change the ownership of 'projectsend' folder with apache using command below.

# chown apache: -R /var/www/html/projectsend

4) Setup DB for ProjectSend

In this step we are going to log in to the MariaDB console and create a database for the ProjectSend by running the following commands and providing the root user credentials that we had setup earlier.

# mysql -u root -p

> GRANT ALL PRIVILEGES ON psdb.* TO 'psuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
> exit;

ProjectSend DB

5) ProjectSend Configurations

In order to configure your ProjectSend configurations, you need to rename the ‘sys.config.sample.php’ file to ‘sys.config.php’ into the following directory with 'mv' command. Then open this in your editor to configure its parameters.

# cd /var/www/html/projectsend/includes

# mv sys.config.sample.php sys.config.php

# vi sys.config.php

ProjectSend Configurations

Change the configurations to match your database settings and the close file after saving changes.

* Enter your database connection information here
* If you have doubts about this values, consult your web hosting provider.

/** MySQL database name */
define('DB_NAME', 'database');

/** Database host (in most cases it's localhost) */
define('DB_HOST', 'localhost');

/** MySQL username (must be assigned to the database) */
define('DB_USER', 'username');

/** MySQL password */
define('DB_PASSWORD', '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.
define('TABLES_PREFIX', 'tbl_');


6) Apache WebServer Configurations

Configure your default configuration file of Apache web server according to your current document root directory where you have placed its setup by opening file in your editor.

# vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html/projectsend"
# Relax access to content within /var/www.
<Directory "/var/www/html">
AllowOverride None
# Allow open access:
Require all granted

# Further relax access to the default document root:
<Directory "/var/www/html/projectsend">

Save and close the file and restart your Apache and MariaDB services with below commands.

# systemctl restart httpd
# systemctl restart mariadb

7) Firewall and SELinux

Our installation is almost done, now before accessing the ProjectSend in the web browser make usre to allow the respective services/ports allowed in your firewall. Let's run the following commands to open below ports in firewall of your system.

# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --reload

Change the SELinux state to Permissive mode for th time being with following command later on you can configure its policy if required.

# setenforce 0

8) ProjectSend Web Access

Now its time open your web browser ans access the web console of ProjectSend using your FQDN or Server's IP address on default port '80'.


Configure the Basic System and default system administration options, then click on the Install button to proceed.

ProjectSend Web settings

Once, everything is fine you will get the below window to congratulate upon successful installation of ProjectSend.

Project Send Installed

9) Using ProjectSend

After basic system settings of ProjectSend Web, let login using your admin username and password to start using ProjectSend File sharing application.

ProjectSend Login

Welcome to the ProjectSend dashboard, Here you can see the stats about all of your file and images .

ProjectSend Dashboard

Now, in order start uploading your files and share with your clients, fisrt you need to add your client and then click on the File bar and choose the 'upload button from the drop down to add add and then upload your files.

Uploading files

After uploading your files, you can choose the particular client to whom you want to share. To check the status and manage your uploaded files click on the 'Manage Files' option under the Files bar as shown below.

Managing files


Thank for reading this post and let's start using it to enjoy the awesome features of ProjectSend.You can create new users as many you want, upload files, create groups etc from this Dashboard. Hope you have enjoyed this, don't forget to share your comments and suggestions.

About Kashif Siddique

Linux Systems and Security Engineer in Information and Communication Technology. Results-driven ICT Professional and Open Source Geek with technical specialties in the area of Open Source Operating systems and Applications.

Author Archive Page

Have anything to say?

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

All comments are subject to moderation.