GNU/Linux >> Znalost Linux >  >> Ubuntu

Nainstalujte ProjectSend na Ubuntu 20.04 s Nginx (LEMP Stack)

Tento tutoriál vám ukáže, jak nainstalovat ProjectSend na Ubuntu 20.04 LTS s webovým serverem Nginx.

Co je ProjectSend?

ProjectSend je bezplatné řešení pro sdílení souborů s vlastním hostitelem s otevřeným zdrojovým kódem. Funkce ProjectSend:

  • Statistiky v reálném čase
  • Vytvořte skupiny klientů
  • samoregistrace a sociální přihlášení
  • Vlastní e-mailové šablony

Předpoklady

ProjectSend je napsán v programovacím jazyce PHP. Abyste mohli postupovat podle tohoto návodu, musíte nejprve nainstalovat zásobník LEMP na Ubuntu 20.04 . Pokud jste tak ještě neučinili, podívejte se prosím na následující návod.

  • Jak nainstalovat LEMP Stack (Nginx, MariaDB, PHP7.4-FPM) na Ubuntu 20.04

ProjectSend můžete nainstalovat na svůj domovský server nebo VPS (virtuální soukromý server). Potřebujete také název domény, takže později budete moci povolit HTTPS pro šifrování HTTP provozu. Zaregistroval jsem své doménové jméno od NameCheap, protože cena je nízká a poskytují ochranu soukromí whois doživotně zdarma. ProjectSend lze nainstalovat bez názvu domény, ale opravdu to nedává smysl, pokud připojení HTTP nezašifrujete, abyste zabránili snoopingu. Doporučuji zakoupit doménové jméno, pokud si opravdu chcete pohrát se serverovým softwarem a využít jej na maximum.

Nyní nainstalujme ProjectSend.

Krok 1:Stáhněte si ProjectSend na Ubuntu 20.04

Přihlaste se na svůj server Ubuntu 20.04. Poté si stáhněte zip archiv ProjectSend na váš server. Poslední stabilní verze je v době psaní tohoto článku r1295. Možná budete muset změnit číslo verze. Přejděte na https://www.projectsend.org/#download a podívejte se na nejnovější verzi.

Můžete spustit následující příkaz a stáhnout jej na váš server.

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

Po stažení rozbalte archiv pomocí unzip .

sudo apt install unzip

sudo mkdir -p /usr/share/nginx/projectsend/

sudo unzip projectsend.zip -d /usr/share/nginx/projectsend/

-d volba určuje cílový adresář. Webové soubory ProjectSend budou extrahovány do /usr/share/nginx/projectsend/ . Potom musíme změnit vlastníka tohoto adresáře na www-data aby webový server (Nginx) mohl zapisovat do tohoto adresáře.

sudo chown www-data:www-data /usr/share/nginx/projectsend/ -R

Krok 2:Vytvoření databáze a uživatele pro ProjectSend na databázovém serveru MariaDB

Přihlaste se k databázovému serveru MariaDB pomocí následujícího příkazu. Protože MariaDB nyní používá unix_socket plugin pro ověření přihlášení uživatele, není nutné zadávat root heslo MariaDB. Potřebujeme pouze předponu mysql příkaz pomocí sudo .

sudo mysql

Poté vytvořte databázi pro ProjectSend. Tento kurz pojmenuje databázové projekty. Můžete použít jakékoli jméno.

create database projectsend;

Vytvořte uživatele databáze. Opět můžete pro tohoto uživatele použít preferované jméno. Nahraďte your-password s vaším preferovaným heslem.

create user projectsenduser@localhost identified by 'your-password';

Udělte tomuto uživateli všechna oprávnění k projectsend databáze.

grant all privileges on projectsend.* to projectsenduser@localhost;

Vyprázdněte oprávnění a ukončete.

flush privileges;

exit;

Krok 3:Konfigurace ProjectSend

Přejděte na includes adresář.

cd /usr/share/nginx/projectsend/includes/

Zkopírujte ukázkový konfigurační soubor a přejmenujte jej na sys.config.php .

sudo cp sys.config.sample.php sys.config.php

Nyní upravte nový konfigurační soubor pomocí textového editoru příkazového řádku, jako je Nano.

sudo nano sys.config.php

Najděte následující řádky a nahraďte červené texty názvem databáze, uživatelským jménem a heslem, které jste vytvořili v kroku 2.

/** Database name */
define('DB_NAME', 'database');

/** Database host (in most cases it's localhost) */
define('DB_HOST', 'localhost');

/** Database username (must be assigned to the database) */
define('DB_USER', 'username');

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

Uložte a zavřete soubor. Chcete-li soubor uložit v textovém editoru Nano, stiskněte Ctrl+O a poté stiskněte Enter potvrdit. Poté stiskněte Ctrl+X pro ukončení.

Krok 4:Vytvořte soubor Nginx Config pro ProjectSend

Vytvořte projectsend.conf soubor v /etc/nginx/conf.d/ adresář s textovým editorem příkazového řádku, jako je Nano.

