Have searched this forum but still not sure how to proceed.

Current setup:
osTicket V1.11
PHP7
Apache Version 2.4.59
MySQL Version 5.7.23-23

My hosting service is moving to PHP8 and so I need to get osTicket onto PHP8

I think my options are:

  1. Run on PHP8. Check the PHP error file (may be extensive). Edit the osTicket PHP files as needed to fix errors.
  2. Install totally new (latest) osTicket (which is PHP8.1 ready). Migrate config & tickets to new installation.
  3. ???

Option 1: Looks like a lot of work ... and misses out on benefits of latest version
Option 2: I think is the best path forward. What worries me is migrating the existing tickets into the new instalation.???
Option 3: Is there a better way?

Any advice appreciated.

  • KevinTheJedi replied to this.
  • RobClark

    Why don’t you simply upgrade instead so you can keep everything?

    Just be sure to take full backups of the database and codebase beforehand in case you need to restore for some reason. It’s important to note that if you have any plugins currently installed you will need to download the latest builds relevant to the core version you will be upgrading to and replace the existing plugin files with the new ones. You will also need to upgrade PHP before upgrading core as the new files will require the new PHP version to work properly.

    Cheers.

    RobClark

    Why don’t you simply upgrade instead so you can keep everything?

    Just be sure to take full backups of the database and codebase beforehand in case you need to restore for some reason. It’s important to note that if you have any plugins currently installed you will need to download the latest builds relevant to the core version you will be upgrading to and replace the existing plugin files with the new ones. You will also need to upgrade PHP before upgrading core as the new files will require the new PHP version to work properly.

    Cheers.

    Kevin: Thanks. I did look at that page but seems it does not apply?
    Only previous versions from version 1.6 RC1 can be upgraded to the current version.

    I am running osTicket V1.11

    What am I missing?

      RobClark

      1.11 is greater than 1.6 so you can ignore that. v1.6 was released in like 2006-2008.

      Cheers.

      Maybe it should say "Only versions from 1.6 RC1 upwards can be upgraded ..."

      :-)

      13 days later

      I have read the info and watched the videos multiple times.
      https://docs.osticket.com/en/latest/Getting%20Started/Upgrade%20and%20Migration.html

      I am still very nervous (even with backup files) of overwriting an existing production osTicket installation (running on PHP7)

      Here is what I am thinking of doing .... but tell me if it will damage my database.

      1. Backup existing DB & all files in the current installation (osTicket v1.11, PHP7).
      2. Because I am on a hostgator shared server, with Softaculous available for free, get Softalicious to (almost) 1-click install a NEW installation of osTicket (V.18.1, PHP8) in a NEW folder. (i.e. not overwrite V1.11)
      3. Startup the V1.18.1 installation, and make sure it is working
      4. At this point I have two separate installations
        • V1.11, connected to production database with real tickets
        • V1.18.1 connected to a new, pretty empty database

      Then:

      1. Shutdown V1.18.1
      2. Shutdown V1.11
      3. Copy /include/ost-config.php from the V1.11 installation to the V1.18.1 installation.
        • This will effectively connect V1.18.1 to the V1.11 database (yes - I do have the backup!)
      4. Restart V1.18.1
      5. Cross fingers !!!

      So:

      • Will this work?
      • I am worried that V1.18.1 will alter the V1.11 DB in such a way that it breaks something and flipping back to V1.11 will no longer work

      Any advice welcomed.

        RobClark

        That’s the whole point of doing backups so you can recover if something goes wrong. Also I would never recommend a softaculous install; ever.

        All you need to do is shut down the existing osTicket by turning offline and disable email fetching, make a full mysqldump of the database, make a full backup of the site folder, download the latest codebase and any plugins, remove all old files (keeping the include/ost-config.php file handy), place all new files from upload/ to the site folder, place new builds of plugins in the plugin folder, copy over the include/ost-config.php file, upgrade PHP to a supported version, visit the site, and run the upgrader.

        Cheers.

        Made some progress .... but the Update is failing.

        Summary:
        Old installation = V1.11, PHP7
        New = V1.18.1, PHP8.1

        Steps followed:

        1. Backup V1.11 db & Code base
        2. Install new V1.18.1 in new folder
        3. Run V1.18.1. Ran fine with admin login.
        4. Copy include/ost-config.php from OLD -> NEW
        5. Login as Admin
        6. Upgrader appears. See Screenshot. Requirements are met.
        7. Start Upgrader. See screen shot.
        8. Upgrader fails. See screen shot
        9. Check System log. See screen shot.
        10. See error related to Table 'ost3_thread_event_new' already exists
        11. Manually drop table ost3_thread_event_new
        12. Re-run upgrader. Same error

        Here is the full System log error

        [
        /** 
        * @signature e69781546e08be96d787199a911d0ffe 
        * @version v1.14.0 * @title Thread Type 
        * 
        * This patch adds a new field to the Thread Event table called thread_type 
        * it allows us to be able to delete threads and thread entries when a ticket * is deleted while still maintaining dashboard statistics 
        * 
        */ 
        CREATE TABLE `ost3_thread_event_new` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `thread_id` int(11) unsigned NOT NULL default '0', `thread_type` char(1) DEFAULT '', `event_id` int(11) unsigned DEFAULT NULL, `staff_id` int(11) unsigned NOT NULL, `team_id` int(11) unsigned NOT NULL, `dept_id` int(11) unsigned NOT NULL, `topic_id` int(11) unsigned NOT NULL, `data` varchar(1024) DEFAULT NULL COMMENT 'Encoded differences', `username` varchar(128) NOT NULL default 'SYSTEM', `uid` int(11) unsigned DEFAULT NULL, `uid_type` char(1) NOT NULL DEFAULT 'S', `annulled` tinyint(1) unsigned NOT NULL default '0', `timestamp` datetime NOT NULL, PRIMARY KEY (`id`), KEY `ticket_state` (`thread_id`, `event_id`, `timestamp`), KEY `ticket_stats` (`timestamp`, `event_id`) ) DEFAULT CHARSET=utf8
        ] 
        Table 'ost3_thread_event_new' already exists

        Suggestion to complete the upgrade?

        RobClark

        I would recommend restoring database from backup and rerunning the upgrader.

        Cheers.

        Kevin,

        Repeated the process:

        1. Removed the new installation (both db & code)
        2. Started from scratch
        3. Same errors.
          Table 'ost3_thread_event_new' already exists

        Is there a way of kicking off the upgrade

        1. From the CLI?
        2. One step at a time? Just wondering if the installation script is being killed by the hosting service (hostgator) because it does take a long time. That is a wild guess. Just an idea.

          RobClark

          Yes, in my experience this type of issue means the request is exceeding some time/size limit on the server. Unfortunately you can't really do anything about this on the osTicket side. You'd have to increase the PHP and Apache limits on the server and redo the Upgrade. You can try clicking Upgrade Now button over and over until it completes but in some cases it refuses to continue.

          Cheers.

          Write a Reply...