Installatron response

I’ve been in touch with Installatron to ask if they’d consider adding ClassicPress to their app installer. This is their response:

We’re aware of ClassicPress and we’ll certainly be having a close look at it at the next round of new installers. Unfortunately we can’t consider it right at the moment because we have too much work to do (and, frankly, WordPress is maybe a much as a 3rd of our maintenance and support load already so we need to be careful adding a sibling :}.

But we like the sound of it and we’ll certainly give it serious consideration when we’re next adding installers.

Not exactly the most encouraging of responses but not entirely hopeless either?

It’d be good if we could get Softaculous on board as it might then encourage Installatron to move it up their “to do” list.

3 Likes

Exactly. If one does it then I’m sure the other will want to keep up.

3 Likes

We use Installatron … it has olde versions of WP going back a very long way … so we install WP4.9, and convert to CP.

4 Likes

Thanks @davidmcc3 - this looks like a very good approach for now!

I’ve been back in touch with Installatron and have had quite a positive, detailed response as follows:

I’m afraid we haven’t had a chance to look at new applications since our last contact, but I’m interested to hear what would be involved in installing/updating the app. Just to get an idea of how easy it would be to support. WordPress is not an easy application to support, unfortunately.

I’m just looking at the WP installer and goodness there’s a lot going on. :slight_smile:

A lot of it is legacy patching from old versions; patches that we keep in because we can never really be sure when they’re no longer needed.

Like for example:

  • The first thing the installer does is create 3 directories:

    $this->mkdir(array(
        "wp-content/languages",
        "wp-content/uploads",
        "wp-content/uploads/et_temp",
    ));
    
  • For any other app they would be included in the archive with an index.php or .htaccess file to retain them during compression and extraction.

  • Then the installer does this:

    if (version_compare($this->env["has_php"], "5.4", "<"))
    {
        $r = array();
        for ( $i = 2019; $i < 2022; ++$i)
        {
            $r[] = "wp-content/uploads/$i";
            for ( $j = 1; $j < 13; ++$j)
            {
                $r[] = "wp-content/uploads/$i/".sprintf("%02d",$j);
            }
        }
        $this->mkdir($r);
    }
    

    (That, to save you from deciphering it, creating a number of directories inside /uploads/ in the case where PHP < 5.4, just in case safe_mode is enabled.)

  • Then the installer writes a .htaccess file where the content depends on whether ‘MultiSite’ is to be enabled or not.

  • Then the config file is written, with customizations that depend on things like; whether the server has suexec enabled, whether safe_mode is enabled, whether multisite is enabled, and whether ‘live demo’ is enabled’.

  • Next we try to install the app. This involves faking the manual installer using POST calls to wp-admin/install.php?step=… If that works and if multisite is enabled then there are more install calls.

  • If, on the other hand, that install didn’t work then Installatron tries again by directly importing install.sql (bypassing the manual install script altogether).

  • Then there’s more multisite install code.

  • Then some ‘permalinks’ customization if the server supports it.

  • Then some customization of the database.

  • More multisite.

  • A run of the app’s own upgrade.php script for good measure.

  • More multisite.

  • Creates a .htaccess at wp-includes/.htaccess because WordPress itself either doesn’t provide one or if it does then we’ve found it’s not great.

  • And finally, after all that, the installer creates a fake Wordpress plugin in ./wp-content/mu-plugins/ that suppresses a warning from WP’s “Site Health” tool, which would complain that auto-upgrading has been disabled within the app (the installer disables it because Installatron will handle auto-upgrading, not the app).


So, that’s a lot of steps and dependencies. And it all needs to be checked again with each new release.

What would the ideal install look like? It would be either of these:

1. The .SQL Approach

  • The installer extracts the files, either directly into the install location or into a subdirectory from where it can move the files into the install location.
  • CHMOD a small list of files and directories (a list that will ideally never change).
  • possibly edit a .htaccess file.
  • write or edit a config file.
  • Import a .sql file that builds the database tables (found at ./install/db/install.sql for example). Installatron will probably customize the db-table-prefix values first.
  • Edit some db table entries; admin password, email address, etc.
  • Done.

