ProjectSend est une application gratuite et open-source de partage de fichiers et d'images qui vous aide à partager des fichiers entre votre entreprise et vos clients. Il s'agit d'un outil de partage de fichiers orienté client qui vous permet de télécharger et de partager une taille de fichier illimitée sur n'importe quel serveur. Il est écrit en PHP et utilise une base de données MySQL pour stocker les informations. Il offre un riche ensemble de fonctionnalités, notamment des statistiques en temps réel, l'auto-inscription, l'auto-connexion, des modèles d'e-mail personnalisés, etc.
Dans cet article, nous vous montrerons comment installer l'application de partage de fichiers ProjectSend avec Apache et Let's Encrypt SSL sur Ubuntu 20.04.
Prérequis
- Un serveur exécutant Ubuntu 20.04.
- Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
- Un mot de passe root est configuré sur le serveur.
Mise en route
Tout d'abord, mettez à jour les packages système vers la version mise à jour en exécutant la commande suivante :
apt-get update -y
Une fois tous les packages mis à jour, vous pouvez passer à l'étape suivante.
Installer le serveur LAMP
Tout d'abord, vous devrez installer Apache, MariaDB, PHP et les autres extensions requises sur votre serveur. Vous pouvez tous les installer avec la commande suivante :
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
Après avoir installé tous les packages, modifiez le fichier php.ini :
nano /etc/php/7.4/apache2/php.ini
Modifiez les paramètres suivants :
memory_limit = 512M upload_max_filesize = 32M max_execution_time = 300 date.timezone = Asia/Kolkata
Enregistrez et fermez le fichier puis redémarrez le service Apache pour appliquer les modifications :
systemctl restart apache2
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Créer une base de données pour ProjectSend
Ensuite, vous devrez créer une base de données et un utilisateur pour ProjectSend.
Pour ce faire, connectez-vous à MariaDB avec la commande suivante :
mysql
Une fois connecté, créez une base de données et un utilisateur avec la commande suivante :
MariaDB [(none)]> create database projectsend;
MariaDB [(none)]> create user [email protected] identified by 'password';
Ensuite, accordez tous les privilèges à la base de données projectsend avec la commande suivante :
MariaDB [(none)]> grant all privileges on projectsend.* to [email protected];
Ensuite, videz les privilèges et quittez MariaDB avec la commande suivante :
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Télécharger ProjectSend
Ensuite, vous devrez télécharger la dernière version de ProjectSend à partir de son site officiel. Vous pouvez le télécharger avec la commande suivante :
wget -O projectsend.zip https://www.projectsend.org/download/387/
Une fois le téléchargement terminé, extrayez le fichier téléchargé avec la commande suivante :
unzip projectsend.zip -d /var/www/html/projectsend
Ensuite, changez le répertoire vers le répertoire extrait et renommez le fichier de configuration par défaut :
cd /var/www/html/projectsend/includes
cp sys.config.sample.php sys.config.php
Ensuite, modifiez le fichier de configuration avec la commande suivante :
nano sys.config.php
Modifiez les paramètres suivants :
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');
Enregistrez et fermez le fichier, puis définissez les autorisations et la propriété appropriées avec la commande suivante :
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
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer Apache pour ProjectSend
Ensuite, créez un fichier de configuration d'hôte virtuel apache avec la commande suivante :
nano /etc/apache2/sites-available/projectsend.conf
Ajoutez les lignes suivantes :
<VirtualHost *:80> ServerAdmin [email protected] 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>
Enregistrez et fermez le fichier puis activez le module de réécriture et le fichier de configuration de l'hôte virtuel avec la commande suivante :
a2enmod rewrite
a2ensite projectsend.conf
Ensuite, redémarrez le service Apache pour appliquer les modifications :
systemctl restart apache2
Vous pouvez maintenant vérifier l'état de l'Apache avec la commande suivante :
systemctl status apache2
Vous devriez voir le résultat suivant :
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-06-02 07:11:08 UTC; 5min ago Docs: https://httpd.apache.org/docs/2.4/ Process: 17680 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS) Main PID: 14862 (apache2) Tasks: 6 (limit: 2353) Memory: 25.0M CGroup: /system.slice/apache2.service ??14862 /usr/sbin/apache2 -k start ??17684 /usr/sbin/apache2 -k start ??17685 /usr/sbin/apache2 -k start ??17686 /usr/sbin/apache2 -k start ??17687 /usr/sbin/apache2 -k start ??17688 /usr/sbin/apache2 -k start Jun 02 07:11:08 ubuntu2004 systemd[1]: Starting The Apache HTTP Server...
Accéder à l'interface Web ProjectSend
Maintenant, ouvrez votre navigateur Web et accédez à l'interface Web de ProjectSend à l'aide de l'URL http://projectsend.example.com . Vous devriez voir la page suivante :
Indiquez le nom de votre site, l'URL du site, le nom d'utilisateur de l'administrateur, le mot de passe, puis cliquez sur Installer bouton. Vous devriez voir la page suivante :
Maintenant, cliquez sur Connexion bouton. Vous devriez voir la page suivante :
Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir le tableau de bord ProjectSend sur la page suivante :
Sécuriser ProjectSend avec Let's Encrypt SSL
C'est toujours une bonne idée de sécuriser votre site Web avec Let's Encrypt SSL. Tout d'abord, vous devrez installer le client Certbot pour installer et gérer le SSL. Par défaut, le package Certbot est inclus dans le référentiel par défaut d'Ubuntu, vous pouvez donc l'installer avec la commande suivante :
apt-get install python3-certbot-apache -y
Une fois le Certbot installé, exécutez la commande suivante pour sécuriser votre site Web avec Let's Encrypt SSL :
certbot --apache -d projectsend.example.com
Il vous sera demandé de fournir votre adresse e-mail et d'accepter les conditions d'utilisation comme indiqué ci-dessous :
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Plugins selected: Authenticator apache, Installer apache Obtaining a new certificate Performing the following challenges: http-01 challenge for projectsend.example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/projectsend-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/projectsend-le-ssl.conf Enabling available site: /etc/apache2/sites-available/projectsend-le-ssl.conf
Ensuite, sélectionnez si vous souhaitez ou non rediriger le trafic HTTP vers HTTPS comme indiqué ci-dessous :
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Tapez 2 et appuyez sur Entrée pour installer le SSL Let's Encrypt pour votre site Web :
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/projectsend.conf to ssl vhost in /etc/apache2/sites-available/projectsend-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://projectsend.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=projectsend.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/projectsend.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/projectsend.example.com/privkey.pem Your cert will expire on 2021-12-23. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Conclusion
Toutes nos félicitations! vous avez installé avec succès ProjectSend avec Apache et Let's Encrypt SSL sur Ubuntu 20.04. Vous pouvez désormais partager facilement des fichiers et des images depuis l'interface Web de ProjectSend.