RADIUSdesk

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
getting_started:install_ubuntu_nginx [2016/11/02 15:00] – [Viewer component] admingetting_started:install_ubuntu_nginx [2017/07/06 21:17] (current) – [Install RADIUSdesk] admin
Line 154: Line 154:
   * Add the following inside the server section:   * Add the following inside the server section:
 <code bash> <code bash>
-location ~^.+\.(jpg|jpeg|gif|png|ico|js|css)$ {+location ~ ^/cake2/.+\.(jpg|jpeg|gif|png|ico|js|css)$ {
     rewrite ^/cake2/rd_cake/webroot/(.*)$ /cake2/rd_cake/webroot/$1 break;     rewrite ^/cake2/rd_cake/webroot/(.*)$ /cake2/rd_cake/webroot/$1 break;
     rewrite ^/cake2/rd_cake/(.*)$ /cake2/rd_cake/webroot/$1 break;     rewrite ^/cake2/rd_cake/(.*)$ /cake2/rd_cake/webroot/$1 break;
Line 195: Line 195:
   * 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.
-    * **rd_cake** is a CakePHP application and can be considered the engine room. Here the data is processed before being presented by the presentation layer.+    * **rd_cake** is a CakePHP application and can be considered the engine room. Here the data is processed before being presented by the presentation layer. **(We currently use one CakePHP v2 and one CakePHP v3 application in order to migrate from CakePHP v2 to CakePHP v3)**
     * **rd_login** is a directory with various login pages which are centrally managed through the RADIUSdesk **Dynamic Login Pages** applet. Although this is optional, it is used by most installs.     * **rd_login** is a directory with various login pages which are centrally managed through the RADIUSdesk **Dynamic Login Pages** applet. Although this is optional, it is used by most installs.
  
Line 201: Line 201:
  
 === Install CakePHP === === Install CakePHP ===
 +<WRAP center round info 100%>
 +  * As from December 2016 we started a migration process of migrating from CakePHP v2 to CakePHP v3.
 +  * The ORM component of CakePHP v3 is completely new and different which makes the migration fairly involved.
 +  * Since the architecture of RADIUSdesk is following modern design principles it allows us to run both CakePHP v2 and CakePHP v3 simultaneously.
 +  * We can then do the migration gradually over time.
 +</WRAP>
 +
 +== Required packages ==
 +
   * Make sure the following packages are installed:   * Make sure the following packages are installed:
 <code bash> <code bash>
-sudo apt-get install php-cli php-gd php-curl php-xml+sudo apt-get install php-cli php-gd php-curl php-xml php-mbstring php-intl
 </code> </code>
-  * Download the 2.x version of CakePHP (Version 29.as of this writing). https://github.com/cakephp/cakephp/tags+ 
 +== Install CakePHP v2 == 
 + 
 +  * Download the 2.x version of CakePHP (Version 2.9.as of this writing). https://github.com/cakephp/cakephp/tags
   * There are two formats to choose from when selecting to download, Zip or Tar.gz. Select Tar.gz.   * There are two formats to choose from when selecting to download, Zip or Tar.gz. Select Tar.gz.
   * Copy and extract it inside the directory that Nginx is serving its content from (/usr/share/nginx/html)   * Copy and extract it inside the directory that Nginx is serving its content from (/usr/share/nginx/html)
 <code bash> <code bash>
-sudo cp 2.9.1.tar.gz /usr/share/nginx/html+sudo cp 2.9.7.tar.gz /usr/share/nginx/html
 cd /usr/share/nginx/html cd /usr/share/nginx/html
-sudo tar -xzvf 2.9.1.tar.gz  +sudo tar -xzvf 2.9.7.tar.gz  
-sudo ln -s ./cakephp-2.9../cake2+sudo ln -s ./cakephp-2.9../cake2
 </code> </code>
   * Reload php7.0-fpm   * Reload php7.0-fpm
Line 219: Line 231:
 </code> </code>
  
-=== Install RADIUSdesk CakePHP Application ===+== Install the RADIUSdesk CakePHP v2 Application == 
   * Install subversion in order for you to check out the latest source for RADIUSdesk.   * Install subversion in order for you to check out the latest source for RADIUSdesk.
 <code bash> <code bash>
Line 240: Line 253:
 sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/img/dynamic_photos sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/img/dynamic_photos
 sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/files/imagecache sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/files/imagecache
 +</code>
 +
 +== Install the RADIUSdesk CakePHP v3 Application ==
 +
 +  * Check out the cake3 branch from trunk to /usr/share/nginx/html.
 +<code bash>
 +cd /usr/share/nginx/html/
 +sudo svn checkout svn://dvdwalt@svn.code.sf.net/p/radiusdesk/code/trunk/cake3 ./cake3
 +</code>
 +
 +  * Change the following directories to be writable by www-data:
 +<code bash>
 +sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/tmp
 +sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/logs
 +sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/webroot/img/realms
 +sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/webroot/img/dynamic_details
 +sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/webroot/img/dynamic_photos
 +sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/webroot/img/access_providers
 +sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/webroot/files/imagecache
 </code> </code>
  
Line 254: Line 286:
   * Populate the database (trunk):   * Populate the database (trunk):
 <code bash> <code bash>
-    mysql -u root rd < /usr/share/nginx/html/cake2/rd_cake/Setup/Db/rd.sql+    sudo mysql -u root rd < /usr/share/nginx/html/cake3/rd_cake/setup/db/rd.sql
 </code> </code>
  
Line 266: Line 298:
  
 === Configure Nginx === === Configure Nginx ===
-  * Since CakePHP uses rewrite rules, we have to configure Nginx in such a way as to allow rewriting of the URL's that starts with /cake2/rd_cake.+  * Since CakePHP uses rewrite rules, we have to configure Nginx in such a way as to allow rewriting of the URL's that starts with /cake2/rd_cake or with /cake3/rd_cake.
   * Edit ///etc/nginx/sites-enabled/default//   * Edit ///etc/nginx/sites-enabled/default//
 <code bash> <code bash>
Line 277: Line 309:
      try_files $uri $uri/ /cake2/rd_cake/webroot/index.php?q=$uri&$args;      try_files $uri $uri/ /cake2/rd_cake/webroot/index.php?q=$uri&$args;
 } }
 +
 +location /cake3/rd_cake {
 +   rewrite ^/cake3/rd_cake(.+)$ /cake3/rd_cake/webroot$1 break;
 +   try_files $uri $uri/ /cake3/rd_cake/index.php$is_args$args;
 +}
 +
 </code> </code>
   * Reload the Nginx web server:   * Reload the Nginx web server:
Line 283: Line 321:
 </code> </code>
  
-=== Test things out === 
-  * RADIUSdesk supports multiple languages which are sourced during loading. To confirm that the CakePHP application is working as intended, go to this URL: 
-    http://127.0.0.1/cake2/rd_cake/phrase_values/get_language_strings.json?_dc=1355816922405&language= 
-  * Your browser should show a JSON encrypted string: 
-<code bash> 
-    {"data":{"phrases":{"spclCountry":"United Kingdom","spclLanguage":"English","sUsername":"......,"success":true} 
-</code> 
   * Congratulations you are almost there. Next we will install the viewer component   * Congratulations you are almost there. Next we will install the viewer component
 +
  
 ----- -----
Line 325: Line 357:
   * Be sure to also install **FreeRADIUS** and **Node.js**,   * Be sure to also install **FreeRADIUS** and **Node.js**,
   * [[Getting Started:install_ubuntu_freeradius_3|Install FreeRADIUS]]   * [[Getting Started:install_ubuntu_freeradius_3|Install FreeRADIUS]]
-  * [[Getting Started:Install Ubuntu Node.js|Install node.js]]+  * [[getting_started:install_ubuntu_node_js|Install node.js]]