Opret et online socialt netværk med Elgg på Debian 9

I denne vejledning vil jeg vise dig, hvordan du installerer og konfigurerer den nyeste Elgg-version på Debian 9 for at skabe et gratis online socialt netværk.

Elgg er en gratis open source social engine framework software skrevet i PHP programmeringssprog. Elgg-rammerne kan hjælpe enkeltpersoner eller organisationer med at skabe effektive sociale miljøer i Linux under Apache / Nginx webservers, PHP og MySQL / MariaDB database management system, også kendt som LAMP eller LEMP stack. Det har også indbyggede funktioner, der kan drive fildeling, blogging, sociale grupper eller uddannelsesplatforme på offentlige eller private netværk.

For at kunne implementere Elgg-platformen på dine lokaler skal du opfylde følgende krav.

  • En virtuel maskine eller en virtuel privat server drevet af Debian 9, helst minimal installation
  • Direkte adgang til root-konto eller en lokal bruger med root-magt via serverkonsol eller fjernstyring via SSH
  • Serveren har brug for en statisk IP-adresse konfigureret til den eksterne netværksgrænseflade for at få adgang til den offentlige IP-adresse til besøgende
  • Du har muligvis også brug for et offentligt eller privat domænenavn konfigureret til din server, så besøgende kan få adgang til platformen via et domænenavn, f.eks. Www.yourdomain.com, selv om du stadig kan få adgang til platformen via din server-IP-adresse.
  • For at kunne bruge Elggs hjemmesideregistrering via e-mail-adresse eller bruge andre platformsfunktioner, skal du installere en mail-server hos dine lokaler eller bruge en offentlig mailserver.

Forudsætningerne

Som det første trin skal du logge på Debian 9-serveren med root-rettigheder eller med en bruger, der har root-magt og udsted følgende kommando for at opdatere dit system med de nyeste sikkerhedsopdateringer, software og kernelopdateringer.

apt opdatering

apt opgradering

Derefter skal du sørge for at konfigurere navnet på din maskine ved at udføre følgende kommandoer. Du bør erstatte hostname-variablen, der bruges i dette eksempel, for at matche dit eget domæne.

hostnamectl set-hostname www.socialnet.org

Når du har konfigureret maskinens værtsnavn, skal du kontrollere, om værten er konfigureret korrekt ved at tjekke værtsfilen med følgende kommandoer.

hostnamectl

kat / etc / værtsnavn

værtsnavn -s

værtsnavn -f

Endelig genstarter du systemet ved at udstede følgende kommando for at anvende maskinværtsnavn og kernelopdateringer.

systemstart genstart

Når systemet genstarter, skal du logge tilbage til konsollen og køre følgende kommando for at installere nogle systemværktøjer, der hjælper os med at downloade software over internettet og udtrække nogle arkivfiler

apt installere wget zip unzip curl

Installer LAMP Stack

For at implementere Elgg sociale netværk ramme på vores server, skal vi installere LAMP stakken komponenter. Den første komponent, vi installerer, er databasen - MariaDB - en gaffel af den populære MySQL database, som database backend. MariaDB-databasen vil blive brugt af applikationen til at gemme brugere, sessioner, kontakter, indlæg, kommentarer og andre oplysninger. For at installere MariaDB databaseserver og klient software i Debian 9 via de officielle arkiver udsted kommandoen nedenfor i terminal.

apt install mariadb-server mariadb-klient

Når databaseplaceringen er fuldført, skal du logge ind på MySQL-konsollen og udstede følgende kommandoer for at sikre databasens root-konto, som du kan få adgang til som standard uden at angive et kodeord.

mysql -h localhost

Velkommen til MariaDB skærm. Kommandoer slutter med; eller g. Dit MariaDB-forbindelses-id er 2 Server-version: 10.1.26-MariaDB-0 + deb9u1 Debian 9.1 Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab og andre. Skriv 'hjælp;' eller 'h' for hjælp. Skriv 'c' for at rydde den nuværende indtastningsopgørelse.

MariaDB [(none)]> brug mysql;

Læsning af tabeloplysninger til færdiggørelse af tabel- og kolonnens navne Du kan deaktivere denne funktion for at få en hurtigere start med -A database ændret

MariaDB [mysql]> opdater bruger set plugin = "hvor bruger = 'root';

Forespørgsel OK, berørt 1 række (0.00 sek) Rækker matchet: 1 ændret: 1 Advarsler: 0

MariaDB [mysql]> flush privilegier;

Query OK, 0 rækker påvirket (0.00 sek)

MariaDB [mysql]> exit

bye

Når du har gennemført ovenstående trin, skal du udføre mysql_secure_installation script tilvejebragt af Debian stretch repositories, for yderligere at sikre MariaDB server og oprette en stærk adgangskode til database root konto. Svar "ja" på alle spørgsmål, der er stillet af scriptet, som for eksempel: at ændre MySQL root-adgangskode, for at fjerne anonyme brugere, for at deaktivere root-logins og slette testdatabasen, som illustreret i nedenstående scriptuddrag.

mysql_secure_installation

BEMÆRK: RUNNING AF ALLE DELER AF DETTE SKRIPT ANBEFALES TIL ALLE MariaDB SERVERS I PRODUKTION BRUG! LÆS ALLE TRIN NØDVENDIG! For at logge ind på MariaDB for at sikre det, skal vi have den nuværende adgangskode til rodenbrugeren. Hvis du lige har installeret MariaDB, og du endnu ikke har angivet root-adgangskoden, vil adgangskoden være tom, så du skal bare trykke på enter her. Indtast aktuel adgangskode til root (indtast for ingen): OK, vellykket brugt adgangskode, fortsætter ... Indstilling af rodadgangskoden sikrer, at ingen kan logge ind på MariaDB root-brugeren uden den korrekte tilladelse. Du har allerede et root password-sæt, så du kan sikkert svare 'n'. Skift rodadgangskoden? [Y / n] y Ny adgangskode: Indtast ny adgangskode: Kodeord opdateret med succes! Genindlæsning af privilegietabeller .. ... Succes! Som standard har en MariaDB-installation en anonym bruger, så alle kan logge ind på MariaDB uden at skulle have en brugerkonto oprettet til dem. Dette er kun beregnet til test, og for at gøre installationen lidt glattere. Du skal fjerne dem, før du går ind i et produktionsmiljø. Fjern anonyme brugere? [Y / n] y ... Succes! Normalt bør root kun få lov til at oprette forbindelse fra 'localhost'. Dette sikrer, at en person ikke kan gætte på rodadgangskoden fra netværket. Forfalder root login fjernt? [Y / n] y ... Succes! Som standard kommer MariaDB med en database med navnet 'test' som alle kan få adgang til. Dette er også kun beregnet til test, og skal fjernes, før det flyttes ind i et produktionsmiljø. Fjern test database og adgang til det? [Y / n] y - Drop test database ... ... Succes! - Fjernelse af privilegier på testdatabase ... ... Succes! Ved at genindlæse privilegietabellerne vil man sikre sig, at alle de ændringer, der er foretaget indtil videre, træder i kraft straks. Genindlæs privilegietabeller nu? [Y / n] y ... Succes! Rengøring op ... Alt er gjort! Hvis du har gennemført alle ovenstående trin, skal din MariaDB-installation nu være sikker. Tak for at bruge MariaDB!

For at teste MariaDB-sikkerhed skal du prøve at logge ind på databasen fra konsollen uden root password. Adgangen til databasen bør nægtes, hvis der ikke er adgangskode til root-kontoen, som illustreret i nedenstående kommandouddrag:

mysql -h localhost -u root

FEJL 1045 (28000): Adgang nægtet for bruger 'root' @ 'localhost' (ved brug af kodeord: NEJ)

Hvis adgangskoden leveres, skal loginprocessen gives til MySQL-konsollen, som vist i kommandoen:

mysql -h localhost -u root -p

Indtast adgangskode: Velkommen til MariaDB skærm. Kommandoer slutter med; eller g. Dit MariaDB-forbindelses-id er 15 Server-version: 10.1.26-MariaDB-0 + deb9u1 Debian 9.1 Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab og andre. Skriv 'hjælp;' eller 'h' for hjælp. Skriv 'c' for at rydde den nuværende indtastningsopgørelse. MariaDB [(none)]> exit Bye

Når du har installeret og sikret MariaDB-databasen, er det på tide at installere de næste komponenter, der kræves for at installere Elgg-applikationen: Apache HTTP-server og PHP-programmeringssprogbehandlings gateway. For at installere Apache webserver og PHP tolken sammen med alle nødvendige PHP moduler, hvorigennem serveren vil udføre applikationsskripterne, skal du udføre følgende kommando i din serverkonsol.

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

Dernæst åbner og ændrer du PHP-standardkonfigurationsfilen ved at ændre følgende PHP-variabler. Åben /etc/php/7.0/apache2/php.ini fil til redigering og ændring af følgende linjer. Opret først en sikkerhedskopi af PHP-konfigurationsfilen.

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

nano /etc/php/7.0/apache2/php.ini

Søg, rediger og ændrer følgende variabler i php.ini konfigurationsfil:

file_uploads = På default_charset = UTF-8 memory_limit = 128M upload_max_filesize = 100M date.timezone = Europa / London

Forøg upload_max_file_size variabel som passende for at understøtte store filvedhæftninger til din ansøgning. Ændre også PHP tidszone indstilling til dit systems geografiske placering ved at hente listen over tidszoner, der leveres af PHP docs på følgende link http://php.net/manual/en/timezones.php

Aktivér OPCache-plugin til PHP7 for at øge hastigheden på webstedet ved at tilføje følgende OPCache-indstillinger nederst på PHP-tolk-konfigurationsfilen, under [Opcache] erklæring, som beskrevet nedenfor:

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

Når du har foretaget alle ovenstående ændringer, skal du gemme og lukke php.ini konfigurationsfil, genstart Apache webserveren for at anvende PHP tolk ændringer ved at udstede nedenstående kommando.

systemctl genstart apache2

Konfigurer Firewall

For at tilføje de nødvendige UFW firewall applikationsregler for at tillade HTTP-trafik at passere gennem system firewall, skal du udstede følgende kommandoer i serverkonsollen.

ufw tillader WWW

or

ufw tillade 80 / tcp

Hvis du er eksternt forbundet til din server via SSH, skal du tilføje reglen nedenfor for at åbne SSH-port 22 i din firewall.

ufw tillade 22 / tcp

Hvis du styrer firewallreglerne i din Debian-server via iptables rå regler, tilføj følgende regler for at tillade port 80 og 22 indgående trafik for at passere firewallen, så eksterne brugere kan få adgang til applikationen. Åbn kun port 22 / TCP, hvis du er eksternt forbundet til serveren via SSH.

apt-get install -y iptables-vedholdende

iptables -I INPUT -p tcp-destination-port 80 -J ACCEPT

iptables -I INPUT -p tcp-destination-port 22 -J ACCEPT

netfilter-vedvarende gemme

systemctl genstart netfilter-vedholdende

systemctl status netfilter-persistent

systemctl aktivere netfilter-persistent.service

Konfigurer Apache Web Server

I det næste trin skal du aktivere Apache-omskrivningsmodul, der kræves for at ændre webserverkonfigurationer i flyve via .htacccess-filen og det TLS-modul, der kræves for at sikre HTTP-transaktioner, ved at udstede nedenstående kommando.

a2enmod omskrive ssl

a2ensite default-ssl.conf

