Coverd Tech Blog

Upgrading to php 7.3

July 10, 2019

After upgrading symfony from 4.2 to 4.3, I encountered an error with the bin/console clear:cache command when deploying on heroku. It seems that my fixtures directory was being warmed-up while the faker bundle is only available in dev. I tried some fixes but nothing worked so I decided to upgrade php from 7.2 to 7.3 as well as the dependencies to get all issues at the same time.

I updated my composer.json to look like this:

{
    "type": "project",
    "license": "proprietary",
    "require": {
        "php": "^7.3",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "ext-intl": "*",
        "ext-memcached": "*",
        "ext-newrelic": "*",
...
}

Then a composer update --ignore-platform-reqs run and things worked great again on Heroku! I tested things completely in my heroky preprod environment and deployed to prod \o/

That’s when things got complicated … on my local environment :( I updated to php 7.3 with homebrew, started my webserver with the symfony command bin/console server:start 0.0.0.0:8000

nothing-running-on-port-8000

Some searches pointed out segfault errors on php 7.3.X installed with homebrew First, I updated my php.ini with pcre.jit=0 and the webserver worked again, youhou!

After playing a bit locally, server crashed again :( First I tried to upgrade every package of homebrew with:

brew update
brew upgrade

New searches pointed out that there is a problem with curl downloaded from homebrew. To install a version containing the fix:

brew remove curl-openssl --ignore-dependencies curl-openssl
brew install -s https://raw.githubusercontent.com/Homebrew/homebrew-core/e47f3e2682fa3d8a6ee58ded40718a1326e08a6d/Formula/curl-openssl.rb

Now everything is working fine locally until next issue \o/

EDIT (July 15, 2019): After upgrading every package yarn got updated. I had to remove it and install it with npm:

  1. brew remove -f yarn
  2. npm install -g yarn@1.9.4

Resources:


Nicolas Schwartz

Written by Nicolas Schwartz, co-founder & CTO @Coverd, ex-BlaBlaCar who loves to build things. You should follow him on Twitter