Ինչպես տեղադրել Elgg սոցիալական ցանցը Ubuntu 20.04-ում


Այս ձեռնարկը գոյություն ունի ՕՀ-ի այս տարբերակների համար

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Կիզակետային Fossa)
  • Ubuntu 18.04 (Bionic Beaver)

Այս էջում

  1. Նախադրյալներ
  2. Սկսել
  3. Տեղադրեք Nginx, PHP և MariaDB
  4. Ստեղծեք տվյալների բազա Elgg-ի համար
  5. Ներբեռնեք Elgg
  6. Կարգավորեք Nginx-ը Elgg-ի համար
  7. Մուտք գործեք Elgg Web UI
  8. Ապահովեք Elgg-ը Let's Encrypt SSL-ով
  9. Եզրակացություն

Elgg-ը անվճար և բաց կոդով սոցիալական ցանց է, որն օգտագործվում է առցանց սոցիալական միջավայր ստեղծելու համար: Այն պարզ է, հեշտ օգտագործվող, հարմարեցված և ապահովում է հզոր վեբ միջերես՝ բովանդակությունը ինտերնետում կառավարելու համար: Այն թույլ է տալիս դպրոցներին, քոլեջներին և համալսարաններին ստեղծել իրենց սեփական սոցիալական միջավայրը համալսարանում:

Այս գրառումը ցույց կտա ձեզ, թե ինչպես տեղադրել Elgg-ը Nginx-ով և Եկեք ծածկագրենք SSL-ը Ubuntu 20.04-ում:

Նախադրյալներ

  • Ubuntu 20.04-ով աշխատող սերվեր:
  • Վավեր տիրույթի անուն, որը նշված է ձեր սերվերի IP-ի հետ:
  • Սերվերի վրա կազմաձևված է արմատային գաղտնաբառը:

Սկսել

Նախ, թարմացրեք համակարգի փաթեթները թարմացված տարբերակին՝ գործարկելով հետևյալ հրամանը.

apt-get update -y

Երբ բոլոր փաթեթները թարմացվեն, կարող եք անցնել հաջորդ քայլին:

Տեղադրեք Nginx, PHP և MariaDB

Նախքան սկսելը, համոզվեք, որ Nginx, MariaDB, PHP և այլ PHP ընդլայնումներ տեղադրված են ձեր համակարգում: Եթե տեղադրված չէ, կարող եք տեղադրել դրանք հետևյալ հրամանով.

apt-get install nginx mariadb-server php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath unzip curl -y

Բոլոր փաթեթները տեղադրելուց հետո խմբագրեք php.ini ֆայլը և կսմթեք որոշ կարգավորումներ.

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

Ձեր պահանջներին համապատասխան փոխեք հետևյալ արժեքները.

memory_limit = 256M
post_max_size = 64M
upload_max_filesize = 32M
date.timezone = UTC 

Պահպանեք և փակեք ֆայլը, այնուհետև վերագործարկեք PHP-FPM ծառայությունը՝ փոփոխությունները կիրառելու համար.

systemctl restart php7.4-fpm

Ստեղծեք տվյալների բազա Elgg-ի համար

Հաջորդը, դուք պետք է ստեղծեք տվյալների բազա և օգտվող Elgg-ի համար: Նախ, մուտք գործեք MySQL հետևյալ հրամանով.

mysql

Միանալուց հետո ստեղծեք տվյալների բազա և օգտվող հետևյալ հրամանով.

CREATE DATABASE elgg_db;
CREATE USER elgg_user@localhost IDENTIFIED BY 'securepassword';

Հաջորդը, տրամադրեք բոլոր արտոնությունները Elgg տվյալների բազային հետևյալ հրամանով.

GRANT ALL PRIVILEGES ON elgg_db.* TO elgg_user@localhost;

Հաջորդը, լվացեք արտոնությունները և դուրս եկեք MySQL-ից հետևյալ հրամանով.

FLUSH PRIVILEGES;
EXIT;

Այս պահին MariaDB տվյալների բազան և օգտվողը ստեղծվում են Elgg-ի համար: Այժմ կարող եք անցնել հաջորդ քայլին:

Ներբեռնեք Elgg

Հաջորդը, դուք պետք է ներբեռնեք Elgg-ի վերջին տարբերակը Github կայքից: Դուք կարող եք ներբեռնել այն հետևյալ հրամանով.

curl -s https://api.github.com/repos/Elgg/Elgg/releases/latest |grep browser_download_url | cut -d '"' -f 4 | wget -i -

Ներբեռնումն ավարտվելուց հետո ներբեռնված ֆայլը հանեք հետևյալ հրամանով.

unzip elgg-*.zip

Հաջորդը, արդյունահանված գրացուցակը տեղափոխեք Nginx վեբ արմատային գրացուցակ հետևյալ հրամանով.

mv elgg-*/ /var/www/html/elgg

Հաջորդը, ստեղծեք տվյալների գրացուցակ Elgg-ի համար և պատշաճ սեփականություն սահմանեք տվյալների գրացուցակին և elgg գրացուցակին.

mkdir /var/www/html/data
chown -R www-data:www-data /var/www/html/elgg/
chown -R www-data:www-data /var/www/html/data
chmod -R 755 /var/www/html/elgg

Այս պահին Elgg-ը ներբեռնվում է Nginx վեբ արմատային գրացուցակում: Այժմ կարող եք անցնել հաջորդ քայլին:

Կարգավորեք Nginx-ը Elgg-ի համար

Հաջորդը, դուք պետք է ստեղծեք Nginx վիրտուալ հոսթի կազմաձևման ֆայլ՝ Elgg-ին ինտերնետում հյուրընկալելու համար: Դուք կարող եք այն ստեղծել հետևյալ հրամանով.

nano /etc/nginx/conf.d/elgg.conf

Ավելացնել հետևյալ տողերը.

server {
  listen 80;

  server_name elgg.domain.com;
  root /var/www/html/elgg;

  index index.php;
  
  access_log /var/log/nginx/elgg_access.log;
  error_log /var/log/nginx/elgg_error.log;

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

  location ~ \.php$ {
    fastcgi_index index.php;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_keep_conn on;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }
}

Պահպանեք և փակեք ֆայլը, այնուհետև ստուգեք Nginx-ը ցանկացած շարահյուսական սխալի համար.

nginx -t

Դուք պետք է տեսնեք հետևյալ ելքը.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Հաջորդը, վերագործարկեք Nginx ծառայությունը, օգտագործելով հետևյալ հրամանը.

systemctl restart nginx

Դուք կարող եք ստուգել Nginx ծառայության կարգավիճակը հետևյալ հրամանով.

systemctl status nginx

Դուք պետք է տեսնեք հետևյալ ելքը.

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-30 15:43:55 UTC; 5s ago
       Docs: man:nginx(8)
    Process: 18432 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 18443 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 18445 (nginx)
      Tasks: 3 (limit: 4691)
     Memory: 3.5M
     CGroup: /system.slice/nginx.service
             ??18445 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??18446 nginx: worker process
             ??18447 nginx: worker process

Jul 30 15:43:55 ubunt4 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 30 15:43:55 ubunt4 systemd[1]: Started A high performance web server and a reverse proxy server.

Մուտք գործեք Elgg Web UI

Այժմ բացեք ձեր վեբ զննարկիչը և մուտք գործեք Elgg վեբ ինտերֆեյս՝ օգտագործելով http://elgg.domain.com URL-ը: Դուք կվերահղվեք Elgg ողջույնի էջ.

Սեղմեք Հաջորդ կոճակը: Դուք պետք է տեսնեք PHP-ի պահանջների ստուգման էջը.

Համոզվեք, որ բոլոր պահանջները տեղադրված են, ապա սեղմեք Հաջորդ կոճակը: Դուք պետք է տեսնեք տվյալների բազայի կազմաձևման էջը.

Տրամադրեք ձեր տվյալների բազայի տեղեկությունները, տվյալների գրացուցակը, կայքի URL-ը և սեղմեք Հաջորդ կոճակը: Դուք պետք է տեսնեք կայքի կազմաձևման էջը.

Տրամադրեք ձեր կայքի տվյալները և սեղմեք Հաջորդ կոճակը: Դուք պետք է տեսնեք Elgg ադմինիստրատորի օգտվողի ստեղծման էջը.

Տրամադրեք ձեր ադմինիստրատորի օգտանունը, էլփոստը, գաղտնաբառը և սեղմեք Հաջորդ կոճակը: Տեղադրումը հաջողությամբ ավարտվելուց հետո դուք պետք է տեսնեք հետևյալ էջը.

Կտտացրեք Գնալ կայք: Դուք պետք է տեսնեք Elgg մուտքի էջը.

Տրամադրեք ձեր ադմինիստրատորի օգտանունը, գաղտնաբառը և սեղմեք Մուտք գործելու կոճակը: Դուք պետք է տեսնեք Elgg վահանակը հետևյալ էջում.

Ապահովեք Elgg-ը Let's Encrypt SSL-ով

Միշտ լավ գաղափար է պաշտպանել ձեր կայքը Let's Encrypt SSL-ով: Նախ, ձեր սերվերում տեղադրեք Certbot Let's Encrypt հաճախորդը հետևյալ հրամանով.

apt-get install python3-certbot-nginx -y

Տեղադրվելուց հետո ապահովեք ձեր կայքը Let's Encrypt SSL-ով` գործարկելով հետևյալ հրամանը.

certbot --nginx -d elgg.domain.com

Ձեզանից կպահանջվի տրամադրել վավեր էլփոստի հասցե և ընդունել ծառայության ժամկետը, ինչպես ցույց է տրված ստորև.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for elgg.domain.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/elgg.conf

Հաջորդը, ընտրեք՝ վերահղել HTTP տրաֆիկը դեպի HTTPS, ինչպես ցույց է տրված ստորև.

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

Մուտքագրեք 2 և սեղմեք Enter՝ տեղադրումն ավարտելու համար: Դուք պետք է տեսնեք հետևյալ ելքը.

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/elgg.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://elgg.domain.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=elgg.domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/elgg.domain.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/elgg.domain.com/privkey.pem
   Your cert will expire on 2021-05-30. 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"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - 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

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Եզրակացություն

Շնորհավորում եմ: դուք հաջողությամբ տեղադրել եք Elgg-ը Nginx-ով և Let's Encrypt SSL-ը Ubuntu 20.04-ում: Այժմ դուք կարող եք հեշտությամբ իրականացնել ձեր սեփական սոցիալական ցանցային հարթակը ձեր համալսարանում հեշտությամբ: