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

Как установить Vanila Forum и защитить его с помощью Lets Encrypt на CentOS 8


Это руководство существует для этих версий ОС

  • CentOS 8
  • CentOS 7

На этой странице

  1. Предпосылки
  2. Установить сервер LEMP
  3. Настройка базы данных MariaDB
  4. Скачать ванильный форум
  5. Настройка пула PHP-FPM
  6. Настройка Nginx для версии Vanilla
  7. Защитите ваниль с Lets Encrypt SSL
  8. Настройка SELinux и брандмауэра
  9. Доступ к ванильному форуму
  10. Заключение

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

В этом руководстве мы узнаем, как установить форум Vanilla на CentOS 8 и защитить его с помощью Lets Encrypt SSL.

Предпосылки

  • Сервер под управлением CentOS 8.
  • На вашем сервере установлен пароль root.

Установить LEMP-сервер

Во-первых, вам нужно будет установить веб-сервер Nginx, сервер базы данных MariaDB, PHP и другие необходимые расширения PHP в вашей системе. Вы можете запустить следующую команду, чтобы установить их все:

dnf install nginx mariadb-server php php php-mysqlnd php-opcache php-xml php-xmlrpc php-gd php-mbstring php-json php-fpm php-curl php-pear php-openssl php-intl unzip -y

После установки всех пакетов запустите службу Nginx, PHP-FPM и MariaDB и включите их запуск после перезагрузки системы с помощью следующей команды:

systemctl start nginx
systemctl start php-fpm
systemctl start mariadb
systemctl enable nginx
systemctl enable php-fpm
systemctl enable mariadb

Настроить базу данных MariaDB

Прежде чем начать, рекомендуется защитить вашу базу данных MariaDB. Вы можете защитить его с помощью следующего скрипта:

mysql_secure_installation

Ответьте на все вопросы, как показано ниже:

Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

После защиты MariaDB войдите в оболочку MariaDB с помощью следующей команды:

mysql -u root -p

Укажите свой корневой пароль MariaDB и создайте базу данных и пользователя для Vanilla с помощью следующей команды:

MariaDB [(none)]> CREATE DATABASE vanilladb CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB [(none)]> CREATE USER 'vanilla'@'localhost' IDENTIFIED BY 'password';

Затем предоставьте все привилегии базе данных Vanilla с помощью следующей команды:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON vanilladb.* TO 'vanilla'@'localhost';

Затем сбросьте привилегии и выйдите из оболочки MariaDB с помощью следующей команды:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Скачать ванильный форум

Вы можете загрузить последнюю стабильную версию форума Vanilla с официального сайта с помощью следующей команды:

wget https://open.vanillaforums.com/get/vanilla-core-3.3.zip

После загрузки разархивируйте загруженный файл с помощью следующей команды:

unzip vanilla-core-3.3.zip

Затем переместите извлеченный каталог в корневой веб-каталог Nginx с помощью следующей команды:

mv package /var/www/html/vanilla

Затем измените владельца каталога vanilla на Nginx:

chown -R nginx:nginx /var/www/html/vanilla

Как только вы закончите, вы можете перейти к следующему шагу.

Настройка пула PHP-FPM

По умолчанию PHP-FPM настроен для Apache. Здесь мы будем использовать Nginx в качестве веб-сервера. Поэтому вам нужно будет настроить PHP-FPM для Nginx. Вы можете сделать это, отредактировав файл /etc/php-fpm.d/www.conf:

nano /etc/php-fpm.d/www.conf

Измените следующие строки:

user = nginx
group = nginx

Сохраните и закройте файл, когда закончите. Затем создайте каталог сеанса для PHP и измените его владельца:

mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session

Затем перезапустите службу PHP-FPM, чтобы применить изменения:

systemctl restart php-fpm

Настройте Nginx для ванили

Затем создайте новый файл виртуального хоста Nginx для обслуживания форума Vanilla.

nano /etc/nginx/conf.d/vanilla.conf

Добавьте следующие строки:

server {

  listen 80;
  server_name vanilla.linuxbuz.com;
  root /var/www/html/vanilla;
  index index.php;

  location ~* /\.git { deny all; return 403; }
  location /build/ { deny all; return 403; }
  location /cache/ { deny all; return 403; }
  location /cgi-bin/ { deny all; return 403; }
  location /uploads/import/ { deny all; return 403; }
  location /conf/ { deny all; return 403; }
  location /tests/ { deny all; return 403; }
  location /vendor/ { deny all; return 403; }

  location ~* ^/index\.php(/|$) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    try_files $fastcgi_script_name =404;
    set $path_info $fastcgi_path_info;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_index index.php;
    include fastcgi.conf;
    fastcgi_param SCRIPT_NAME /index.php;
    fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
    fastcgi_param X_REWRITE 1;
    fastcgi_pass unix:/var/run/php-fpm/www.sock;
  }

  location ~* \.php(/|$) {
    rewrite ^ /index.php$uri last;
  }
  location / {
    try_files $uri $uri/ @vanilla;
  }

  location @vanilla {
    rewrite ^ /index.php$uri last;
  }

}

Сохраните и закройте файл, когда закончите. Затем перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx

Безопасная ваниль с Lets Encrypt SSL

Затем вам нужно будет установить утилиту Certbot в вашей системе, чтобы загрузить и установить Lets Encrypt SSL для вашего веб-сайта Vanilla.

Вы можете установить клиент Certbot с помощью следующей команды:

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Затем получите и установите SSL-сертификат для своего веб-сайта Vanilla с помощью следующей команды:

certbot-auto --nginx -d vanilla.linuxbuz.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): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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 vanilla.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/vanilla.conf

Выберите, хотите ли вы перенаправлять HTTP-трафик на HTTPS или нет, как показано ниже:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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/vanilla.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://vanilla.linuxbuz.com

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

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/vanilla.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/vanilla.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-06-11. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - 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

Настройте SELinux и брандмауэр

По умолчанию SELinux включен в CentOS 8. Поэтому вам нужно будет настроить его для своего веб-сайта форума Vanilla.

Вы можете настроить SELinux с помощью следующей команды:

setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/vanilla

Затем разрешите порты 80 и 443 через брандмауэр с помощью следующей команды:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Как только вы закончите, вы можете перейти к следующему шагу.

Доступ к ванильному форуму

Откройте веб-браузер и перейдите по ссылке https://vanilla.linuxbuz.com. Вы будете перенаправлены на следующую страницу:

Укажите данные своей базы данных, название приложения, адрес электронной почты, имя пользователя администратора, пароль и нажмите кнопку «Продолжить». После завершения установки вы должны увидеть панель управления Vanilla на следующей странице:

Заключение

Поздравляем! вы успешно установили форум Vanilla на CentOS 8 с Lets Encrypt SSL. Теперь вы можете легко разместить свой собственный веб-сайт форума сообщества. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.