This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
getting_started:20_install_ubuntu_nginx [2022/06/13 20:04] admin |
getting_started:20_install_ubuntu_nginx [2023/01/12 21:37] (current) admin [Installing RADIUSdesk on Ubuntu 20.04 using Nginx] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Installing RADIUSdesk on Ubuntu 20.04 using Nginx ====== | ====== Installing RADIUSdesk on Ubuntu 20.04 using Nginx ====== | ||
| + | <WRAP center round important 100%> | ||
| + | * As from January 2023 we encourage you to run the latest RADIUSdesk code on Ubuntu 22.04 or higher. | ||
| + | * If you however are not able to do for whatever reason, use the URL below for **reference** instructions to replace PHP v7.4 with PHP v8.1 on Ubuntu 20.04. | ||
| + | * https:// | ||
| + | * The latest RADIUSdesk code requires a minimum of PHP v8.1. | ||
| + | * **The instructions on this page will not work with the latest RADIUSdesk code since they are for Ubuntu 20.04 and NOT 22.04.** | ||
| + | </ | ||
| + | |||
| ===== Skills Required to Install ===== | ===== Skills Required to Install ===== | ||
| Line 15: | Line 23: | ||
| * This section will cover the steps you have to go through to get RADIUSdesk working with a **LEMP** stack on Ubuntu 20.04 | * This section will cover the steps you have to go through to get RADIUSdesk working with a **LEMP** stack on Ubuntu 20.04 | ||
| * * A LEMP stack is one of those acronyms you can impress your friends with. It stands for Linux NginX MySQL and PHP. | * * A LEMP stack is one of those acronyms you can impress your friends with. It stands for Linux NginX MySQL and PHP. | ||
| + | |||
| + | <WRAP center round tip 100%> | ||
| + | * We moved recently from CakePHPv3 to CakePHPv4. | ||
| + | * If you manage devices using MESHdesk and APdesk be sure to also execute the instructions that include cake3 in order for your system to have backwards compatibility. | ||
| + | * The firmware on these devices might still point to the **cake3** directory thus we need to include support for it | ||
| + | </ | ||
| + | |||
| ----------- | ----------- | ||
| Line 235: | Line 250: | ||
| </ | </ | ||
| * Add the following inside the server section: | * Add the following inside the server section: | ||
| + | <code bash> | ||
| + | location ~ ^/ | ||
| + | rewrite ^/ | ||
| + | rewrite ^/ | ||
| + | access_log off; | ||
| + | expires max; | ||
| + | add_header Cache-Control public; | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | * Add below **only** if you require backward compatibility (MESHdesk and APdesk). | ||
| <code bash> | <code bash> | ||
| location ~ ^/ | location ~ ^/ | ||
| Line 255: | Line 281: | ||
| * RADIUSdesk consists of three components. | * RADIUSdesk consists of three components. | ||
| * **rd** directory with its contents contains all the HTML and JavaScript code and is used as the presentation layer. | * **rd** directory with its contents contains all the HTML and JavaScript code and is used as the presentation layer. | ||
| - | * **cake3** is a CakePHPv3 | + | * **cake4** is a CakePHPv4 |
| * **login** is a directory with various login pages which are centrally managed through the RADIUSdesk **Dynamic Login Pages** applet. | * **login** is a directory with various login pages which are centrally managed through the RADIUSdesk **Dynamic Login Pages** applet. | ||
| * Later we will create various symbolic links from locations inside the **rdcore** directory to locations inside the web server' | * Later we will create various symbolic links from locations inside the **rdcore** directory to locations inside the web server' | ||
| Line 262: | Line 288: | ||
| * Make sure the following packages are installed: | * Make sure the following packages are installed: | ||
| <code bash> | <code bash> | ||
| - | sudo apt-get -y install php-cli php-mysql php-gd php-curl php-xml php-mbstring php-intl git wget | + | sudo apt-get -y install php-cli php-mysql php-gd php-curl php-xml php-mbstring php-intl |
| sudo systemctl restart php7.4-fpm | sudo systemctl restart php7.4-fpm | ||
| </ | </ | ||
| Line 277: | Line 303: | ||
| cd / | cd / | ||
| sudo ln -s ../ | sudo ln -s ../ | ||
| - | sudo ln -s ../rdcore/cake3 ./cake3 | + | sudo ln -s ../rdcore/cake4 ./cake4 |
| + | #If backward compatibility is required for older firmware of MESHdesk | ||
| + | sudo ln -s ../ | ||
| sudo ln -s ../ | sudo ln -s ../ | ||
| sudo ln -s ../ | sudo ln -s ../ | ||
| - | sudo ln -s ../rdcore/cake3/ | + | sudo ln -s ../rdcore/cake4/ |
| </ | </ | ||
| Line 286: | Line 314: | ||
| * Change the ownership of the following files to www-data so Nginx can make changes to the files/ | * Change the ownership of the following files to www-data so Nginx can make changes to the files/ | ||
| <code bash> | <code bash> | ||
| - | sudo mkdir -p / | + | sudo mkdir -p / |
| - | sudo mkdir -p / | + | sudo mkdir -p / |
| - | sudo mkdir -p / | + | sudo mkdir -p / |
| - | sudo chown -R www-data. / | + | sudo chown -R www-data. / |
| - | sudo chown -R www-data. / | + | sudo chown -R www-data. / |
| - | sudo chown -R www-data. / | + | sudo chown -R www-data. / |
| - | sudo chown -R www-data. / | + | sudo chown -R www-data. / |
| - | sudo chown -R www-data. / | + | sudo chown -R www-data. / |
| - | sudo chown -R www-data. / | + | sudo chown -R www-data. / |
| - | sudo chown -R www-data. / | + | sudo chown -R www-data. / |
| - | sudo chown -R www-data. / | + | sudo chown -R www-data. / |
| </ | </ | ||
| Line 320: | Line 348: | ||
| * Populate the database: | * Populate the database: | ||
| <code bash> | <code bash> | ||
| - | sudo mysql -u root rd < / | + | sudo mysql -u root rd < / |
| </ | </ | ||
| === Configure Nginx === | === Configure Nginx === | ||
| - | * Configure Nginx to rewrite some RdCore URLs starting with ///cake3/rd_cake//. | + | * Configure Nginx to rewrite some RdCore URLs starting with ///cake4/rd_cake//. |
| * Edit /// | * Edit /// | ||
| <code bash> | <code bash> | ||
| Line 333: | Line 361: | ||
| <code bash> | <code bash> | ||
| server_name _; | server_name _; | ||
| + | location / | ||
| + | try_files $uri $uri/ / | ||
| + | } | ||
| + | </ | ||
| + | * If you need backward compatibility support (MESHdesk and APdesk) also add this section: | ||
| + | <code bash> | ||
| location / | location / | ||
| try_files $uri $uri/ / | try_files $uri $uri/ / | ||
| Line 338: | Line 372: | ||
| </ | </ | ||
| * Add the following configuration block inside the server section (This you can add towards the end): | * Add the following configuration block inside the server section (This you can add towards the end): | ||
| + | <code bash> | ||
| + | location / | ||
| + | | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | * If you need backward compatibility support (MESHdesk and APdesk) also add this section: | ||
| <code bash> | <code bash> | ||
| location / | location / | ||
| Line 367: | Line 408: | ||
| * To activate the cron scripts execute the following command, which will add **RADIUSdesk**' | * To activate the cron scripts execute the following command, which will add **RADIUSdesk**' | ||
| <code bash> | <code bash> | ||
| - | sudo cp / | + | sudo cp / |
| </ | </ | ||
| * If you want to change the default intervals at which the scripts get executed, just edit the / | * If you want to change the default intervals at which the scripts get executed, just edit the / | ||