A few weeks ago, I discovered the WordPress “Site Health Status” tool. I saw that it recommended upgrading my outdated version of php so, being a good “computer guy”, I went ahead and did the upgrade. After the update, I found that I could not view my website. After digging around to remind myself about the
sudo apachectl -k restart
command, I got the error message
httpd: Syntax error on line 183 of /usr/local/etc/httpd/httpd.conf: Cannot load /usr/local/opt/php@7.0/lib/httpd/modules/libphp7.so into server: dlopen(/usr/local/opt/php@7.0/lib/httpd/modules/libphp7.so, 10): Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib\n Referenced from: /usr/local/opt/php@7.0/lib/httpd/modules/libphp7.so\n Reason: image not found
Since I use the Homebrew package manager, I followed the advice to do a
brew upgrade
brew cleanup
However, even after doing this, I found I still had the problem. Trying other advice, I tried reinstalling php, and saw advice that filled in the details specific to my computer’s environment from this documentation from the Homebrew Formulae page on php:
To enable PHP in Apache add the following to httpd.conf and restart Apache:
LoadModule php7_module $(brew –prefix)/opt/php/lib/httpd/modules/libphp7.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Finally, check DirectoryIndex includes index.php
DirectoryIndex index.php index.html
The php.ini and php-fpm.ini file can be found in:
$(brew –prefix)/etc/php/7.4/
This solved the problem! One catch: I had to edit the correct copy of the httpd.conf
file. Unfortunately, I wasted several hours repeating the process a few times, editing a copy of the file in a place other than the path indicated right within the error message!
I am glad to have this problem fixed and the site up and running again. Now to get back to my next hobby programming project, which I hope I might publish soon….