Dernæst åbner du Apache-standard SSL-webstedskonfigurationsfilen til redigering med din yndlings teksteditor og tilføjer følgende URL-omskrivningsregler efter DocumentRoot direktiv:

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

SSL site konfigurationsfil uddrag:

<Katalog / var / www / html> Valg + FølgSymlinks AllowOverride All Kræv alt tildelt </ Directory>

Lav også ændringen som vist nedenfor til VirtualHost-linjen for at få det til at se ud som det der vises i det uddrag, der følger:

<VirtualHost *: 443>

Tilføj de samme ændringer til Apache standardkonfigurationsfil ved at åbne /etc/apache2/sites-enabled/000-default.conf fil til redigering. Indsæt følgende linjer kode efter DocumentRoot erklæring som vist i eksemplet nedenfor.

<Katalog / var / www / html> Valg + FollowSymlinks AllowOverride All Kræv alt tildelt </ Directory

Endelig genstart Apache daemon for at anvende alle regler konfigureret hidtil og besøg din domæne eller server IP-adresse via HTTP-protokol.

systemctl genstart apache2

Fordi du bruger de automatisk selvsignerede certifikatpar, der udstedes af Apache ved installationen, for et certifikat, der ikke er betroet af browseren, skal der vises en fejladvarsel i browseren. Accept advarslen for at acceptere det usikrede certifikat og fortsæt med at blive omdirigeret til Apache standardwebside, som illustreret i nedenstående billede.

https://yourdomain.tld

SSL-advarsel

Apache standard side

For at tillade HTTPS-trafik at passere gennem UFW-firewallen, skal du tilføje følgende regel for at tillade indgående 443 / TCP-trafik ved at udstede kommandoen nedenfor.

ufw tillade 'WWW Full'

or

ufw tillade 443 / tcp

If iptables er standard firewall-programmet installeret til beskyttelse af dit Debian-system på netværksniveau, skal du tilføje følgende regel for at tillade port 443 indgående trafik i firewallen, så de besøgende kan gennemse dit domænenavn.

iptables -I INPUT -p tcp-destination-port 443 -J ACCEPT

netfilter-vedvarende gemme

systemctl genstart netfilter-vedholdende

systemctl status netfilter-persistent

Endelig skal du oprette PHP-infofilen i din webserverdokumentets rodvej ved at udføre følgende kommando.

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

Besøg PHP info script filen ved at åbne en browser på følgende URL:

https://yourdomain.tld/info.php

Bekræft PHP-indstillinger og rul ned til dato konfiguration for at kontrollere konfigurationen af ​​PHP-tidszone.

PHP datoindstillinger

Installer Elgg Software

For at kunne installere Elgg Social Network platformen i dit system, skal du først besøge Elggs officielle download side på https://elgg.org/about/download og tag det nyeste zip pakke komprimerede arkiv ved at udstede nedenstående kommando.

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

ls

Udfør derefter Elgg zip-arkivfilen til din nuværende arbejdsmappe, og list de udpakkede filer ved at udstede følgende kommandoer.

udpakning elgg-2.3.5.zip

ls-al elgg-2.3.5

I det næste trin skal du slette standard index.html-filen, der er installeret af Apache-webserveren til webroot-banen og den info.php-fil, der blev oprettet tidligere ved at udstede nedenstående kommandoer.

rm /var/www/html/index.html

rm /var/www/html/info.php

Dernæst kopier alt indholdet af den uddragne Elgg-mappe, herunder den skjulte .htaccess fil, ind i din webserver dokument rod sti ved at udstede følgende kommando.

cp -rf elgg-xnumx / * / var / www / html /

cp elgg-xnumx / .htaccess / var / www / html /

Når du har kopieret Elgg installationsfiler til din domæne webroot path, skal du oprette en mappe, der hedder data for Elgg ansøgning, et niveau op dit domæne webroot, ved at udstede følgende kommando. Datakataloget vil blive brugt af Elgg-applikationen til at gemme forskellige brugerrelaterede filer. Dette data mappe kan oprettes hvor som helst i dit serverfilsystemhierarki med bemærkningen om, at du skal give Apache runtime-bruger skrivetilladelser til denne mappe.