sudo nano /etc/nginx/conf.d/projectsend.conf

Zkopírujte a vložte následující text do souboru. Nahraďte projectsend.example.com s vaší preferovanou subdoménou. Nezapomeňte vytvořit záznam DNS A pro tuto subdoménu v editoru zóny DNS. Pokud nemáte skutečný název domény, doporučuji přejít na NameCheap a koupit si ho. Cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.

server {
    listen 80;
    listen [::]:80;
    server_name projectsend.example.com;

    # Add headers to serve security related headers
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;
    add_header Referrer-Policy no-referrer;

    # Path to the root of your installation
    root /usr/share/nginx/projectsend/;
    index index.php index.html;

    access_log /var/log/nginx/projectsend.access;
    error_log /var/log/nginx/projectsend.error;

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~ /.well-known/acme-challenge {
      allow all;
    }

    # set max upload size
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;

    # Disable gzip to avoid the removal of the ETag header
    gzip off;

    # Uncomment if your server is build with the ngx_pagespeed module
    # This module is currently not supported.
    #pagespeed off;

    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;

    location / {
      try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
       include fastcgi_params;
       fastcgi_split_path_info ^(.+\.php)(/.*)$;
       try_files $fastcgi_script_name =404;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_param PATH_INFO $fastcgi_path_info;
       #Avoid sending the security headers twice
       fastcgi_param modHeadersAvailable true;
       fastcgi_param front_controller_active true;
       fastcgi_pass unix:/run/php/php7.4-fpm.sock;
       fastcgi_intercept_errors on;
       fastcgi_request_buffering off;
    }

   location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        # Optional: Don't log access to other assets
        access_log off;
   }
}

Uložte a zavřete soubor. (Chcete-li uložit soubor v textovém editoru Nano, stiskněte Ctrl+O a poté stiskněte Enter potvrdit. Pro ukončení stiskněte Ctrl+X .)

Poté otestujte konfiguraci Nginx.

sudo nginx -t

Pokud je test úspěšný, znovu načtěte Nginx, aby se změny projevily.

sudo systemctl reload nginx

Krok 5:Instalace a povolení modulů PHP

Spuštěním následujících příkazů nainstalujte moduly PHP požadované nebo doporučené ProjectSend.

sudo apt install imagemagick php-imagick php7.4-common php7.4-mysql php7.4-fpm 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

Krok 6:Povolte HTTPS

Nyní máte přístup k průvodci webovou instalací ProjectSend ve vašem webovém prohlížeči zadáním názvu domény pro vaši instalaci ProjectSend.

projectsend.example.com/install/index.php

Pokud se webová stránka nemůže načíst, pravděpodobně budete muset otevřít port 80 ve bráně firewall.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

A také port 443.

sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

Před zadáním jakýchkoli citlivých informací bychom měli povolit zabezpečené připojení HTTPS na ProjectSend. Můžeme získat bezplatný certifikát TLS od společnosti Let’s Encrypt. Nainstalujte klienta Let’s Encrypt (certbot) z úložiště Ubuntu 20.04.

sudo apt install certbot python3-certbot-nginx

Python3-certbot-nginx je plugin Nginx. Dále spusťte následující příkaz a získejte bezplatný certifikát TLS pomocí pluginu Nginx.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d projectsend.example.com

Kde:

  • –nginx :Použijte ověřovací a instalační program Nginx
  • –souhlasím :Souhlasíte s podmínkami služby Let’s Encrypt
  • –přesměrování :Vynutit HTTPS přidáním přesměrování 301.
  • –hsts :Povolit HTTP Strict Transport Security. To chrání před útokem na odstranění SSL/TLS.
  • –staple-ocsp :Povolit sešívání OCSP.
  • –e-mail :E-mail používaný pro registraci a kontakt pro obnovení.
  • -d za příznakem následuje seznam názvů domén oddělených čárkou. Můžete přidat až 100 názvů domén.

Budete dotázáni, zda chcete dostávat e-maily od EFF (Electronic Frontier Foundation). Po výběru Y nebo N bude váš certifikát TLS automaticky získán a nakonfigurován za vás, což je indikováno níže uvedenou zprávou.

Krok 7:Dokončete instalaci ve webovém prohlížeči

Nyní máte přístup k průvodci webovou instalací ProjectSend pomocí připojení HTTPS.

https://projectsend.example.com/install/index.php

Chcete-li dokončit instalaci, musíte mu dát název webu a vytvořit účet správce.

Klikněte na Install tlačítko, budete se moci přihlásit do webového rozhraní ProjectSend.

Jak nastavit ProjectSend Email Notification

Pokud bude vaši instanci ProjectSend používat více než jedna osoba, je důležité, aby váš server ProjectSend mohl odesílat transakční e-maily, jako jsou e-maily pro resetování hesla. Přejděte na Možnosti -> E-mailová upozornění . Najdete nastavení e-mailového serveru. Existují čtyři režimy odesílání:

  • Pošta PHP (základní)
  • SMTP
  • Gmail
  • Odeslat e-mail

