Поиск по сайту:

Как установить социальную сеть Elgg на Ubuntu 20.04


Elgg — это бесплатная платформа социальных сетей с открытым исходным кодом, используемая для создания социальной онлайн-среды. Он прост, удобен в использовании, настраиваем и предоставляет мощный веб-интерфейс для управления контентом через Интернет. Это позволяет школам, колледжам и университетам создавать собственную социальную среду на территории кампуса.

В этом посте показано, как установить Elgg с Nginx и Let's Encrypt SSL в Ubuntu 20.04.

Предварительные условия

  • Сервер под управлением Ubuntu 20.04.
  • Действующее доменное имя, соответствующее IP-адресу вашего сервера.
  • На сервере настроен пароль root.

Начиная

Сначала обновите системные пакеты до обновленной версии, выполнив следующую команду:

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;

На этом этапе для Elgg создаются база данных и пользователь MariaDB. Теперь вы можете перейти к следующему шагу.

Скачать Элгг

Далее вам нужно будет скачать последнюю версию 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

Теперь откройте веб-браузер и войдите в веб-интерфейс Elgg, используя URL-адрес http://elgg.domain.com. Вы будете перенаправлены на приветственную страницу 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. Теперь вы можете легко реализовать свою собственную платформу социальных сетей в своем кампусе.

Статьи по данной тематике: