You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 18 Next »

WNAM требует для своей работы ряд системного программного обеспечения, которое требуется установить на вашем сервере.

1. Система управления базой данных MongoDB и среда Java JDK

Современные версии Debian штатно предоставляют пакет MongoDB версии 3.2 и выше, таким образом установка базы данных из отдельного репозитория не требуется.

Подготовка сервера: 

apt-get update
apt-get upgrade

Установка пакетов:

apt-get install mongodb openjdk-8-jdk 

Настраивать mongodb не надо, кроме случая подготовки отказоустойчивого кластера и задачи разграничения доступа для нескольких пользователей/приложений.

Внимание! WNAM работает только с Java версии 8 (OpenJDK или Oracle JDK). С более старшими версиями (9, 11, 13) - нет.

Внимание! Если вы используете Debian 10 (Buster), то в составе штатного набора пакетов нет openjdk-8, а есть openjdk-11. Для установки Java 8 вам потребуется последовать инструкции, например отсюда.

После установки java8 убедитесь, что версия java7 (если она была установлена ранее, например вместе с дистрибутивом операционной системы) не используется. Проверка:

java -version

Ели у вас установлена версия 7, её надо удалить. К сожалению, штатный способ смены версии JDK утилитой update-java-alternatives не срабатывает (tomcat применяет собственный метод поиска java), поэтому рекомендуется провести замену вручную:

cd /usr/lib/jvm/
rm default-java
ln -s java-8-openjdk-amd64 default-java

затем проверьте: 

ls -la /usr/lib/jvm/
drwxr-xr-x 4 root root 4096 сен 30 23:43 .
drwxr-xr-x 58 root root 4096 окт 2 19:56 ..
lrwxrwxrwx 1 root root 20 авг 25 15:17 default-java -> java-8-openjdk-amd64
lrwxrwxrwx 1 root root 20 ноя 20 2015 java-1.7.0-openjdk-amd64 -> java-7-openjdk-amd64
-rw-r--r-- 1 root root 2439 июл 31 21:33 .java-1.7.0-openjdk-amd64.jinfo
lrwxrwxrwx 1 root root 20 авг 8 12:32 java-1.8.0-openjdk-amd64 -> java-8-openjdk-amd64
-rw-r--r-- 1 root root 2600 авг 8 12:32 .java-1.8.0-openjdk-amd64.jinfo
drwxr-xr-x 5 root root 4096 авг 25 15:15 java-7-openjdk-amd64
drwxr-xr-x 7 root root 4096 авг 25 15:16 java-8-openjdk-amd64
java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-8u102-b14.1-1~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode) 


2. FreeRADIUS.

Если вы по какой-то причине производите переустановку WNAM версии 1.3 ... 1.5, в которой используется FreeRADIUS, посмотрите эту инструкцию. Для работы WNAM версии 1.6 FreeRADIUS не требуется.


3. Веб-сервер nginx

WNAM по умолчанию запускается на TCP порту 8080. Вы можете оставить его на этом порту, но рекомендуется использовать проксирующий сервер nginx для обработки запросов на порту 80, для SSL шифрования (порт 443), контроля доступа, и кэширования.

Установка:

apt-get install nginx

Отредактируйте конфигурационный файл /etc/nginx/sites-available/wnam :

server {
listen 80;
 access_log /var/log/nginx/access.log;
 location / { 
  proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 120;
proxy_connect_timeout 120;
}

Если вы имеете SSL сертификат (купленный, или от Let's Encrypt) и хотите использовать сервер WNAM так, чтобы он был доступен абонентам по протоколу HTTPS, используйте следующую конфигурацию:

server {
listen 80 default_server;
return 301 https://$server_name$request_uri;
server_name wnam.provider.ru;
}
server {
listen 443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/wnam.provider.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wnam.provider.ru/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
root /var/www/html;
index index.html;
server_name wnam.provider.ru;
location / { 
proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120;
proxy_connect_timeout 120;
}
}

не забудьте сгенерировать файл dhparams:

openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

Затем создайте ссылку: 

cd /etc/nginx/sites-enabled
ln -s ../sites-available/wnam wnam

Обязательно удалите /etc/nginx/sites-enabled/default :

rm /etc/nginx/sites-enabled/default

Проверьте правильность конфигурационного файла через: 

nginx -t

Перезапустите сервис:

service nginx restart

4. Библиотека генерации миниатюр конструктора страниц портала

WNAM использует внешнюю библиотеку phantomjs при формировании миниатюрного изображения абонентских страниц в "Конструкторе страниц". 

Скачайте и установите её:

cd /tmp/
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
apt-get install bzip2
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
mv phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
wget http://www.netams.com/files/wnam/misc/render.js
wget http://www.netams.com/files/wnam/misc/render.sh
mv render.sh render.js /usr/local/bin/
chmod +x /usr/local/bin/render.sh

Запуск команды

/usr/local/bin/render.sh

должен завершиться молча и без ошибки

Для изменения размера изображений превью файл /usr/local/bin/render.js можно отредактировать

Внимание! Если вы используете ОС Ubuntu, может оказаться, что страницы предпросмотра (миниатюры) не содержат русских букв. Это вызвано тем, что дистрибутив Ubuntu зачастую сконфигурирован некорректным способом в части поддержки шрифтов. Вероятно вам предстоит выполнить следующие команды:

ln -s /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 /usr/lib/phantomjs/libfontconfig.so.1
ln -s /usr/share/fonts/truetype/dejavu/ /usr/lib/x86_64-linux-gnu/fonts

Внимание! Если вы столкнулись со следующей ошибкой (например, на Debian 10):

Auto configuration failed

140687369703040:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:185:filename(libssl_conf.so): libssl_conf.so: cannot open shared object file: No such file or directory

140687369703040:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:

140687369703040:error:0E07506E:configuration file routines:MODULE_LOAD_DSO:error loading dso:conf_mod.c:285:module=ssl_conf, path=ssl_conf

140687369703040:error:0E076071:configuration file routines:MODULE_RUN:unknown module name:conf_mod.c:222:module=ssl_conf

То решение заключается в добавлении строк

export OPENSSL_CONF=/etc/ssl/

в середину файла  /usr/local/bin/render.sh

5. Проверка языка операционной системы

Обязательно убедитесь, что язык системы (locale по умолчанию) соответствует "ru_RU.UTF-8".  Проверить это можно командой "locale". Локаль сервера можно изменить командой

dpkg-reconfigure locales


  • No labels