mkdir / var / www / data

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

Udfør derefter nedenstående kommandoer for at give Apache runtime bruger med fuld skrive tilladelser til web rod stien. Brug ls kommandoen for at liste tilladelser til applikationens installerede filer placeret i / Var / www / html / mappe.

chown -R www-data: www-data / var / www / html /

ls -al / var / www / html /

Før du begynder med installationsprocessen via en webbrowser, skal du logge ind på MariaDB-databasekonsollen og oprette Elgg-databasen og en bruger med et kodeord, der skal bruges til at administrere denne database ved at udstede følgende kommandoer. Sørg for at erstatte databasens navn, bruger og adgangskode, der bruges i denne vejledning i overensstemmelse hermed.

mysql -u rod-p

Velkommen til MariaDB skærm. Kommandoer slutter med; eller g. Dit MariaDB-forbindelses-id er 2 Server-version: 10.1.26-MariaDB-0 + deb9u1 Debian 9.1 Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab og andre. Skriv 'hjælp;' eller 'h' for hjælp. Skriv 'c' for at rydde den nuværende indtastningsopgørelse.

MariaDB [(none)]> Opret database elgg_db;

Forespørgsel OK, berørt 1 række (0.00 sek)

MariaDB [(none)]> give alle privilegier på elgg_db. * Til 'elgg_user' @ 'localhost' identificeret af 'password1234';

Query OK, 0 rækker påvirket (0.00 sek)

MariaDB [(none)]> flush privilegier;

Query OK, 0 rækker påvirket (0.00 sek)

MariaDB [(none)]> exit

bye 

Nu, lad os fortsætte med Elgg installation. Først åbner du en browser og navigerer til din serverens IP-adresse eller domænenavn eller server FQDN via HTTPS-protokollen.

https://yourdomain.tld

På velkomstskærmen viser installatøren en introduktionsmeddelelse, der informerer dig om, at Elgg platformsoftware skal bruge seks trin for at installere programmet. Bare tryk på Næste knap for at starte installationsprocessen, som illustreret i nedenstående skærmbillede.

Velkommen til Elgg

Derefter vil Elgg installatøren analysere dit system og kontrollere, om PHP og webserver krav er opfyldt for at installere applikationen. Tryk på Næste knap for at fortsætte installationsprocessen, som vist på nedenstående skærmbillede.

Elgg Krav

På den næste installationsskærm konfigurerer du MySQL database indstillinger ved at levere MySQL database navn, server vært (brug localhost hvis databasen er installeret på samme knudepunkt), databasens brugernavn og adgangskode oprettet tidligere til installation af Elgg. Brug database-præfiks som standard eller ændre det, hvis du vil tilføje et ekstra sikkerhedslag til din ansøgning. Endelig skal du vælge din standard tidssoneindstilling for programmet og trykke på Næste-knappen for at flytte til den næste installationsskærm. Brug nedenstående skærmbillede som en vejledning til konfiguration af dette trin.

Database indstillinger

På det næste trin skal du konfigurere Elgg-webstedet ved at tilføje et navn til webstedet og en e-mail-adresse til brugerkommunikation. Skift også webadressen til webadressen, hvis den ikke blev registreret korrekt, og tilføj den fulde sti til webstedet data vejviser. Endelig skal du konfigurere dit standardwebstedets adgangsniveau for nybegyndere og trykke på Næste-knappen for at fortsætte installationsprocessen.

Konfigurer websted i Elgg

Opret derefter den første adminkonto til dit website ved at udfylde feltet Vis navn med navnet på din adminkonto. Tilføj også e-mail-adressen til brugerkontoen, brugernavnet og adgangskoden, som vist i nedenstående billede. Når du gennemfører dette trin, skal du trykke på Næste-knappen for at fortsætte og afslutte installationsprocessen.

