1 Project Send Configuration
T20A02 edited this page 2024-08-22 20:39:30 -04:00

Project Send Configuration and Setup

A Quick wiki write-up for the configuration of a mysql based project send server for client and user file uploading and sharing

Installation

LAMP Stack

First Update and Upgrade your system:

sudo apt update && apt upgrade

Next install your LAMP stack:

apt-get install apache2 mariadb-server imagemagick php libapache2-mod-php php-imagick php7.4-common php7.4-mysql php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp

Now make some default configuration settings for apache2:

Open

nano /etc/php/7.4/apache2/php.ini

And append the following lines to match:

memory_limit = 512M
upload_max_filesize = 32M
max_execution_time = 300
date.timezone = Asia/Kolkata

Now reboot your web service:

systemctl restart apache2

Installing database

Open mysql:

mysql

Then run the following to configuring new database:

MariaDB [(none)]> create database projectsend;
MariaDB [(none)]> create user projectsend@localhost identified by 'password';

Now give the new database user, permissions for the new database:

MariaDB [(none)]> grant all privileges on projectsend.* to projectsend@localhost;

Finally flush privlages, and exit:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Project Send install

Download the Project send zip and extract: (Make sure to grab the latest URL from the project send website)

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

Now move the extracted files to the web dir:

cd /var/www/html/projectsend/includes
cp sys.config.sample.php sys.config.php

Now configure the Database settings for project send:

nano sys.config.php

Append the following to the config file:

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', 'projectsend');

/** Database password */
define('DB_PASSWORD', 'password');

Finally configure file permissions:

chown -R www-data:www-data /var/www/html/projectsend
chmod -R 775 /var/www/html/projectsend
chmod 644 /var/www/html/projectsend/includes/sys.config.php

Configuring Apache

Create the following file:

nano /etc/apache2/sites-available/projectsend.conf

And append the following:

<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/projectsend/
ServerName projectsend.example.com
<Directory /var/www/html/projectsend/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/example.com-error_log
CustomLog /var/log/apache2/example.com-access_log common
</VirtualHost>

Commit the changes and restart apache:

a2enmod rewrite
a2ensite projectsend.conf
systemctl restart apache2

Now access your install web UI at: http://10.0.0.0/projectsend

Now you have an installed project send, and created a new user for administration.