====== Update a RADIUSdesk install on Ubuntu 16.04 ====== * We assume you have an existing install on Ubuntu 16.04 which you want to update. Be carefull when updating **production** systems since the RADIUSdesk code is under constant development very new bits of code might still have bugs which can break things. ===== Install the CakePHP v3 application ===== This is a once-off action and only needs to be done once if you are still running a CakePHP v2 based system * Make sure the following packages are installed: sudo apt-get install php-cli php-gd php-curl php-xml php-mbstring php-intl * Check out the cake3 branch from trunk to /usr/share/nginx/html. cd /usr/share/nginx/html/ sudo svn checkout svn://dvdwalt@svn.code.sf.net/p/radiusdesk/code/trunk/cake3 ./cake3 * Change the following directories to be writable by www-data: 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 ----------------- ===== Check the Nginx config ===== This is a once-off action and only needs to be done once if you are still running a CakePHP v2 based system. * Since we are running both CakePHP v2 and CakePHP v3 simultaneously, you will need to update the Nginx config. * Edit the /etc/nginx/sites-available/default file: sudo vi /etc/nginx/sites-available/default * Look for the following bit and be sure the **location** line matches this: location ~ ^/cake2/.+\.(jpg|jpeg|gif|png|ico|js|css)$ { rewrite ^/cake2/rd_cake/webroot/(.*)$ /cake2/rd_cake/webroot/$1 break; rewrite ^/cake2/rd_cake/(.*)$ /cake2/rd_cake/webroot/$1 break; access_log off; expires max; add_header Cache-Control public; } * Add the next bit for the CakePHP v3 application 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; } * Reload the Nginx web server sudo systemctl reload nginx.service ---------------------- ===== Install The Improved Dynamic Login Pages ===== This is a once-off action and only needs to be done once if you are still running the older login pages that has a seperate page for mobile devices and desktop devices. * Check out the latest login pages from the SVN repository. cd /usr/share/nginx/html sudo svn checkout svn://dvdwalt@svn.code.sf.net/p/radiusdesk/code/trunk/login ./login ---------------------- ===== Update the code ===== * Run the following commands to fetch the latest code #CakePHP v2 Application cd /usr/share/nginx/html/cake2/rd_cake sudo svn update #CakePHP v3 Application cd /usr/share/nginx/html/cake3 sudo svn update #Viever cd /usr/share/nginx/html/rd sudo svn update #Login Pages cd /usr/share/nginx/html/login sudo svn update #Confirm the rights sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/tmp sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/Locale sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/img/flags sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/img/nas sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/img/realms sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/img/dynamic_details 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/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 ------------ ===== Applying the Database Patches ===== * As the code evolve we sometimes create patches to the database. Run the following instructions to apply the latest patches. * These patches are non-destructive which means you can run them multiple times without harm done. cd /usr/share/nginx/html/cake3/rd_cake/setup/db sudo mysql -u root rd < correct_realm_acos.sql sudo mysql -u root rd < rd_rename_key_column.sql sudo mysql -u root rd < rd_photo_add_active_column.sql sudo mysql -u root rd < rd_photo_more_enhancements.sql sudo mysql -u root rd < top_up_improvements.sql sudo mysql -u root rd < add_language_selection_to_dynamic_details.sql sudo mysql -u root rd < captive_portal_dns.sql sudo mysql -u root rd < byod_improvements.sql sudo mysql -u root rd < rd_rename_key_column_2.sql sudo mysql -u root rd < correct_users_and_groups_aros.sql ------ ===== Copy the existing images ===== * We need to move the existing images to a new location * This is typically a once off but will include more as more parts is migrated. #realms sudo cp /usr/share/nginx/html/cake2/rd_cake/webroot/img/realms/* /usr/share/nginx/html/cake3/rd_cake/webroot/img/realms/ #Dynamic Details sudo cp /usr/share/nginx/html/cake2/rd_cake/webroot/img/dynamic_details/* /usr/share/nginx/html/cake3/rd_cake/webroot/img/dynamic_details/ #Dynamic Photos sudo cp /usr/share/nginx/html/cake2/rd_cake/webroot/img/dynamic_photos/* /usr/share/nginx/html/cake3/rd_cake/webroot/img/dynamic_photos/ #Change the ownership 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 ===== Updating the rights system on the database ===== * Since we are migrating from CakePHP v2 to CakePHP v3 some conventions on the rights system changed. * We developed a script which you can run to fix these conventions for you. * Again this script is non-destructive which means you can run it multiple times, especially after new code has been added from the SVN repository. cd /usr/share/nginx/html/cake3/rd_cake sudo ./bin/cake migrate_radiusdesk 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 == Please Take Note == * The current version of FreeRADIUS available on the repository (3.0.12) has this bug: http://lists.freeradius.org/pipermail/freeradius-users/2016-October/085317.html * While we wait for the maintainer of the repository to update to the latest stable release please follow the instructions in this page to [[getting_started:install_ubuntu_freeradius_upgrade|Upgrade FreeRADIUS]] using our own set of packages. * Once the repository has been updated we will remove this //'detour'// instructions