Upgrading osTicket 1.10.x to current 1.11.0

So you’re running osTicket version 1.10.x and you want to upgrade it to current which as of this writing is 1.11.0, and you need a little help. Well, you’ve come to the right place.  One very important thing to note: contrary to what the osTicket FAQ at https://osticket.com/faq says, you need a newer version of PHP than 5.3.  I would recommend any version from 5.6 to 7.2.  So if you have 5.3 go upgrade first.  This version introduces support for 5.6 to 7.2.  As of this writing I am running 7.2.15 in production on multiple sites.

If you have ever upgraded osTicket in the past your experience this time will not be much different than it was previously.

Before you start it is important to mention that if you have installed any mods or performed any custom coding (including changing graphics, translations, etc.) that upgrading will not be as simple as it sounds in this article and you will lose all the modifications that you have made. You could very well break your site or at the very least lose some of the functionality that you currently enjoy.

1. Put the site into offline mode.

To do this log into your site and navigate to Admin panel -> Settings -> Helpdesk Status and toggle the radial to “Offline (Disabled)”, scroll down and click “Save Changes”.

note: I personally leave the site open, but navigated back to the Client panel.

2. Make a backup of your database.

There are various ways to do this and I am not going to cover all of them. My preferred way is to use command line. You can do this by simply issuing a command similar to:

mysqldump -u userName -p databaseName > fileName.sql

note: change userName to your DB username, databaseName to the name of your DB, and fileName to what ever you want to call the backup file.

One other easy way to do backups (on windows) is to use MySQL Admin (deprecated) or MySQL WorkBench.

3. Make a backup of your site.

Once again there are various ways to achieve this. I trust that you know how you want to do it, just make sure that you do it.

NOTE: You should never rely on your ISPs automatic backups,
always make your own backups before upgrading!!!

While you are here, you may want to also make a separate copy of your /include/ost-config.php file. This file contains the database connection information.

4. Download the latest version of OSTicket. osticket.com/download.

Note: If you are running any plugins (especially any of the auth plugins), you should also download the new versions of those.

5. Extract it to your OSTicket directory. Yes, you can and should have it over write existing files.

Note: If you also downloaded upgrade to your plugins make sure that you put there in /include/plugins at this point.

6. re load your web page. When the page loads you should be looking at the image below. Since this is an upgrade you should be looking at the upgrader. This is important to note since the Upgrader looks different from the Installer.

fig 1 – upgrader
click image to enlarge

 

 

At this point you should be able to click the “Start Upgrade Now” button. The next screen should look like this:

fig 2 – upgrader, page 2
click image to enlarge

 

 

Unless you have a reason not to, go ahead and click the “Do It Now!” button. This should result in a small rectangle popping up in the middle of your screen like this:

fig 3 – upgrader upgrading

 

 

Once it has completed you should be looking at the following page:

fig 4 – upgrader, upgrade completed
click image to enlarge

 

 

Now, if you click on the Settings tab you should be looking at the following:

fig 5 – admin panel, version
click image to enlarge

 

 

While you are here, if you had previously put the site into Offline mode, you should put it back in Online mode (don’t forget to click Save Changes at the bottom of the page).

Congratulations! You’ve upgraded from 1.10.x to 1.11.0, however you are not quite finished yet.

7. Time for post install clean up.

Go into your OSTicket directory and delete [or rename] the setup folder. It is not needed for a live or production site and should never be left on a publicly accessible server. I recommend that you delete it, but some people like renaming it to keep the files around should they need it again. For the record you should not need it again, and if you did you can always just re-download the distribution archive. This will also get rid of the annoying nag screen at the top of the site.

Next go to your /include folder and make the ost-config.php read only. How to do this varies by OS.

That’s it for the “hard” stuff. I recommend that you take another backup of your site (both database and files) since you just made major changes to the site.

Enjoy!

ntozier / tmib

 

p.s. the instructions for installing and configuring the LDAP/AD plugin really haven’t changed.

Installing osTicket 1.10.4: Troubleshooting MySQL8 and PHP older than 7.1.16

MySQL 8 was released recently (to this writing) and of course that means people are going to start using it.  Since I have seen a couple posts on the forums with people using MySQL 8 I decided to fire up a new VM and install the following:

  • OS: Windows 2012 R2
  • Webserver: IIS 8
  • MySQL 8.0.12
  • PHP 5.6.31

note: PHP 5.6 is still the recommended version of PHP for osTicket until 1.11 is released.  You should not have this problem if you are running PHP 7.1.16+ or PHP 7.2.4+ but since osTicket does not support those versions yet.

After checking to make sure that: IIS was serving pages and PHP was working in IIS it was time to download and install osTicket.  The new website downloader is neat and allows you to download a languages and plugins together which can be a time saver. As a reminder always install osTicket with out any language packs and then add your desired language packs.

Running the installer resulted in the following error:

Database Connection information `Unabled to connect to MySQL Server: Server sent charset unknown to the client.`  Please report to the devs

To fix this you will need to locate and edit your MySQL configuration file (my.cnf or my.ini). Since this is a new MySQL 8 installation under windows it is at: C:\ProgramData\MySQL\MySQL Server 8.0\my.ini.  Once you located the file locate # character-set-server=.  Directly after it add the line:character-set-server=utf8

Next you will need to restart MySQL.  You might be able to do this with MySQL WorkBench or services.msc.  My server had some patches that installed so I just restarted the server for the patches to finish.

Running the installer again of course resulted in another error message:

Database connection information `Unable to connect to MySQL Server: The server requested authentication method unknown to the client`

Starting with MySQL 8.0.4, the default authentication plugin for MySQL server was changed from mysql_native_password to caching_sha2_password. There are two things that you need to do in MySQL to fix this. First: if you are running an older version of PHP (pre 7.1.16) you will need to set default_authentication_plugin=mysql_native_password in my.cnf. Restart the server.

Next you will need to edit the user account. I could not do this in the most recent version of MySQL WorkBench using the ui. You can do this one of two ways:
1. delete and recreate the user. Make sure authentication is set to ‘Standard’. Make sure you give the same permissions back that the user had.
2. run the following SQL Query (edit this for your user)
alter user 'username'@'localhost' identified with mysql_native_password by 'password';

After doing this the installer ran fine.

Updating osTicket 1.10.x to 1.10.4

I have just upgraded a clone of one of my production sites and there is no database update beween 1.10.x when upgrading to 1.10.4.  You should be able to follow any of my previous upgrade guides and do not expect the database upgrader to run.  This means that upgrading is as easy as dropping the new files over the old ones.   Please keep in mind that you should really back up the site and your database first just in case.

osTicket 1.9.x reaches end of life

There were two very important pieces of information in yesterdays Blog post over on osticket.com above and beyond the normal "Hey these new versions have been released".  If you haven't read the Blog post yet it is here: https://www.osticket.com/blog/126

First and foremost is that the 1.9 tree has reached it's end of life and is no longer being supported or maintained.  The devs highly recomnend that you upgrade immediately.  Historically osTicket has only supported two versions at a time so this tells me they expect 1.11 to be made stable quite quickly.

Secondly the tired and old wiki has been retired and been replaced with a brand new re-written Documentation Site.  You can get to the new site by clicking Docs on the osTicket site, or go there directly at: https://docs.osticket.com/

The release schedule slowed down for a while there, but things seem to have finally gotten back on track.  I'm really looking forward to some of the things that I have heard about in the pipeline and will share them as soon as I can!

osTicket v1.10.4 Security Update and 1.11-rc1 Released!

There is a new version of the 1.10 series, specifically the stable 1.10.4 Security Update. You can get this version via github or at https://osticket.com/download. It features some improvements/bug fixes, and an important security update.

This includes the not previously available for download bug fix versions on osticket.com. Here is a list of the changes:

v1.10.4

Enhancements

  • issue: Auto-Assignment Log (#4316)
  • issue: Language Pack Locale Mismatch (#4326)
  • issue: CLI Deploy Missing Bootstrap (#4332)
  • issue: User Import No Email (#4330)
  • issue: Ticket Lock On Disable (#4335)

Performance and Security

  • security: Fix Multiple XSS Vulnerabilities (#4331)
  • department: Error Feedback (#4331)

v1.10.3

Enhancements

  • issue: Org. User Account Status (#4219)
  • upgrader: Flush Cache On Upgrade (#4227)
  • issue: Outlook _MailEndCompose (#4206)
  • issue: Files – deleteOrphans() (#4253)
  • issue: Fix imap_open Disable Authenticator (#4195)
  • Check permissions before displaying Close Task (#4177)

Performance and Security

  • issue: Information Page Performance (#4275)
  • issue: Prevent Click Jacking (#4266)
  • orm: queryset: Fix circular reference error (#4247)

v1.10.2

Performance and Security

  • Prevent Account Takeover (be0133b)
  • Prevent Agent Directory XSS (36651b9)
  • Httponly Cookies (5b2dfce)
  • File Upload Bypass (3eb1614)
  • Only allow image attachments to be opened in the browser window (4c79ff8)
  • Fix randNumber() (5b8b95a)
  • CSRF in users.inc.php URL (285a292)
  • AJAX Reflected XSS (e919d8a)
 
The long awaited Release Candidate for 1.11 has also been released.  1.11rc-1 is available for download on the osticket.com site.  This is not a Stable Release and should not be run in a production environment!
 
The Official Blog post about this is here: https://www.osticket.com/blog/126
 
Notice: osTicket 1.9 series has reached end of life, it's no longer being maintained. Users are highly encouraged to upgrade to the latest release of 1.10 series.

Resources for osTicket

Official Resources

 

 

Download/Install files

 

Translations/Language-Packs
Download into /include/il8n folder.

 

 

Plugins
Install into /include/plugins folder.

Core Plugins
Developed by osTicket core developers.

 

Beta Plugins by osTicket core developers

 

 

Community Plugins
Modifies how the software works, without changing it.

 

  • Activity Stream – Paid Activity Stream plugin
  • adSync – Paid Active Directory Synchronization, is a plugin for osTicket 1.10+ which allows the system to synchronize your Active Directory users into osTicket.
  • Archiver – Archives tickets before delete, and allows for auto-pruning of old tickets.
  • Attachment Preview – Allows files attached to tickets to be embedded in the thread.
  • Autocloser – Automatically closes open tickets.
  • Fetch Note – Automatically fetch additional note content on ticket creation.
  • Field Radio Buttons – Enables the use of HTML form element Radio Buttons.
  • Mentioner – Finds Staff mentions in a thread and add’s them as collaborators to the ticket.
  • Multi LDAP Auth – Plugin for multiple LDAP servers authentication and LDAP Sync.
  • notifyReject – notifies un-registered users that their email has been rejected and they need to register
  • Prevent Autoscroll – Stops the agent view from scrolling down to the last message in the thread.
  • Reporting – Paid plugin for extensive reporting.
  • Rewriter – An osTicket plugin to rewrite incoming emails.

 

Third Party Integration Plugins

 

 

Themes
Require modifications to osTicket core.

 

 

Guides

 

 

Provisioning

 

 

Development Resources

 

 

Professional Services

 

 

@Mentions

 

 

This list was blatantly stolen and then updated from the fantastic curated list by clonemeagain over at: https://github.com/clonemeagain/awesome-osticket. Thank you clonemeagain! (@grizly) I also posted it here: http://osticket.com/forum/discussion/92286/resources-for-osticket

Add a client side open ticket list to osTicket 1.10+

Since I released my old article on how to add a client side open ticket list I've been meaning to rewrite the mod. The article that your reading now an updated and re-written version for 1.10 and 1.10.1 releases.

One of the features that I would love to see integrated into osTicket is an open ticket listing for clients. While I would like to see this added to code it would really need some more coding to make it viable as a PR. Being able to make this a plugin would be great, but I dont think that this is viable with out editing core files at this time.  

I feel that this simple mod gives users the ability to see what tickets are already open. This should cut down on duplicate tickets, and give the user a better idea of how many tickets are ahead of them when placing a request. This mod was originally written for osTicket 1.6ST and re-released for 1.7, 1.8, 1.9 and 1.10. This rewritten version utilizes the osTicket db access functions.  While this mod is here for everyone to be able to use, it would be great if the people who use it donated .

In the past I have included two ways to install (the mod). However with this release I am only including one way to install this (chiefly due to the fact that no one has ever donated a dime for this mod).

1. Save the display_open_topics.php into your base osTicket folder. Open it and edit the lines 18 through 24 to match your setup.

2. open osticketDirectory\assets\default\css\theme.css with your favorite text editor and scroll all the way to the bottom and add the following:

#openticks {
  padding:5px;
  background:#BFBFBF;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -moz-box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.4);
  -webkit-box-shadow: 3px 3px rgba(0, 0, 0, 0.4);
  box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.4);
}

#openticks-a {
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #BFBFBF;
  text-align:center;
  vertical-align:middle;
  padding-bottom:4px;
}

#openticks-b {
  text-align:center;
  vertical-align:middle;
  padding-bottom:4px;
}

3.  open and edit \index.php scroll down and replace line 79-82

</div>
</div>

<?php require(CLIENTINC_DIR.'footer.inc.php'); ?>

change to:

</div>
<p style="text-align:center">Be sure to browse both our <a href="kb/index.php">Featured Questions (FAQs)</a>, and the open tickets below before opening a ticket.  Thank you.
  <div id="openticks"><?php include('display_open_topics.php'); ?></div>
</p>
</div>

<?php require(CLIENTINC_DIR.'footer.inc.php'); ?>

The file archive for this mod can be downloaded here.

Running 1.9? Please see this article instead for that version: Add a client side open ticket list to osTicket 1.9 or 1.10rc2

Running 1.8? Please see this article instead for that version: Add a client side open ticket list to osTicket 1.8

osTicket v1.10.1 Security Update Released!

There is a new version of the 1.10 series, specifically the stable 1.10.1 Security Update. You can get this version via github or at https://osticket.com/download. It features some improvements/bug fixes, and an important security update. Here is a list of the changes:

Enhancements

  • Users: Support search by phone number
  • i18n: Fix getPrimaryLanguage() on non-object (#3799)
  • Add TimezoneField (#3786)
  • Chunk long text body (#37577b68c99)
  • Spyc: convert hex strings to INTs under PHP 7 (#3621)
  • forms: Proper Field Deletion
  • Move orphaned tasks on department deletion to the default department (42e2c55)
  • List: Save List Item Abbreviation (8513f13)

Performance and Security

  • XSS: Encode html entities of advanced search title (#3919)
  • XSS: Encode html entities of cached form data (#3960bcd58e8)
  • ORM: Addresses an SQL injection vulnerability in ORM lookup function (#39591eaa691)

 

Those still using the 1.9 series will be happy to see that there is also a new 1.9.16 release also.

Add a client side open ticket list to osTicket 1.8.1

This article replaces the old one from:
https://tmib.net/add-client-side-open-ticket-list-osticket-18

With the release of osTicket 1.8.1 I thought that it was time to update this article which adds a client side open ticket list, adds the ability to control it its on/off, and how many tickets it should display in the admin panel. One of the features that I would love to see integrated into osTicket is an open ticket listing for clients. I feel that it gives clients the ability to see what tickets are already open so as to cut down on duplicate tickets, and give them a better idea of how many tickets are ahead of them when they place their request. This mod is will be added to github and a pull request to integrate it made.  It was originally written for osTicket 1.6ST, updated for 1.7 as well as 1.8. I have included two ways to install it. If you have modified your installation already you can install manually following the directions. If you have not modified your installation I have included all the files that you can simply copy over your existing ones.

With the release of osTicket 1.8.1ST I thought that it was time to revisit this article.  This article describes a mod which adds the following functionality to osTicket:

  • a "safe" client side open ticket list [reduced information]
  • Toggle display on/off in admin panel -> tickets
  • Configure how many open tickets to display in admin panel -> tickets (default 10)
  • more intelligent display of open tickets and faqs (built in)
  • aesthetic css formating for the list.
  • Utilizes osTicket db functions for communication with the DB.
One of the features that I would love to see integrated into osTicket is an open ticket listing for clients. I feel that it gives clients the ability to see what tickets are already open so as to cut down on duplicate tickets, and give them a better idea of how many tickets are ahead of them when they place their request.

It was originally written for osTicket 1.6ST, was later updated for 1.7 as well as 1.8. I have included two ways to install it. If you have modified your installation already you can install manually following the directions. If you have not modified your installation I have included all the files that you can simply copy over your existing ones.

1. Save the display_open_topics.php into your base osTicket folder. Open it and edit the lines 16 through 18 to match your setup.

2. Save the theme.css to osticketDirectory\assets\default\css\theme.css -OR- open osticketDirectory\assets\default\css\theme.css

A. To make the landing page fit together a little better scroll or find:

#landing_page #new_ticket

change

margin-top: 40px;

to

margin-top: 10px;

scroll or find:

#landing_page #check_status

change

margin-top: 40px;

to

margin-top: 10px;

 

B. add the following to the bottom

#openticks {
  padding:5px;
  background:#BFBFBF;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -moz-box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.4);
  -webkit-box-shadow: 3px 3px rgba(0, 0, 0, 0.4);
  box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.4);
}

#openticks-a {
  border-right-style: solid;
  border-right-width: 1px;
  border-right-color: #BFBFBF;
  text-align:center;
  vertical-align:middle;
  padding-bottom:4px;
}

#openticks-b {
  text-align:center;
  vertical-align:middle;
  padding-bottom:4px;
}

3. Copy the index.php (included) into your base osTicket folder -OR- open and edit \index.php scroll down and replace line 50-54

<p>Be sure to browse our <a href="kb/index.php">Frequently Asked Questions (FAQs)</a>, before opening a ticket.</p>
</div>
<?php
} ?>
<?php require(CLIENTINC_DIR.'footer.inc.php'); ?>

change to:

<p>Be sure to browse both our <a href="kb/index.php">Frequently Asked Questions (FAQs)</a>, and the open tickets below before opening a ticket.  Thank you.
  <div id="openticks"><?php include('display_open_topics.php'); ?></div>
</p>
</div>
<?php
} ?>
<?php require(CLIENTINC_DIR.'footer.inc.php'); ?>

NOTE: This will not get displayed if you have not enabled and setup knowledgebases and have a public FAQ! To do so read this article: setting up and using FAQS in osticket. Alternatively you can replace the code change above with this one:

<?php
if($cfg && $cfg->isKnowledgebaseEnabled()){
    //FIXME: provide ability to feature or select random FAQs ??
?>
<p>Be sure to browse both our <a href="kb/index.php">Frequently Asked Questions (FAQs)</a>.
<?php
} ?>
<p>Please review the open tickets below before opening a ticket.  Thank you.
<div id="openticks"><?php include('display_open_topics.php'); ?></div>
</p>
</div>
<?php require(CLIENTINC_DIR.'footer.inc.php'); ?>

The file archive for this mod can be downloaded here.

Upgrading osTicket 1.9.x to current (1.10)

So you're running osTicket version 1.9.x and you want to upgrade it to current which as of this writing is 1.10, and you need a little help. Well, you've come to the right place.  One very important thing to note: contrary to what the osTicket FAQ at https://osticket.com/faq says, you need a newer version of PHP than 5.3.  I would recommend PHP 5.5 or 5.6 over any other versions at this time.  So if you have 5.3 go upgrade to 5.5 of 5.6.  This version introduces support for PHP 7.0, but there have been reports on the forums that newer versions of 7.0 and 7.1 have issues.

If you have ever upgraded osTicket in the past your experience this time will not be much different than it was previously.

Before you start it is important to mention that if you have installed any mods or performed any custom coding (including changing graphics, translations, etc.) that upgrading will not be as simple as it sounds in this article and you will lose all the modifications that you have made. You could very well break your site or at the very least lose some of the functionality that you currently enjoy.

  1. Put the site into offline mode.

To do this log into your site and navigate to Admin panel -> Settings -> Helpdesk Status and toggle the radial to "Offline (Disabled)", scroll down and click "Save Changes".

note: I personally leave the site open, but navigated back to the Client panel.

  2. Make a backup of your database.

There are various ways to do this and I am not going to cover all of them. My preferred way is to use command line. You can do this by simply issuing a command similar to:

mysqldump -u userName -p databaseName > fileName.sql

note: change userName to your DB username, databaseName to the name of your DB, and fileName to what ever you want to call the backup file.

One other easy way to do backups (on windows) is to use MySQL Admin (deprecated) or MySQL WorkBench.

  3. Make a backup of your site.

Once again there are various ways to achieve this. I trust that you know how you want to do it, just make sure that you do it.

NOTE: You should never rely on your ISPs automatic backups,
always make your own backups before upgrading!!!

While you are here, you may want to also make a separate copy of your /include/ost-config.php file. This file contains the database connection information.

  4. Download the latest version of OSTicket. osticket.com/download.

Note: If you are running any plugins (especially any of the auth plugins), you should also download the new versions of those.

  5. Extract it to your OSTicket directory. Yes, you can and should have it over write existing files.

Note: If you also downloaded upgrade to your plugins make sure that you put there in /include/plugins at this point.

  6. re load your web page. When the page loads you should be looking at the image below. Since this is an upgrade you should be looking at the upgrader. This is important to note since the Upgrader looks different from the Installer.

fig 1 – upgrader
click image to enlarge

 

At this point you should be able to click the "Start Upgrade Now" button. The next screen should look like this:

fig 2 – upgrader, page 2
click image to enlarge

 

Unless you have a reason not to, go ahead and click the "Do It Now!" button. This should result in a small rectangle popping up in the middle of your screen like this:

fig 3 – upgrader upgrading

 

Once it has completed you should be looking at the following page:

fig 4 – upgrader, upgrade completed
click image to enlarge

 

Now, if you click on the Settings tab you should be looking at the following:

fig 5 – admin panel, version
click image to enlarge

 

While you are here, if you had previously put the site into Offline mode, you should put it back in Online mode (don't forget to click Save Changes at the bottom of the page).

Congratulations! You've upgraded from 1.9.x to 1.10, however you are not quite finished yet.

  7. Time for post install clean up.

Go into your OSTicket directory and delete [or rename] the setup folder. It is not needed for a live or production site and should never be left on a publicly accessible server. I recommend that you delete it, but some people like renaming it to keep the files around should they need it again. For the record you should not need it again, and if you did you can always just re-download the distribution archive. This will also get rid of the annoying nag screen at the top of the site.

Next go to your /include folder and make the ost-config.php read only. How to do this varies by OS.

That's it for the "hard" stuff. I recommend that you take another backup of your site (both database and files) since you just made major changes to the site.

Enjoy!

N

tmib

 

p.s. the instructions for installing and configuring the LDAP/AD plugin really haven't changed.