I've been struggling with this all night and can't find an answer that fixes it!
I'm on a mac and using homebrew to install php and nginx, I ran the following which show as successful
brew install php
brew install nginx
no problems so far and I can start both services
brew services start nginx
brew services start nginx
when I run brew services list I get the following
nginx started me /Users/me/Library/LaunchAgents/homebrew.mxcl.nginx.plist
php started me /Users/me/Library/LaunchAgents/homebrew.mxcl.php.plist
however when trying to run a Wordpress site I get the following error in my nginx log
[error] 26099#0: *1 kevent() reported that connect() failed (61: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:8080"
I have googled the problem and it seems that it's normally a problem with nginx passing a request to php-fpm, I have checked the user that is running each service to make sure they match, I have done it as both me and both root to no avail. When I check "brew services list" it shows php in orange which I understand to mean it has actually failed.
I dug a bit further and it seems that if I run 'php -v' I get
PHP 7.2.9 (cli) (built: Aug 23 2018 02:08:27) ( NTS )
but if I run 'php-fpm -v' I get:
PHP 7.1.16 (fpm-fcgi) (built: Mar 31 2018 03:00:16)
I believe this is causing me a problem, I have googled it but haven't got any definitive fixes.
Here is another oddity with it:
$which php
/usr/local/bin/php
$which php-fpm
/usr/sbin/php-fpm
Does anyone have any ideas how I can resolve this?
Thanks in advance!
PHP runs as an isolated service when you use PHP-FPM. Employing this PHP version as the language interpreter means requests will be processed via a TCP/IP socket, and the Nginx server handles HTTP requests only, while PHP-FPM interprets the PHP code.
To find out php version installed on the server type any one of the following commands on your server. Open the terminal prompt and then type the following commands. Are you using php-fpm? Get php version using the php-fmp -v or php-fpm73 -v command.
1. Type the following command, replacing [location] with the path to your PHP installation. 2. Typing php -v now shows the PHP version installed on your Windows system.
Okay I've now got both php -v
and php-fpm -v
returning the same value of php and i did it by running brew doctor
which told me to run echo 'export PATH="/usr/local/sbin/:$PATH"'
so now that I have the same versions running and can confirm that php-fpm is running without failing using lsof -i | grep php-fpm
I'm on to normal problems that people have installing php and nginx on their mac books! So I can rest easy tonight knowing that I am slightly closer to my goal!
I also now have the following
$ which php-fpm
/usr/local/sbin/php-fpm
$ which php
/usr/local/bin/php
Thank you everyone for your time and suggestions :)
ls /etc/php/
5.6 7.0 7.1 7.2
php php-config php-config7.2 php-fpm7.2 php7.2 phpdismod phpenmod phpize phpize7.2 phpquery
php-fpm7.2
as seen here:sudo service php7.2-fpm status
* php-fpm7.2 is running
root@xxx:~# sudo service php5.6-fpm status
php5.6-fpm: unrecognized service
root@xxx:~# sudo service php7.1-fpm status
php7.1-fpm: unrecognized service
The fact you are getting a different version with php
is because that is the version of php that runs in the command line - and it has different settings than what will happen when you use fpm (passed through from nginx). I don't think the CLI php has much to do with your fpm versions. It could be that brew's repositories for php are only up to date for fpm 7.16.. I think I might be installing my PHP from a ppa but I cannot recall off the top of my head.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With