title: Homebrew PHP 7.4 upgrade fails on MacOS 10.15.1 Catalina
body: <p>My attempts to upgrade homebrew PHP 7.3.12 to PHP 7.4.0 have failed.</p>
  
  <p><strong>Here's what I did:</strong></p>
  
  <pre><code>brew update
  sudo brew services stop php
  brew upgrade
  brew cleanup
  brew doctor
  sudo brew services start php
  brew services list
  sudo reboot now
  </code></pre>
  
  <p><strong>Here's what I expected:</strong></p>
  
  <p>The server to come back up as expected.</p>
  
  <p><strong>Here's what happened:</strong></p>
  
  <p>WordPress 5.3 frontend and backend both report the dreaded "Error establishing a database connection" error.</p>
  
  <p>phpMyAdmin reports the following three errors:</p>
  
  <ol>
  <li>Cannot log in to the MySQL server</li>
  <li>mysqli_real_connect(): Unexpected server response while doing caching_sha2 auth: 109</li>
  <li>mysqli_real_connect(): (HY000/2006): MySQL server has gone away</li>
  </ol>
  
  <p><strong>Here's what I did next:</strong></p>
  
  <p>Ensured correct username and password for MySQL.
  Ensured correct hostname.
  Ensured MySQL is running:</p>
  
  <pre><code>mysqladmin -u root -p status
  Enter password: 
  Uptime: 173  Threads: 2  Questions: 3  Slow queries: 0  Opens: 113  Flush tables: 3  Open tables: 35  Queries per second avg: 0.017
  </code></pre>
  
  <p>Made the following changes to the PHP 7.4 ext-opcache.ini file:</p>
  
  <pre><code>opcache.enable = 1
  opcache.enable_cli = 1
  opcache.memory_consumption = 128
  opcache.interned_strings_buffer = 16
  opcache.max_accelerated_files = 50000
  opcache.validate_timestamps = 1
  opcache.revalidate_freq = 2
  </code></pre>
  
  <p>Made the following changes to the PHP 7.4 php.ini file:</p>
  
  <pre><code>expose_php = Off
  max_execution_time = 90
  max_input_time = 90
  max_input_vars = 2000
  memory_limit = -1
  error_reporting = E_ALL &amp; ~E_DEPRECATED &amp; ~E_STRICT
  display_errors = Off
  display_startup_errors = Off
  upload_max_filesize = 3G
  post_max_size = 0
  default_socket_timeout = 180
  date.timezone = America/Chicago
  pdo_mysql.default_socket = /tmp
  mysqli.default_socket = /tmp/mysql.sock
  </code></pre>
  
  <p>installed the following PHP 7.4 extensions:</p>
  
  <pre><code>pecl channel-update pecl.php.net
  pecl install apcu
  pecl install imagick
  pecl install redis
  </code></pre>
  
  <p><strong>Additional information:</strong></p>
  
  <p>My httpd log reports nothing unusual:</p>
  
  <pre><code>[Sat Nov 30 20:53:48.021678 2019] [mpm_prefork:notice] [pid 140] AH00163: Apache/2.4.41 (Unix) OpenSSL/1.1.1d configured -- resuming normal operations
  [Sat Nov 30 20:53:48.021785 2019] [core:notice] [pid 140] AH00094: Command line: '/usr/local/opt/httpd/bin/httpd -D FOREGROUND'
  </code></pre>
  
  <p>Similarly, my MySQL log reports nothing unusual:</p>
  
  <pre><code>2019-12-01T03:07:00.6NZ mysqld_safe Logging to '/usr/local/var/mysql/moriarty.local.err'.
  2019-12-01T03:07:00.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
  2019-12-01T03:07:02.994684Z 0 [System] [MY-010116] [Server] /usr/local/opt/mysql/bin/mysqld (mysqld 8.0.18) starting as process 398
  2019-12-01T03:07:03.012177Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
  2019-12-01T03:07:06.203718Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
  2019-12-01T03:07:06.277615Z 0 [System] [MY-010931] [Server] /usr/local/opt/mysql/bin/mysqld: ready for connections. Version: '8.0.18'  socket: '/tmp/mysql.sock'  port: 3306  Homebrew.
  2019-12-01T03:07:06.337877Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx.sock' bind-address: '127.0.0.1' port: 33060
  </code></pre>