Můžete zvolit sendmail režimu, pokud má váš hostitel ProjectSend spuštěný server SMTP. Ostatní pole ponechte prázdná.

Pokud byste chtěli použít SMTP server běžící na jiném hostiteli, zvolte SMTP režimu a zadejte adresu serveru SMTP a přihlašovací údaje, jak je uvedeno níže. Zvolte STARTTLS pro šifrování.

Informace o tom, jak nastavit e-mailový server, naleznete v následujícím návodu. Poznámka že vřele doporučuji provozovat poštovní server iRedMail na čerstvém čistém OS. Instalace iRedMail na OS, který má jiné webové aplikace, může selhat a pravděpodobně přerušit stávající aplikace.

  • Jak snadno nastavit plně vybavený poštovní server na Ubuntu 20.04 pomocí iRedMail

Krok 8:Zvyšte limit paměti PHP

Výchozí limit paměti PHP je 128 MB. ProjectSend doporučuje 512 MB pro lepší výkon. Chcete-li změnit limit paměti PHP, upravte soubor php.ini soubor.

sudo nano /etc/php/7.4/fpm/php.ini

Najděte následující řádek. (řádek 409)

memory_limit = 128M

Změňte hodnotu.

memory_limit = 512M

Uložte a zavřete soubor. Případně můžete spustit následující příkaz a změnit hodnotu bez ručního otevírání souboru.

sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/7.4/fpm/php.ini

Poté znovu načtěte PHP-FPM aby se změny projevily.

sudo systemctl reload php7.4-fpm

Krok 9:Zvyšte limit velikosti nahrávaného souboru

Výchozí maximální limit velikosti nahrávaného souboru stanovený Nginxem je 1 MB. Chcete-li povolit nahrávání velkých souborů na server ProjectSend, upravte konfigurační soubor Nginx pro ProjectSend.

sudo nano /etc/nginx/conf.d/projectsend.conf

V tomto souboru jsme již nastavili maximální velikost souboru, jak ukazuje

client_max_body_size 512M;

Pokud chcete, můžete to změnit, například 1G.

client_max_body_size 1024M;

Uložte a zavřete soubor. Poté znovu načtěte Nginx, aby se změny projevily.

sudo systemctl reload nginx

PHP také nastavuje limit velikosti nahrávaného souboru. Výchozí maximální velikost souboru pro nahrávání je 2 MB. Chcete-li zvýšit limit velikosti nahrávání, upravte konfigurační soubor PHP.

sudo nano /etc/php/7.4/fpm/php.ini

Najděte následující řádek (řádek 846).

upload_max_filesize = 2M

Změňte hodnotu takto:

upload_max_filesize = 1024M

Uložte a zavřete soubor. Případně můžete spustit následující příkaz a změnit hodnotu bez ručního otevírání souboru.

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 1024M/g' /etc/php/7.4/fpm/php.ini

Poté restartujte PHP-FPM.

sudo systemctl restart php7.4-fpm

Přidání místního záznamu DNS

Doporučuje se upravit /etc/hosts soubor na vašem serveru ProjectSend a přidejte následující položku, takže ProjectSend sám nebude muset dotazovat veřejný DNS, což může zlepšit celkovou stabilitu. Pokud váš server ProjectSend nedokáže vyřešit projectsend.example.com hostname, pak můžete narazit na časový limit brány 504 chyba.

127.0.0.1   localhost projectsend.example.com

IP adresa v /etc/hosts soubor může mít více názvů hostitelů, takže pokud máte na stejném boxu nainstalované další aplikace, můžete také přidat další názvy hostitelů nebo subdomény na stejný řádek takto:

127.0.0.1   localhost focal ubuntu projectsend.example.com nextcloud.example.com

Tipy pro odstraňování problémů

Pokud narazíte na chyby, můžete zkontrolovat jeden z následujících souborů protokolu a zjistit, co je špatně.

  • Protokol chyb Nginx:/var/log/nginx/error.log
  • Protokol chyb Nginx pro virtuálního hostitele ProjectSend:/var/log/nginx/projectsend.error

Ubuntu
  1. Jak nainstalovat Nginx s PHP a MySQL (LEMP Stack) na Ubuntu 18.04

  2. Jak nainstalovat Nginx s PHP a MySQL (LEMP Stack) na Ubuntu 20.04 LTS

  3. Jak nainstalovat Shlink URL Shortener s Nginx na Ubuntu 20.04

  1. Jak nainstalovat TYPO3 8.1 s Nginx (LEMP) na Ubuntu 16.04

  2. Nainstalujte WordPress s LEMP Stack na Ubuntu 20.04

  3. Nainstalujte phpMyAdmin s LEMP Stack na Ubuntu 20.04 LTS

  1. Nainstalujte Nginx, MySQL, PHP (LEMP Stack) na Ubuntu 20.04 LTS

  2. Jak nainstalovat LEMP Stack na Ubuntu 20.04

  3. Nainstalujte WordPress s LEMP Stack na Ubuntu 20.04