GNU/Linux >> Znalost Linux >  >> Debian

Vytvořte online sociální síť s Elgg na Debianu 9

V tomto tutoriálu vám ukážu, jak nainstalovat a nakonfigurovat nejnovější verzi Elgg na Debian 9, abyste mohli vytvořit bezplatnou online sociální síť.

Elgg je bezplatný open source framework pro sociální engine napsaný v programovacím jazyce PHP. Rámec Elgg může pomoci jednotlivcům nebo organizacím vytvářet výkonná sociální prostředí v Linuxu pod webovými servery Apache/Nginx, systémem správy databází PHP a MySQL/MariaDB, také známým jako LAMP nebo LEMP stack. Má také vestavěné funkce, které mohou podporovat sdílení souborů, blogování, sociální skupiny nebo vzdělávací platformy na veřejných nebo soukromých sítích.

Abyste mohli úspěšně nasadit platformu Elgg ve vašich prostorách, budete muset splnit následující požadavky.

  • Virtuální počítač nebo virtuální privátní server využívající Debian 9, nejlépe s minimální instalací
  • Přímý přístup k účtu root nebo místnímu uživateli s oprávněním root prostřednictvím konzoly serveru nebo vzdálené správy pomocí SSH
  • Server potřebuje statickou IP adresu nakonfigurovanou pro externí síťové rozhraní, aby mohl přistupovat prostřednictvím své veřejné IP adresy k návštěvníkům
  • Můžete také potřebovat název veřejné nebo soukromé domény nakonfigurovaný pro váš server, aby návštěvníci mohli přistupovat k platformě prostřednictvím názvu domény, například www.yourdomain.com, i když stále můžete k platformě přistupovat prostřednictvím IP adresy vašeho serveru.
  • Abyste mohli používat registraci webových stránek Elgg prostřednictvím e-mailové adresy nebo používat jiné funkce platformy, musíte ve svých prostorách nasadit poštovní server nebo použít veřejný poštovní server.

Předběžné požadavky

Jako první krok se přihlaste k serveru Debian 9 s právy root nebo s uživatelem s oprávněním root a zadejte následující příkaz, abyste aktualizovali svůj systém nejnovějšími bezpečnostními záplatami, aktualizacemi softwaru a jádra.

apt update
apt upgrade

Dále se ujistěte, že jste nakonfigurovali název vašeho počítače provedením následujících příkazů. Měli byste nahradit proměnnou názvu hostitele použitou v tomto příkladu tak, aby odpovídala vaší vlastní doméně.

hostnamectl set-hostname www.socialnet.org

Poté, co nakonfigurujete název hostitele počítače, ověřte, zda byl hostitel správně nakonfigurován, kontrolou souboru hosts pomocí následujících příkazů.

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

Nakonec, abyste mohli použít aktualizace názvu hostitele a jádra počítače, restartujte systém zadáním následujícího příkazu.

systemctl reboot

Po restartu systému se přihlaste zpět do konzoly a spusťte následující příkaz k instalaci některých systémových nástrojů, které nám pomohou stáhnout software přes internet a extrahovat některé typy archivních souborů

apt install wget zip unzip curl

Instalovat sadu LAMP

Abychom mohli na náš server nasadit framework sociální sítě Elgg, musíme nainstalovat komponenty zásobníku LAMP. První komponentou, kterou nainstalujeme, je databáze – MariaDB – fork populární databáze MySQL, jako backend databáze. Databázi MariaDB bude aplikace používat k ukládání uživatelů, relací, kontaktů, příspěvků, komentářů a dalších informací. Chcete-li nainstalovat databázový server a klientský software MariaDB v Debianu 9 prostřednictvím oficiálních repozitářů, zadejte v terminálu příkaz níže.

apt install mariadb-server mariadb-client

Po dokončení instalace databáze se přihlaste do konzole MySQL a zadejte následující příkazy, abyste zabezpečili kořenový účet databáze, ke kterému lze ve výchozím nastavení přistupovat bez zadání hesla.

mysql -h localhost
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

 

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> použijte mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed

MariaDB [mysql]> aktualizovat uživatelskou sadu plugin='' where user='root';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [mysql]> flush oprávnění;

Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> exit

Bye