Opret administratorkonto

Når installationsprocessen er færdig, skal du trykke på knappen "Gå til websted" for at blive omdirigeret til Elgg admin dashboard.

Elgg Installation er færdig

Når du er logget ind på Elgg dashboard, skal du navigere til Konfigurer -> plugins menu fra højre panel og starte aktivering af dine nødvendige Elgg plugins ved at trykke på knappen Aktiver for det valgte plugin.

Elgg admin panel

Du kan også besøge Elgg-applikationen ved at navigere til din server-IP-adresse eller domænenavn via HTTPS-protokollen. Brug legitimationsoplysningerne konfigureret til adminkonto under installationsprocessen for at logge ind på Elgg Social Engine Application, som vist på nedenstående skærmbillede.

https://yourdomain.tld

Elgg Sociale netværk

Som det sidste trin, hvis du vil tvinge besøgende til sikkert at gennemse Elgg-webstedet via HTTPS-protokollen, der krypterer trafikken mellem serveren og klientbrowsere, skal du gå tilbage til Debian-serverkonsollen og redigere .htaccess fil, der er placeret i dit webstedsdokument rodbane, ved at udstede nedenstående kommando.

nano /var/www/html/.htaccess

I .htaccess-fil, søg efter <IfModule mod_rewrite.c> line og tilføj nedenstående regler efter OmskrivningEngin On erklæring for automatisk at omdirigere al din domæne trafik til HTTPS.

OmskrivningEngine On # Omdirigere til HTTPS RewriteCond% {HTTPS} fra RewriteRule (. *) Https: //% {SERVER_NAME} / $ 1 [R, L]

Her kan du også ændre nogle PHP-variabler til din hjemmeside. Søge efter <IfModule mod_php7.c> direktiv og under denne linje tilføj dine egne PHP-indstillinger som: Forøg fil upload størrelse for domænet eller deaktiver nogle server-standard PHP konfigurationer som vist i nedenstående uddrag:

# Ret webserver PHP indstillinger php_value session.use_trans_sid 0 php_value register_globals 1 php_value upload_max_filesize 100M php_value post_max_size 100M

For at Elgg-applikationen skal sende udgående meddelelser, drej systemlogfilerne i databasen og saml affald i databasen (komprimering af databasen ved at fjerne poster, der ikke længere er nødvendige), opret en crontab-fil med nedenstående konfigurationer. Også dette crontab job skal ejes og udføres af Apache runtime bruger.

crontab -u www-data -e

Crontab fil uddrag. Cron-opgaveudgangen for hvert job bortkastes til Linux / Dev / null blackhole-fil. Udskift domænenavnvariablen ($ ELGG) anvendt i dette script i overensstemmelse hermed.

GET = "curl -k" ELGG = "https://www.socialnet.org/" OUT = "> / dev / null 2> & 1" * * * * * $ GET $ {ELGG} cron / minut / $ { 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 / time / $ {OUT} @ daglig $ GET $ {ELGG} cron / dagligt / $ {OUT} @weekly $ GET $ {ELGG } cron / ugentlig / $ {OUT} @monthly $ GET $ {ELGG} cron / månedlig / $ {OUT} @ årlig $ GET $ {ELGG} cron / årlig / $ {OUT} @reboot $ GET $ {ELGG} cron / genstart / $ {OUT}

Tillykke! Elgg Social Media-platformen er blevet installeret og konfigureret på dine lokaler på en Debian 9-server. Hvis du bruger et registreret offentligt domænenavn til at udsætte Elgg-ansøgningen for besøgende, der er besøgende, bør du overveje at købe et SSL-certifikat udstedt af en betroet certifikatmyndighed eller få et gratis certifikatpar fra Lad os kryptere CA.

For yderligere at administrere Elgg ansøgningen, besøg dokumentationssiden på følgende adresse: http://learn.elgg.org/en/stable/index.html

Kilde

Efterlad en kommentar