<p>This is how I would go about this (in a local or dev environment):</p>
<h3>PHP</h3>
<p>First, activate PHP 7.4 and check if the site still works as it should (frontend, backend). I don't know exactly if version 3.3.4.1 works with PHP 7.4, but it's easier to switch back to an older PHP-version than reverting a Craft upgrade.</p>
<h3>Craft</h3>
<p>After you've made sure that the site still works, you can start the upgrade to Craft 3.6.11.2. I would kindly but strongly suggest that you use Craft's command line commands for this. In our experience, this gives you more detailed error messages.</p>
<ul>
<li>First, make a backup of both your files and database (create a server snapshot, or manually create a backup)</li>
<li>Now, open a terminal. Don't be scared, you'll love it. Or not, depending on the outcome of this experiment.</li>
<li>Navigate to your project's root folder.</li>
<li>Run <code>./craft update</code> &lt;-- This will run the <code>craft</code> script in the current folder (<code>./</code>) and then it tells Craft to run the <code>update</code> command. This command will only show you what needs to be updated, it will not update anything.</li>
<li>Now, you should see a list of updates of both Craft and plugins. I'd start by updating Craft itself. Baby steps, you know?</li>
<li>Run <code>./craft update craft</code> &lt;-- This tells Craft to update ... itself. In the background, <code>composer.json</code> will be changed and Composer will update Craft. If that fails, Craft will tell you why. If something goes wrong, Craft will ask you if you want the changes to <code>composer.json</code> reverted. If you choose to do this, you can then fix the problem and run the update again. If you don't revert the changes, you can fix the problem and run <code>composer update</code>. If you update Craft using Composer, you'd still have to run <code>./craft migrate/all</code> to run any database migrations that come with newer versions.</li>
<li>If the update succeeds, you can then <code>./craft update all</code>, to update all plugins. This, again, changes your <code>composer.json</code> file and runs Composer in the background.</li>
</ul>
<h3>Common pitfalls</h3>
<p><strong>File or folder permissions</strong></p>
<p>Your vendor folder, your <code>config/project</code> folder ... Craft <a href="https://craftcms.com/docs/3.x/installation.html#step-2-set-the-file-permissions" rel="nofollow noreferrer">needs permission</a> to change things in order to proceed with the update. Check your permissions and try again.</p>
<p><strong>Composer mismatches</strong></p>
<p>A failing update could be Composer throwing an error. For instance, if your <code>composer.json</code> file explicitly says &quot;Use PHP 7.0&quot;, and Craft 3.6 requires PHP 7.2, you'd get an error. In this case, alter <code>composer.json</code> and try again.</p>
<h3>Luck and common sense</h3>
<p>Most of the times, Craft updates just work. If they don't, put on your smart hat and try to read the errors that Craft or Composer throws at you. Another great place to look for errors is Craft's log (<code>storage/logs/web.log</code>). It's much easier to come up with a solution if you know what the problem is. Good luck, and remember ... backup first!</p>

CC BY-SA 4.0
2021-04-09T09:06:00.057Z
Ideally I want to run this on the production site. As setting up a local copy is such a pain in the ****. I have tried MAMP, Local and Nitro and every one is time consuming to set up and then sometimes doesn't work, and then transferring to production adds another load of pain. I usually make a copy of the craft folder on the server and backup the database. Then if it all fails I can just reuse the copied folder and use the database backup to get back to where I was. It's a pain but less of a pain than setting up a local copy.
Paul Frost
CC BY-SA 4.0
2021-04-09T09:09:18.567Z
I'll have another go today using your suggestions. The pain of updating is why I don't do it more frequently, even though more frequent updates would probably be less likely to fail.
Paul Frost
CC BY-SA 4.0
2021-04-11T11:06:15.407Z
I've logged in via ssh and into the craft directory (which I've renamed basoc_craft) and I run ./craft update and nothing happens. I don't get a list of available updates.
Paul Frost
CC BY-SA 4.0
2021-04-12T16:58:31.553Z
Does ``craft`` exist in that folder? You can try running ``php craft`` inside that folder and see what happens...
RitterKnight
CC BY-SA 4.0
2021-04-13T09:50:24.957Z
What DO you get when run either `./craft update` or `php craft update`?
Paul
CC BY-SA 4.0
2021-04-16T20:21:28.553Z
After a lot of experimentation I got it working. I gave up on trying to update the maps plugin (it failed every time) and removed it and then re-installed the latest version and re-created the data for each entry manually. I changed how the files on the server are located to replicate the standard Craft install (I had them in a separate Craft folder rather than at the home level), not sure if that helped or not. But I frequently had problems running composer instructions and it not finding the assets folder. I've now done 2 sites successfully.
Paul Frost
CC BY-SA 4.0
2021-04-08T21:10:45.463Z
2021-04-08T21:10:45.463Z
Paul
<p>What is the best way to do this?
I also have a number of plugins that all need updating from the same time period.
I don't think any of the breaking changes affect anything I've done, but I wonder/expect that some plugins may need to be updated to work with the new craft versions.</p>
<p>The PHP requirements changed twice during the various updates.
I'm currently running PHP 7.2 but I know that Craft 3.6 needs 7.2.5 or later.
I can make 7.4 available but do I change it before I start the updates or after.</p>
<p>I have already tried doing this once from the control panel, and Craft seemed to update and the control panel was available but all the plugins were disabled and when I tried to update any plugin it failed and I got an Internal server error page. The composer.json file hadn't been updated to show the new version of craft, I tried editing it and changing the PHP version in the config.platform but still couldn't update any plugin.</p>
<p>I can ssh into the server but my command line knowledge is very limited and potentially dangerous.</p>
<p>My server is already running composer 2.0.6</p>

CC BY-SA 4.0
2021-04-08T20:31:51.430Z
Is this a production environment, or a local/dev environment? In other words, how bad would it be if something were to go wrong?
Paul
<plugins><php><updates>
Update from 3.3.4.1 to 3.6.11.2 advice
# Update from 3.3.4.1 to 3.6.11.2 advice

(Asked by: username_0 on 2021-04-08)

What is the best way to do this?
I also have a number of plugins that all need updating from the same time period.
I don't think any of the breaking changes affect anything I've done, but I wonder/expect that some plugins may need to be updated to work with the new craft versions.

The PHP requirements changed twice during the various updates.
I'm currently running PHP 7.2 but I know that Craft 3.6 needs 7.2.5 or later.
I can make 7.4 available but do I change it before I start the updates or after.

I have already tried doing this once from the control panel, and Craft seemed to update and the control panel was available but all the plugins were disabled and when I tried to update any plugin it failed and I got an Internal server error page. The composer.json file hadn't been updated to show the new version of craft, I tried editing it and changing the PHP version in the config.platform but still couldn't update any plugin.

I can ssh into the server but my command line knowledge is very limited and potentially dangerous.

My server is already running composer 2.0.6

**Tags:** plugins, php, updates
> **Comments:**
> **username_1**: Is this a production environment, or a local/dev environment? In other words, how bad would it be if something were to go wrong?  

---

## 1 answers

### Answer by username_1 on 2021-04-08. Score: 2 | Accepted answer

This is how I would go about this (in a local or dev environment):

### PHP

First, activate PHP 7.4 and check if the site still works as it should (frontend, backend). I don't know exactly if version 3.3.4.1 works with PHP 7.4, but it's easier to switch back to an older PHP-version than reverting a Craft upgrade.

### Craft

After you've made sure that the site still works, you can start the upgrade to Craft 3.6.11.2. I would kindly but strongly suggest that you use Craft's command line commands for this. In our experience, this gives you more detailed error messages.

* First, make a backup of both your files and database (create a server snapshot, or manually create a backup)
* Now, open a terminal. Don't be scared, you'll love it. Or not, depending on the outcome of this experiment.
* Navigate to your project's root folder.
* Run `./craft update` <-- This will run the `craft` script in the current folder (`./`) and then it tells Craft to run the `update` command. This command will only show you what needs to be updated, it will not update anything.
* Now, you should see a list of updates of both Craft and plugins. I'd start by updating Craft itself. Baby steps, you know?
* Run `./craft update craft` <-- This tells Craft to update ... itself. In the background, `composer.json` will be changed and Composer will update Craft. If that fails, Craft will tell you why. If something goes wrong, Craft will ask you if you want the changes to `composer.json` reverted. If you choose to do this, you can then fix the problem and run the update again. If you don't revert the changes, you can fix the problem and run `composer update`. If you update Craft using Composer, you'd still have to run `./craft migrate/all` to run any database migrations that come with newer versions.
* If the update succeeds, you can then `./craft update all`, to update all plugins. This, again, changes your `composer.json` file and runs Composer in the background.

### Common pitfalls

**File or folder permissions**

Your vendor folder, your `config/project` folder ... Craft [needs permission](https://craftcms.com/docs/3.x/installation.html#step-2-set-the-file-permissions) to change things in order to proceed with the update. Check your permissions and try again.

**Composer mismatches**

A failing update could be Composer throwing an error. For instance, if your `composer.json` file explicitly says "Use PHP 7.0", and Craft 3.6 requires PHP 7.2, you'd get an error. In this case, alter `composer.json` and try again.

### Luck and common sense

Most of the times, Craft updates just work. If they don't, put on your smart hat and try to read the errors that Craft or Composer throws at you. Another great place to look for errors is Craft's log (`storage/logs/web.log`). It's much easier to come up with a solution if you know what the problem is. Good luck, and remember ... backup first!

> **Comments:**
> **username_0**: Ideally I want to run this on the production site. As setting up a local copy is such a pain in the ****. I have tried MAMP, Local and Nitro and every one is time consuming to set up and then sometimes doesn't work, and then transferring to production adds another load of pain. I usually make a copy of the craft folder on the server and backup the database. Then if it all fails I can just reuse the copied folder and use the database backup to get back to where I was. It's a pain but less of a pain than setting up a local copy.  
> **username_0**: I'll have another go today using your suggestions. The pain of updating is why I don't do it more frequently, even though more frequent updates would probably be less likely to fail.  
> **username_0**: I've logged in via ssh and into the craft directory (which I've renamed basoc_craft) and I run ./craft update and nothing happens. I don't get a list of available updates.  
> **username_2**: Does ``craft`` exist in that folder? You can try running ``php craft`` inside that folder and see what happens...  
> **username_1**: What DO you get when run either `./craft update` or `php craft update`?  
> **username_0**: After a lot of experimentation I got it working. I gave up on trying to update the maps plugin (it failed every time) and removed it and then re-installed the latest version and re-created the data for each entry manually. I changed how the files on the server are located to replicate the standard Craft install (I had them in a separate Craft folder rather than at the home level), not sure if that helped or not. But I frequently had problems running composer instructions and it not finding the assets folder. I've now done 2 sites successfully.  

---

