2 Aug 2013 • 1 minute read
apt-get install php5 on a Debian/Ubuntu server, you’ll notice that APT will automatically install a bunch of
apache2 packages as well. This can be pretty annoying if you’re planning on using another web server (or no web server at all).
If you take a look at the package dependencies (Debian/Ubuntu) you’ll see why this happens -
php5 needs one of either
php5-fpm. APT doesn’t care which package it installs; it just picks the first package that satisfies the dependency, which is why you get the
You can get around this by installing one of the other dependencies before (Read more) 23 Sep 2012 • 1 minute read
php5. For example,
apt-get install php5-fpm php5 or
apt-get install php5-cgi php5.
After upgrading php-fpm, my PHP-based sites were returning “502 Bad Gateway” errors. This can happen when the php5-fpm package reconfigures itself to listen on a different socket. Here’s how you can solve it.
Check to make sure that php-fpm is running with
ps aux | grep php - if you can’t see any php-fpm processes in the output, then you may need to re-install php-fpm. If php-fpm is running okay, then skip this first step.
sudo apt-get remove php5 php5-cgi php5-fpm
sudo apt-get install php5 php5-cgi php5-fpm
The thing to notice here is that the order in which you install the packages is important. In the past I have found that installing them in the wrong order causes the packages to be configured incorrectly.
Next, get php-fpm to listen on the correct host/port. In
/etc/php5/fpm/pool.d/www.conf change the
listen value to match the
fastcgi_pass location in your Nginx configuration. For example, I changed mine from:
listen = /var/run/php5-fpm.sock
If you are configuring php-fpm to listen on a Unix socket, you should also check that the socket file has the correct owner and permissions. While I wouldn’t recommend it, you can simply give read-write permissions to all with
sudo chmod go+rw /var/run/php5-fpm.sock.
Restart php-fpm with (Read more) 25 Jun 2011 • 1 minute read
sudo service php5-fpm restart and everything should work normally again.
It’s debatable whether or not it’s good practice to use short syntax in PHP. I personally prefer to use short syntax because it keeps my view files looking tidy.
The regular expression below will find all one-liner
echo statements (e.g.
<?php print $var; ?>) and convert them to
<?= $var ?> statements. It will not match statements containing closing brackets, for example when using ternary operators:
<?= ($foo == $bar) ? 'Foobar' : 'Foo' ?>