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:
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:
Klicke nun auf den Login-Button. Du solltest die folgende Seite sehen:
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 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.