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 / |