Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Project Send Setup and Configuration

From Thibble Wiki

Project Send Configuration and Setup

A Quick wiki write-up for the configuration of a mysql based Project Send server for client and public file uploading and sharing, to facilitate public access and file serving.

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 Installation

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

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.