Po dokončení výše uvedeného kroku spusťte mysql_secure_installation skript poskytovaný repozitáři Debian stretch, za účelem dalšího zabezpečení serveru MariaDB a nastavení silného hesla pro kořenový účet databáze. Především odpovězte „ano“ na všechny otázky, které skript položil, jako například:změnit heslo root v MySQL, odstranit anonymní uživatele, zakázat vzdálené přihlášení root a odstranit testovací databázi, jak je znázorněno na níže uvedeném úryvku skriptu.

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

 

In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

 

Enter current password for root (enter for none):

OK, successfully used password, moving on...

 

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

 

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] y

New password:

Re-enter new password:

Password updated successfully!

Reloading privilege tables..

 ... Success!

 

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

 

Remove anonymous users? [Y/n] y

 ... Success!

 

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

 

Disallow root login remotely? [Y/n] y

 ... Success!

 

By default, MariaDB comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

 

Remove test database and access to it? [Y/n] y

 - Dropping test database...

 ... Success!

 - Removing privileges on test database...

 ... Success!

 

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

 

Reload privilege tables now? [Y/n] y

 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

Chcete-li otestovat zabezpečení MariaDB, zkuste se přihlásit do databáze z konzole bez hesla root. Přístup k databázi by měl být odepřen, pokud není poskytnuto žádné heslo pro účet root, jak je znázorněno na níže uvedeném úryvku příkazu:

mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Pokud je zadáno heslo, měl by být proces přihlášení povolen konzoli MySQL, jak je znázorněno na příkladu příkazu:

mysql -h localhost -u root -p
Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 15

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit

Bye

Po instalaci a zabezpečení databáze MariaDB je čas nainstalovat další součásti potřebné k nasazení aplikace Elgg:server Apache HTTP a bránu pro zpracování programovacího jazyka PHP. Chcete-li nainstalovat webový server Apache a interpret PHP spolu se všemi požadovanými moduly PHP, pomocí kterých bude server spouštět aplikační skripty, spusťte na konzole serveru následující příkaz.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-mbstring php7.0-xml php7.0-mysql

Dále otevřete a upravte výchozí konfigurační soubor PHP změnou následujících proměnných PHP. Otevřete /etc/php/7.0/apache2/php.ini soubor pro úpravu a změňte následující řádky. nejprve vytvořte zálohu konfiguračního souboru PHP.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Vyhledejte, upravte a změňte následující proměnné v php.ini konfigurační soubor:

file_uploads = On
default_charset = UTF-8
memory_limit = 128M
upload_max_filesize = 100M
date.timezone = Europe/London

Zvětšete upload_max_file_size proměnnou podle potřeby, aby bylo možné podporovat velké přílohy souborů pro vaši aplikaci. Změňte také časové pásmo PHP nastavení podle zeměpisné polohy vašeho systému pomocí seznamu časových pásem poskytovaných dokumenty PHP na následujícím odkazu http://php.net/manual/en/timezones.php

Povolte plugin OPCache dostupný pro PHP7, abyste zvýšili rychlost načítání webových stránek přidáním následujícího nastavení OPCache do spodní části konfiguračního souboru PHP interpretu, pod [opcache] prohlášení, jak je podrobně popsáno níže:

opcache.enable=1 
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Po provedení všech výše uvedených změn uložte a zavřete php.ini konfiguračního souboru, restartujte webový server Apache, abyste použili změny PHP interpretu vydáním níže uvedeného příkazu.

systemctl restart apache2

Nakonfigurujte bránu firewall

Chcete-li přidat požadovaná pravidla aplikace brány firewall UFW, aby provoz HTTP mohl procházet bránou firewall systému, zadejte v konzole serveru následující příkazy.

ufw allow WWW

nebo

ufw allow 80/tcp

V případě, že jste vzdáleně připojeni ke svému serveru přes SSH, přidejte níže uvedené pravidlo k otevření portu SSH 22 ve vašem firewallu.

ufw allow 22/tcp

Pokud spravujete pravidla brány firewall na serveru Debian pomocí iptables nezpracovaných pravidel, přidejte následující pravidla, aby příchozí provoz na portech 80 a 22 mohl projít bránou firewall, aby externí klienti měli přístup k aplikaci. Otevřete port 22/TCP, pouze pokud jste vzdáleně připojeni k serveru přes SSH.

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service

