Работает на PHP версии 5.6, 7.0
Должен быть установлен nginx|apache, mariadb и freeradius заполнена база из schema.sql (nas.sql)
Генерируем пароль, cоздаём базу (radius) и к ней добавляем пользователя (radius) и этот пароль (если база ещё не создана при установке freeradius):
export RADIUS_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 - | cut -c2-18` mysql -u root -e "CREATE DATABASE radius;\ GRANT ALL PRIVILEGES ON radius.* TO 'daloradius'@'localhost' IDENTIFIED BY '${RADIUS_DB_PW}';\ FLUSH PRIVILEGES;" -p
Устанавливаем daloradius:
wget https://github.com/lirantal/daloradius/archive/master.tar.gz -P /tmp sudo tar -xzf /tmp/master.tar.gz -C /var/www sudo mv /var/www/daloradius-master /var/www/daloradius chown www-data:www-data /var/www/daloradius
Меняем пользователя и пароль для подключения к базе:
sudo sed "/CONFIG_DB_PASS'/s/''/'${RADIUS_DB_PW}'/" -i /var/www/daloradius/library/daloradius.conf.php \ sudo sed "/CONFIG_DB_USER/s/'root'/'daloradius'/" -i /var/www/daloradius/library/daloradius.conf.php
Заполняем БД:
mysql -u daloradius -p radius < /var/www/daloradius/contrib/db/mysql-daloradius.sql
Устанавливаем PHP:
sudo apt install php-db php-mysql php-curl php-gd php-mcrypt php-mail php-mail-mime
Логин/пароль по умолчанию: administrator/radius
Настраиваем сайт /etc/nginx/sites-available/daloradius:
server {
listen 80;
server_name daloradius.domain.com;
root /var/www/daloradius;
index index.php;
access_log /var/log/nginx/daloradius_access.log;
error_log /var/log/nginx/daloradius_error.log;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi.conf;
}
}
и добавляем:
sudo ln -s /etc/nginx/sites-available/daloradius /etc/nginx/sites-enabled/daloradius
перечитываем конфиги:
sudo service nginx reload
Настраиваем сайт /etc/apache2/sites-available/daloradius.conf:
<VirtualHost *:80>
ServerName daloradius.domain.com
DocumentRoot /var/www/daloradius
<Directory /var/www/daloradius>
AllowOverride all
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/daloradius_error.log
CustomLog ${APACHE_LOG_DIR}/daloradius_access.log combined
</VirtualHost>
или через php-fpm:
<VirtualHost *:80>
ServerName daloradius.domain.com
DocumentRoot /var/www/daloradius
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php7.0-fpm.sock|fcgi://localhost/var/www/daloradius/
DirectoryIndex /index.php index.php
ErrorLog ${APACHE_LOG_DIR}/daloradius_error.log
CustomLog ${APACHE_LOG_DIR}/daloradius_access.log combined
</VirtualHost>
и добавляем:
sudo a2ensite daloradius
перечитываем конфиги:
sudo service apache2 reload
https://github.com/lirantal/daloradius/issues/5 - How to get daloRADIUS to work in PHP-7
https://blog.khophi.co/radius-server-inside-daloradius-nginx-dd-wrt-captive-portal-linksys-chillispot/ - Radius Server Inside Out – DaloRADIUS Nginx DD-WRT Captive Portal Linksys Chillispot Ubuntu