– or –

2. Fetch calls

  • The installer extracts the files, either directly into the install location or into a subdirectory from where it can move the files into the install location.
  • CHMOD a small list of files and directories (a list that will ideally never change) to 0666 and 0777.
  • Perform one or more fetch calls on the app’s install script. Preferably 1 fetch call, with all the parameters in POST, but more can be okay.
  • Unset some CHMOD values, setting them back to their defaults.
  • Done

Just thinking out loud, wondering what the best case scenario would be. :smiley:

The hope with this latter one is that the install would write all the config/.htaccess files.

As you can see, quite a comprehensive and helpful response. A lot of their issues with WP seem to stem from legacy versions and both of those two code snippets above look pretty dated to me.

Any thoughts on the best way forward?

5 Likes

Wow. Good work. It seems they are seriously looking into this. Hopefully one of our devs will be able to provide some answers.

Thanks for pushing this along. I have been asking regularly on Softaculous forum with no results, but if Installatron do something I’m sure they will follow suit.

5 Likes

Yes, let’s hope so.

3 Likes

Tagging @james to make sure he sees it – great work, @1stepforward!

3 Likes

Haven’t had time to sit down and look at this yet.

Is this an email thread? If so, probably the easiest way is to include me on it -

1 Like

There’s no email thread unfortunately. I created a support ticket. I’ll pm you the details.

2 Likes

Another quick update from Installatron:

Lean and clean installs and upgrades would be music to our ears.

Plus I just thought of another thing that Installatron’s end-users (and administrators) like: language support. And not all apps make that easy to do from installation.

So if all we need to do is ask the user what language they’d like it to be installed in and then add a "language" => "fr" POST parameter to a fetch call somewhere then that would be perfect as well.

3 Likes

More news re Installatron.

@james and I have been working with Installatron over the past 2 or 3 weeks to finalise the installation script for ClassicPress. And, we’re very nearly there now.

I think we can expect to see ClassicPress in the Installatron apps within the next week or so. Here’s a sneak peek :slightly_smiling_face::

13 Likes

Fantastic work Tim. That will be a huge step forward in promoting uptake. Really impressed with that achievement. Well done to you and James. :clap:

4 Likes

You know we’re on a winner when that happens.

6 Likes

I agree with @Aussie on the “don’t say cat till you’ve caught it”.
But…
I also think that when people like Softaculous are going to that see installation made the early bird with ClassicPress they are going to “at least” keep an eye out to see what happens and maybe they are going to think about having their own installation script.
AND
Don’t forget that if you are there, you are in the same shop as WP. I mean, ClassicPress install icon will be near WP’s install icon on a shelf. In front of everybody. Plus CP is “new” so it gives the idea of “more recent and advanced tech”.

4 Likes

That’s not what I meant. I mean you know what we’re doing is working when people like Installatron are going to add us.

4 Likes

It’s taken 6 months of to-ing and fro-ing but we got there in the end. Persistence is key. But to be fair to Installatron, they have been very helpful.

There’s just one little niggle to sort out and then it can go live. The little niggle is simply that the default tagline in the installer is set to “Just another ClassicPress site” instead of " Another great website powered by ClassicPress".

And yes…Softaculous next :grinning:

12 Likes

I don’t generally use installers, and none of my current servers use installatron, but it good to see and certainly helps raise the profile of ClassicPress.
And I agree with the tagline change. I don’t like the “Just a” tagline whether for a website or people applying it to themselves, “I’m just a …” Be what you are and be proud of it.

7 Likes

Way to go, @1stepforward and @james… bravo!

7 Likes

This is joyous news indeed! Thanks for your ambassadorial work. This surely is @1stepforward :wink:

8 Likes