Konfigurovat webový server Apache

V dalším kroku povolte přepisovací modul Apache potřebný pro změnu konfigurací webového serveru za běhu prostřednictvím souboru .htacccess a modul TLS potřebný k zabezpečení transakcí HTTP vydáním níže uvedeného příkazu.

a2enmod rewrite ssl
a2ensite default-ssl.conf

Dále otevřete výchozí konfigurační soubor webu Apache SSL pro úpravy pomocí svého oblíbeného textového editoru a za DocumentRoot přidejte následující pravidla pro přepis adresy URL. směrnice:

nano /etc/apache2/sites-enabled/default-ssl.conf

Výňatek z konfiguračního souboru webu SSL:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Proveďte také níže uvedenou změnu na řádku VirtualHost, aby to vypadalo jako v následujícím úryvku:

<VirtualHost *:443>

Přidejte stejné změny do výchozího konfiguračního souboru Apache otevřením /etc/apache2/sites-enabled/000-default.conf soubor k úpravě. Za DocumentRoot vložte následující řádky kódu prohlášení, jak je uvedeno v příkladu níže.

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory

Nakonec restartujte démona Apache, abyste použili všechna dosud nakonfigurovaná pravidla a navštivte IP adresu vaší domény nebo serveru prostřednictvím protokolu HTTP.

systemctl restart apache2

Protože při instalaci používáte automaticky páry certifikátů s vlastním podpisem vydávané Apache, u certifikátu, který prohlížeč nedůvěřuje, by se v prohlížeči mělo zobrazit upozornění na chybu. Přijměte varování, abyste přijali nedůvěryhodný certifikát a byli nadále přesměrováni na výchozí webovou stránku Apache, jak je znázorněno na obrázku níže.

https://vasedomena.tld

Aby provoz HTTPS mohl procházet firewallem UFW, měli byste přidat následující pravidlo, které povolí příchozí provoz 443/TCP zadáním příkazu níže.

ufw allow 'WWW Full'

nebo

ufw allow 443/tcp

Pokud iptables je výchozí firewallová aplikace nainstalovaná pro ochranu vašeho systému Debian na úrovni sítě, přidejte následující pravidlo, které povolí příchozí provoz na portu 443 ve firewallu, aby návštěvníci mohli procházet název vaší domény.

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent

Nakonec vytvořte informační soubor PHP v kořenové cestě dokumentu vašeho webového serveru provedením následujícího příkazu.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

Navštivte soubor skriptu PHP info otevřením prohlížeče na následující adrese URL:

https://yourdomain.tld/info.php

Ověřte nastavení PHP a přejděte dolů na datum konfigurace pro kontrolu konfigurace časového pásma PHP.

Instalovat software Elgg

Chcete-li do svého systému nasadit platformu sociální sítě Elgg, nejprve navštivte oficiální stránku stahování Elgg na adrese https://elgg.org/about/download  a stáhněte si nejnovější komprimovaný archiv balíčku zip zadáním příkazu níže.

wget -O elgg-2.3.5.zip https://elgg.org/getelgg.php?forward=elgg-2.3.5.zip
ls

Dále extrahujte archivní soubor Elgg zip do aktuálního pracovního adresáře a vypište extrahované soubory pomocí následujících příkazů.

unzip elgg-2.3.5.zip
ls -al elgg-2.3.5

V dalším kroku smažte výchozí soubor index.html nainstalovaný webovým serverem Apache na cestu webroot a soubor info.php vytvořený dříve zadáním níže uvedených příkazů.

rm /var/www/html/index.html
rm /var/www/html/info.php

Dále zkopírujte veškerý obsah extrahovaného adresáře Elgg, včetně skrytého .htaccess soubor do kořenové cesty dokumentu vašeho webového serveru zadáním následujícího příkazu.

