Wie man ProjectSend mit Apache und Let’s Encrypt SSL auf Ubuntu 20.04 installiert

ProjectSend ist eine kostenlose und quelloffene Datei- und Bildfreigabeanwendung, die dir hilft, Dateien zwischen deinem Unternehmen und deinen Kunden zu teilen. Es ist ein kundenorientiertes File-Sharing-Tool, mit dem du unbegrenzt große Dateien auf jeden Server hochladen und teilen kannst. Die Software ist in PHP geschrieben und verwendet eine MySQL-Datenbank, um die Informationen zu speichern. ProjectSend bietet eine Vielzahl von Funktionen, darunter Echtzeit-Statistiken, Selbstregistrierung, Selbstanmeldung, benutzerdefinierte E-Mail-Vorlagen und mehr.

In diesem Beitrag zeigen wir dir, wie du die ProjectSend Filesharing Anwendung mit Apache und Let’s Encrypt SSL auf Ubuntu 20.04 installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Erste Schritte

Aktualisiere zunächst die Systempakete auf die aktuelle Version, indem du den folgenden Befehl ausführst:

apt-get update -y

Sobald alle Pakete aktualisiert sind, kannst du mit dem nächsten Schritt fortfahren.

LAMP Server installieren

Zuerst musst du den Apache, MariaDB, PHP und andere benötigte Erweiterungen auf deinem Server installieren. Du kannst sie alle mit dem folgenden Befehl installieren:

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

Nachdem du alle Pakete installiert hast, editiere die php.ini Datei:

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

Ändere die folgenden Einstellungen:

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

Speichere und schließe die Datei und starte den Apache-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache2

Sobald du fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Erstelle eine Datenbank für ProjectSend

Als nächstes musst du eine Datenbank und einen Benutzer für ProjectSend erstellen.

Dazu loggst du dich mit dem folgenden Befehl in die MariaDB ein:

mysql

Sobald du eingeloggt bist, erstelle eine Datenbank und einen Benutzer mit dem folgenden Befehl:

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

Als nächstes gibst du der ProjectSend-Datenbank alle Rechte mit folgendem Befehl:

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

Lösche die Rechte und verlasse MariaDB mit dem folgenden Befehl:

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

Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

ProjectSend herunterladen

Als nächstes musst du die neueste Version von ProjectSend von der offiziellen Website herunterladen. Du kannst sie mit dem folgenden Befehl herunterladen:

wget -O projectsend.zip https://www.projectsend.org/download/387/

Sobald der Download abgeschlossen ist, extrahiere die heruntergeladene Datei mit dem folgenden Befehl:

unzip projectsend.zip -d /var/www/html/projectsend

Als nächstes wechselst du in das entpackte Verzeichnis und benennst die Standard-Konfigurationsdatei um:

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

Als nächstes bearbeitest du die Konfigurationsdatei mit dem folgenden Befehl:

nano sys.config.php

Ändere die folgenden Einstellungen:

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

Speichere und schließe die Datei und setze dann die richtigen Rechte und Eigentümer mit dem folgenden Befehl:

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

Sobald du fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Apache für ProjectSend konfigurieren

Als nächstes erstellst du eine Apache Virtual Host Konfigurationsdatei mit dem folgenden Befehl:

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

Füge die folgenden Zeilen hinzu:

<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>

Speichere und schließe die Datei und aktiviere dann das Rewrite-Modul und die Konfigurationsdatei des virtuellen Hosts mit dem folgenden Befehl:

a2enmod rewrite
a2ensite projectsend.conf

Starte als nächstes den Apache-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache2

Du kannst nun den Status des Apache mit dem folgenden Befehl überprüfen:

systemctl status apache2

Du solltest die folgende Ausgabe sehen:

? 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...

Access ProjectSend Web Interface

Öffne nun deinen Webbrowser und rufe das ProjectSend Webinterface über die URL http://projectsend.example.com auf. Du solltest die folgende Seite sehen:

ProjectSend Einrichtung

Gib deinen Site-Namen, die Site-URL, den Admin-Benutzernamen und das Passwort ein und klicke auf die Schaltfläche Installieren. Du solltest die folgende Seite sehen:

Datenbank Installation

Klicke nun auf den Login-Button. Du solltest die folgende Seite sehen:

Administrator Anmeldung

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf den Login-Button. Du solltest das ProjectSend Dashboard auf der folgenden Seite sehen:

ProjectSend Dashboard

ProjectSend mit Let’s Encrypt SSL sichern

Es ist immer eine gute Idee, deine Website mit Let’s Encrypt SSL zu sichern. Zuerst musst du den Certbot-Client installieren, um das SSL zu installieren und zu verwalten. Standardmäßig ist das Certbot-Paket im Ubuntu Standard-Repository enthalten, so dass du es mit dem folgenden Befehl installieren kannst:

apt-get install python3-certbot-apache -y

Sobald Certbot installiert ist, führe den folgenden Befehl aus, um deine Webseite mit Let’s Encrypt SSL zu sichern:

certbot --apache -d projectsend.example.com

Du wirst aufgefordert, deine E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren, wie unten gezeigt:

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): hitjethva1981@gmail.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

Als nächstes wählst du aus, ob der HTTP-Verkehr auf HTTPS umgeleitet werden soll oder nicht, wie unten gezeigt:

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

Tippe 2 ein und drücke Enter, um Let’s Encrypt SSL für deine Webseite zu installieren:

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

Fazit

Herzlichen Glückwunsch! Du hast ProjectSend mit Apache und Let’s Encrypt SSL erfolgreich auf Ubuntu 20.04 installiert. Du kannst nun ganz einfach Dateien und Bilder über das ProjectSend Webinterface teilen.

Das könnte dich auch interessieren …