I am currently running php 7.3 on MacOs 10.15
Since I want to upgrade to 7.4 I tried to do it with Homebrew. Everything works fine and after updating the path if I run php -v I see the 7.4 version.
I tried to update apache also but here I have the issue.
I changed this line:
LoadModule php7_module libexec/apache2/libphp7.so
to this one
LoadModule php7_module /usr/local/opt/php#7.4/lib/httpd/modules/libphp7.so
but now apache will not start again. The path is fine, apachectl configtest complains about that line I have edited but doesn't provide any meaningful information on what is wrong.
Did anyonwe face the same already? What can be the cause?
Related
Suddenly, without any change, I get this error on apache start:
httpd: Syntax error on line 534 of /usr/local/etc/httpd/httpd.conf:
Cannot load /usr/local/opt/php#7.1/lib/httpd/modules/libphp7.so into server:
dlopen(/usr/local/opt/php#7.1/lib/httpd/modules/libphp7.so, 10):
Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
Referenced from: /usr/local/opt/php#7.1/lib/httpd/modules/libphp7.so
Reason: image not found
Checking for the files they do exist on the folders so I'm wondering why this error is occurring.
If I change on httpd.conf this line
LoadModule php7_module /usr/local/opt/php#7.1/lib/httpd/modules/libphp7.so
to
LoadModule php7_module /usr/libexec/apache2/libphp7.so
Apache does start but now the SQL PDO driver is not working like it used to be... Any thoughts why this error occurred in the first place or how to fix it properly?
you can try upgrading and re-installing the Homebrew PHP version should fix that. It worked for me with MacOS Mojave.
brew update
brew upgrade
brew reinstall php71
Then check if your httpd.conf is linked to this PHP:
LoadModule php7_module /usr/local/opt/php#7.1/lib/httpd/modules/libphp7.so
And, re-start apache:
sudo apachectl -k restart
As mentioned by #LuizEduardoMPF
brew update
and
brew upgrade resolved the issue for me. I didn't need to reinstall PHP or make any changes to the config file.
I'm using Mac os Mojave.
Just sharing what worked for me.
So I've been following along with This Tutorial, which helps configure Apache 2.4 with multiple versions of PHP. Everything was going quite smoothly, and all of my PHP versions worked, except for 7.1. When attempting to start the Apache server to receive the phpinfo of 7.1, I received the following error message:
httpd: Syntax error on line 178 of
/usr/local/etc/apache2/2.4/httpd.conf:
Cannot load /usr/local/opt/php71/libexec/apache2/libphp7.so into server:
dlopen(/usr/local/opt/php71/libexec/apache2/libphp7.so, 10): image not found
This is the code that exists on line 178:
LoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so
I tried running
brew reinstall php71 --with-httpd24
and restarted the Apache server. Still receiving the same error message. Any idea what went wrong? I appreciate any responses! Many thanks!
I had the same problem.
For me, homebrew has a different folder structure in /usr/local/opt where folders are more like /usr/local/opt/php#7.1
So I needed to find where libphp7.so lived, or if it existed at all.
Running find /usr -name "libphp7.so"
Came back with:
/usr/libexec/apache2/libphp7.so and
/usr/local/Cellar/php#7.1/7.1.15/lib/httpd/modules/libphp7.so
Both work in place of /usr/local/opt/php71/libexec/apache2/libphp7.so for me and I'll update if required in the future.
So I updated httpd.conf to use
LoadModule php7_module /usr/local/Cellar/php#7.1/7.1.15/lib/httpd/modules/libphp7.so
Then I restarted apache with sudo apachectl -k restart and all is well.
I'm getting this error with the brew install php. then
apachectl -t to test syntax
httpd: Syntax error on line 180 of /private/etc/apache2/httpd.conf: Cannot load /usr/local/Cellar/php/7.3.2/lib/httpd/modules/libphp7.so into server: dlopen(/usr/local/Cellar/php/7.3.2/lib/httpd/modules/libphp7.so, 10): Symbol not found: _sqlite3_enable_load_extension\n Referenced from: /usr/local/Cellar/php/7.3.2/lib/httpd/modules/libphp7.so\n Expected in: /usr/lib/libsqlite3.dylib\n in /usr/local/Cellar/php/7.3.2/lib/httpd/modules/libphp7.so
For some reason??? I found the libphp7.so here
LoadModule php7_module /usr/libexec/apache2/libphp7.so
Plugged it in and it works.
However - I'm no clearer as to why the first one is failing.
Homebrew instructed to add this to my httpd.conf file:
LoadModule php7_module /usr/local/opt/php#7.1/lib/httpd/modules/libphp7.so
I tried stopping and restarting only to get the same error. After updating several times with different options, this one finally worked for me.
LoadModule php7_module /usr/libexec/apache2/libphp7.so
I had a PHP update, the file path has been changed. I changed the module path in httpd.conf.
Before:
LoadModule php7_module /usr/local/opt/php#7.4/lib/httpd/modules/libphp7.so
After:
LoadModule php7_module /usr/local/Cellar/php/7.4.12/lib/httpd/modules/libphp7.so
I had the same issue but with php 7.2.
Running brew linkage php showed that there were some broken dependencies.
So running brew update && brew upgrade resolved it for me.
in usr/local/opt there was an folder(alias) php only
`Just duplicate the php Alias-Folder and rename it to php#7.4`
after that
sudo apache graceful
I was done
I've changed the path of php7.4 on httpd.conf
I downloaded and installed php 5.6 from php-osx.liip.ch and also edited the path to /usr/local/bin in /.bash_profile.
I am getting php version 5.6.19 in terminal, but when I execute phpinfo(); I still see the previous 5.4 version
also the php info shows that the php.ini lies in /etc directory
how can I solve this?
Although this is 3 months old, this just happened to me yesterday with the same installer (php-osx.liip.ch), so here's my solution.
In my case, the apache configuration (httpd.conf) was pointing to the old php extension:
LoadModule php5_module libexec/apache2/libphp5.so
When it should be this:
LoadModule php5_module /usr/local/php5/libphp5.so
Your path should be the same as mine. My httpd.conf is on /private/etc/apache2/httpd.conf
After editing httpd, restart apache and phpinfo() should return the correct version.
I have been having trouble getting PHP to install on my 64-bit Win 7 machine with Apache. I'm new to installing software that doesn't come shrink-wrapped and I have run out of useful docs/links to read.
Here is what I have done:
Installed Apache 2.4.18 win64 (which is built with VC14) from Apache Lounge. This works - my browser says "It works!" when I visit my docroot.
Downloaded the VC14 x64 Thread Safe (2016-Jan-06 23:30:09) PHP zip from windows.php.net and extracted it to c:/php.
Added LoadModule php5_module "c:/php/php7apache2_4.dll" to httpd.conf.
Downloaded VC_redist64.exe (version 14.0.23506) from Microsoft and installed it.
Tried httpd and I get:
c:\Apache24\bin>httpd
httpd: Syntax error on line 178 of C:/Apache24/conf/httpd.conf: Can't locate API module structure `php5_module' in file C:/php/php7apache2_4.dll: No error
I know I need to add/adjust more in httpd.conf and perhaps php.ini too, but all the help I have found on the web suggests that the problem is elsewhere.
LoadModule php5_module "c:/php/php7apache2_4.dll"
you should change it to:
LoadModule php7_module "c:/php/php7apache2_4.dll"
I replaced the LoadModule with a directive to load php5apache2_4.dll from the Wamp distribution and there seem to be no problems.
You're using PHP7, VC14. So instead of php5_module, use
LoadModule php7_module "c:/php/php7apache2_4.dll"
Result:
c:\Apache24\bin>httpd -t
Syntax OK
I looked all over the internet to get this fixed ... it was just a case-sensitive thing. I changed mine to:
LoadModule php7_module "c:/php/php7apache2_4.dll"
and it fixed the issue.
I installed php 5.4 using homebrew, and verified version 5.4 via terminal php -v.
I commented out the previously used load modules for php4/5, and inputted the suggested line in httpd.conf for apache:
LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so
But my localhost is still using php5.6.11 according to phpversion().
I am on a mac running Yosemite.
Any ideas?