cp -rf elgg-2.3.5/* /var/www/html/
cp elgg-2.3.5/.htaccess /var/www/html/

Po zkopírování instalačních souborů Elgg do cesty webroot vaší domény vytvořte adresář s názvem data pro aplikaci Elgg, o úroveň výš webroot vaší domény, vydáním následujícího příkazu. Datový adresář bude používat aplikace Elgg k ukládání různých uživatelských souborů. Tato data adresář lze vytvořit kdekoli v hierarchii souborového systému vašeho serveru s poznámkou, že musíte udělit uživateli runtime Apache oprávnění k zápisu do tohoto adresáře.

mkdir  /var/www/data
chown www-data:www-data /var/www/data

Dále spusťte níže uvedené příkazy, abyste udělili uživateli Apache runtime plná oprávnění k zápisu do webové kořenové cesty. Použijte ls příkaz k zobrazení seznamu oprávnění pro nainstalované soubory aplikace umístěné v /var/www/html/ adresář.

chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/

Před zahájením procesu instalace prostřednictvím webového prohlížeče se přihlaste do konzole databáze MariaDB a vytvořte databázi Elgg a uživatele s heslem, který bude použit ke správě této databáze, zadáním následujících příkazů. Ujistěte se, že jste odpovídajícím způsobem nahradili název databáze, uživatele a heslo použité v tomto kurzu.

mysql –u root -p
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

 

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> vytvořit databázi elgg_db;

Query OK, 1 row affected (0.00 sec) 

MariaDB [(none)]> udělte všechna oprávnění na elgg_db.* uživateli 'elgg_user'@'localhost' identifikovanému pomocí 'password1234';

Query OK, 0 rows affected (0.00 sec) 

MariaDB [(none)]> flush oprávnění;

Query OK, 0 rows affected (0.00 sec) 

MariaDB [(none)]> exit

Bye 

Nyní pokračujte v instalaci Elgg. Nejprve otevřete prohlížeč a přejděte na IP adresu nebo název domény nebo FQDN serveru prostřednictvím protokolu HTTPS.

https://vasedomena.tld

Na uvítací obrazovce instalační program zobrazí úvodní zprávu, která vás informuje, že software platformy Elgg bude vyžadovat provedení šesti kroků, aby bylo možné aplikaci nainstalovat. Stačí kliknout na tlačítko Další a spustit proces instalace, jak je znázorněno na níže uvedeném snímku obrazovky.

Dále instalační program Elgg analyzuje váš systém a zkontroluje, zda jsou pro instalaci aplikace splněny požadavky PHP a webového serveru. Klepnutím na tlačítko Další pokračujte v procesu instalace, jak je znázorněno na níže uvedeném snímku obrazovky.

Na další obrazovce instalace nakonfigurujte nastavení databáze MySQL zadáním názvu databáze MySQL, hostitele serveru (použijte localhost pokud je databáze nainstalována na stejném uzlu), uživatelské jméno databáze a heslo vytvořené dříve pro instalaci Elgg. Použijte předponu databázové tabulky jako výchozí nebo ji změňte, pokud chcete přidat další vrstvu zabezpečení pro vaši aplikaci. Nakonec vyberte výchozí nastavení časového pásma pro aplikaci a klepnutím na tlačítko Další přejděte na další obrazovku instalace. Použijte níže uvedený snímek obrazovky jako průvodce pro konfiguraci tohoto kroku.

V dalším kroku nakonfigurujte web Elgg přidáním názvu webu a e-mailové adresy pro komunikaci s uživatelem. Změňte také adresu URL webu, pokud nebyla správně zjištěna, a přidejte úplnou cestu k datům webu adresář. Nakonec nastavte výchozí úroveň přístupu k webu pro nováčky a pokračujte v procesu instalace stisknutím tlačítka Další.

Poté vytvořte první účet správce pro svůj web vyplněním pole Zobrazovaný název názvem svého účtu správce. Přidejte také e-mailovou adresu účtu správce, uživatelské jméno a heslo, jak je znázorněno na obrázku níže. Po dokončení tohoto kroku pokračujte a dokončete proces instalace klepnutím na tlačítko Další.

Po dokončení procesu instalace klikněte na tlačítko „Přejít na web“, abyste byli přesměrováni na administrační panel Elgg.

Po přihlášení k ovládacímu panelu Elgg přejděte do nabídky Konfigurovat -> Zásuvné moduly z pravého panelu a začněte aktivovat požadované zásuvné moduly Elgg klepnutím na tlačítko Aktivovat u vybraného zásuvného modulu.

Aplikaci Elgg můžete také navštívit tak, že přejdete na IP adresu vašeho serveru nebo název domény pomocí protokolu HTTPS. Použijte přihlašovací údaje nakonfigurované pro účet správce během procesu instalace, abyste se mohli přihlásit do aplikace sociálního nástroje Elgg, jak je znázorněno na níže uvedeném snímku obrazovky.

https://vasedomena.tld

Jako poslední krok, pokud chcete návštěvníky přinutit, aby bezpečně procházeli web Elgg pomocí protokolu HTTPS, který šifruje provoz mezi serverem a klientskými prohlížeči, vraťte se do konzole serveru Debian a upravte .htaccess soubor umístěný v kořenové cestě dokumentu vašeho webu, zadáním níže uvedeného příkazu.

nano /var/www/html/.htaccess

V souboru .htaccess vyhledejte  řádek a přidejte níže uvedená pravidla za RewriteEngine On za účelem automatického přesměrování veškerého provozu vaší domény na HTTPS.

RewriteEngine On
# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

Zde můžete také změnit některé PHP proměnné pro váš web. Vyhledejte direktivu a pod tento řádek přidejte svá vlastní nastavení PHP, jako například:zvětšete velikost nahrávaného souboru pro doménu nebo deaktivujte některé výchozí konfigurace PHP serveru, jak je znázorněno na níže uvedeném úryvku:

# Alter web server PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 100M
php_value post_max_size 100M

Aby aplikace Elgg mohla odesílat upozornění ve frontě, střídat systémové protokoly v databázi a shromažďovat odpadky v databázi (kompaktování databáze odstraněním položek, které již nejsou potřeba), vytvořte soubor crontab pro s níže uvedenými konfiguracemi. Tuto úlohu crontab také musí vlastnit a provádět uživatel runtime Apache.

crontab -u www-data –e

Výňatek ze souboru Crontab. Výstup úlohy cron každé úlohy bude zahozen do Linuxu /dev/null soubor blackhole. Nahraďte proměnnou názvu domény ($ELGG ) použitý v tomto skriptu odpovídajícím způsobem.

GET="curl -k"
ELGG="https://www.socialnet.org/"

OUT=" > /dev/null 2>&1"

* * * * * $GET ${ELGG}cron/minute/${OUT}
*/5 * * * * $GET ${ELGG}cron/fiveminute/${OUT}
15,30,45,59 * * * * $GET ${ELGG}cron/fifteenmin/${OUT}
30,59 * * * * $GET ${ELGG}cron/halfhour/${OUT}
@hourly $GET ${ELGG}cron/hourly/${OUT}
@daily $GET ${ELGG}cron/daily/${OUT}
@weekly $GET ${ELGG}cron/weekly/${OUT}
@monthly $GET ${ELGG}cron/monthly/${OUT}
@yearly $GET ${ELGG}cron/yearly/${OUT}
@reboot $GET ${ELGG}cron/reboot/${OUT}

Gratulujeme! Platforma sociálních médií Elgg byla úspěšně nainstalována a nakonfigurována ve vašich prostorách na serveru Debian 9. V případě, že používáte registrovaný název veřejné domény k vystavení aplikace Elgg veřejně přístupným návštěvníkům, měli byste zvážit zakoupení certifikátu SSL vydaného důvěryhodnou certifikační autoritou nebo získat pár certifikátů zdarma od Let’s Encrypt CA.

Chcete-li dále spravovat aplikaci Elgg, navštivte stránky s dokumentací na následující adrese: http://learn.elgg.org/en/stable/index.html


Debian
  1. Nainstalujte WordPress se vzdálenou databází na Debian

  2. Debian – vytvořit balíček .deb pouze se závislostmi?

  3. Jak nainstalovat Zabbix na Debian 9

  1. Jak nakonfigurovat bránu firewall s CSF na Debianu 9

  2. Jak nainstalovat sociální síť Elgg na Debian 9

  3. Nastavte poštovní server pomocí PostfixAdmin na Debianu 9

  1. Jak nastavit FTP server s VSFTPD na Debianu 9

  2. Jak nainstalovat Flarum Forum na Debian 11

  3. Jak nainstalovat Rundeck na server Debian 8 (Jessie).