Difference between revisions of "Upgrade"

From FusionPBX
Jump to: navigation, search
(Step 1: Source)
(Step 1: Source)
Line 17: Line 17:
 
'''Upgrade the code via Subversion/SVN'''
 
'''Upgrade the code via Subversion/SVN'''
  
#Login to the FusionPBX web interface, as a member of the superadmin group.
+
*'''Login into the web interface''' with a user account assigned to the superadmin group.
#Login to the console
+
*'''Login to the console''' with either the ssh, the locally.
#Navigate to the fusionpbx directory
+
*'''Backup''' It's a good idea to make a backup. If using sqlite, your backup will easily include the SQL database.
#''It's a good idea to make a backup. If using sqlite, your backup will easily include the SQL database. Just "cp -r fusionpbx fusionpbx_backup" in the parent directory.''
+
cd /var/www
#change the directory to the FusionPBX directory
+
cp -R fusionpbx fusionpbx_backup
#Run: svn update
+
*'''Change the directory''' to the FusionPBX directory
#re-set the permissions on the fusionpbx directory tree - when you do svn update it sets the permissions on any updated files to match the account that you are running svn update with, therefore if that account is different to the web server account it will result in some files no longer being accessible.  Therefore to fix this you should re-apply the permissions in fusionpbx and recursively in all directories inside it. (chown -Rv Ownername:GroupName /var/www/fusionpbx)
+
cd /var/www/fusionpbx
 +
*'''Check URL''' If it is not the release branch shown below you may consider updating it see ''Switch URL''
 +
svn info
 +
*'''Switch URL''' to the Release branch.
 +
svn switch http://fusionpbx.googlecode.com/svn/trunk/tags/release-2.0 .
 +
*'''Update the source code''' (example assumes fusionpbx is in /var/www/fusionpbx)
 +
svn update
 +
*'''Permissions''' re-set the permissions on the fusionpbx directory tree - when you do svn update it sets the permissions on any updated files to match the account that you are running svn update with, therefore if that account is different to the web server account it will result in some files no longer being accessible.  Therefore to fix this you should re-apply the permissions in fusionpbx and recursively in all directories inside it. The example assumes the web server runs as user 'www-data' and fusionpbx is installed to /var/www/fusionpbx. (chown -Rv Ownername:GroupName /var/www/fusionpbx)  
 +
chown -Rv www-data:www-data /var/www/fusionpbx
  
 
==Step 2: Upgrade==
 
==Step 2: Upgrade==

Revision as of 00:46, 6 July 2011

What Is Upgrading?

The FusionPBX code is constantly evolving - bug fixes being submitted, additions to improve security, to make it look nicer, to be more flexible, and best of all - new features that are sponsored and have been implemented. A complete summary of the changes can be found on the google code page.

How to upgrade

To upgrade, you will need to get the latest source code.

Depending on how extreme the changes have been since your last update, you may need to run one-time special commands to bring your install up to date.

Step 1: Source

Upgrade the code via Subversion/SVN

  • Login into the web interface with a user account assigned to the superadmin group.
  • Login to the console with either the ssh, the locally.
  • Backup It's a good idea to make a backup. If using sqlite, your backup will easily include the SQL database.
cd /var/www
cp -R fusionpbx fusionpbx_backup
  • Change the directory to the FusionPBX directory
cd /var/www/fusionpbx
  • Check URL If it is not the release branch shown below you may consider updating it see Switch URL
svn info
  • Switch URL to the Release branch.
svn switch http://fusionpbx.googlecode.com/svn/trunk/tags/release-2.0 .
  • Update the source code (example assumes fusionpbx is in /var/www/fusionpbx)
svn update
  • Permissions re-set the permissions on the fusionpbx directory tree - when you do svn update it sets the permissions on any updated files to match the account that you are running svn update with, therefore if that account is different to the web server account it will result in some files no longer being accessible. Therefore to fix this you should re-apply the permissions in fusionpbx and recursively in all directories inside it. The example assumes the web server runs as user 'www-data' and fusionpbx is installed to /var/www/fusionpbx. (chown -Rv Ownername:GroupName /var/www/fusionpbx)
chown -Rv www-data:www-data /var/www/fusionpbx

Step 2: Upgrade

Many updates have changes to the database. The upgrade_schema script

  • Upgrade from the Command Line An alternative to running upgrade_schema.php from the GUI is to run the upgrade.php from the command line. It was designed to make the upgrade easier. If you did not login when updating the FusionPBX source code then you will need to run the upgrade.php file from the command line. Make sure to use the full path to the PHP file.
/usr/bin/php /var/www/fusionpbx/core/upgrade/upgrade.php
  • If your screen was nicely formatted with a fusionpbx theme, and suddenly now goes to a black and white screen with familiar text but no theme, it is because you were using a theme which no longer exists in the latest version of the code. If this happens to you navigate to:
 http://domain_or_ip/mod/users/usersupdate.php

Then scroll down to where it says "Template" and select one of the valid templates from the drop down list. Then press Save. It will be fixed now and you can continue with the remaining steps below. (Note that any users who have invalid templates selected will also have the same problem you did - but you can fix them from the user manager option in the accounts menu)

Step 3: Menu

Now update the menu to the latest version.

 http://domain_or_ip/core/menu/menu_list.php

Press 'Restore Default' on the top right.

Additional Info

Confirm Domain is Correct Advanced -> System Settings

Make sure the domain is correct if the domain says 'localhost' then it needs to be changed to either your FQDN or IP address. Make certain that your telephone registrations register to that domain or IP address.

SQL Query Find your version number by doing "svn info" from the console within the FusionPBX directory or from Advanced -> Command -> Shell command.

If your version is from...

  • before 2011-01-04 - r669 - then you'll need to run the following commands from the Advanced -> SQL Query tool. These changes the group member to user. It also moves all users who are members of the 'member' group over to the 'user' group.
 update v_groups set groupid = 'user', groupdesc = 'User Group' where groupid = 'member';
 update v_group_members set groupid = 'user' where groupid = 'member';
    • Click Execute (Type 'default', Table 'leave blank' Click Execute)
    • results: 0 for both queries
    • Log out
    • Log in
    • Proceed to update the menu


  • before 2011-02-20 r836

"Apply settings automatically with an option to display the apply settings prompt with a variable in system -> variables -> apply_settings = true"


If things go wrong: SQLite Database Restore

You shouldn't need to do this, and it's probably the wrong thing to do, but if your database won't load after an upgrade...

Synopsis of what happened [to me]

You're probably seeing an error like this:

(Fatal error: Call to a member function execute() on a non-object in /var/www/fusionpbx/includes/menu.php on line 76)
  1. You were not logged into the browser interface
  2. You updated from svn via CLI
  3. You went to login to run upgrade->Schema, but couldn't due to some changes.

Remedy

from cli
mv /var/www/fusionpbx /var/www/fusionpbx.bak
reinstall the lastest fusionpbx... 
if you are using svn checkout make sure you set the permissions correctly on the fusionpbx directory structure before proceeding to the next step
from browser
login via the gui, complete the install... Don't log out
back to cli
cd /var/www/fusionpbx/secure
mv fusionpbx.db fusionpbx.db.new
cp /var/www/fusionpbx.bak/secure/fusionpbx.db ./
chown www-data:www-data fusionpbx.db
   (or whatever your webserver user/grp is)
from browser
go to: http://domain_or_ip/core/upgrade/upgrade_schema.php
This should fix the database.

You will need to have FusionPBX recreate all of the FreeSWITCH xml files. When you reinstalled, they were properly deleted (the database was empty at that point). Edit an extension/gateway/route/etc, and click save (you won't need to edit it).

In the future

Make sure you're logged into the browser interface before doing an upgrade...