Tuesday, June 10, 2014

Install PHP-FPM 5.4 in Ubuntu 12.04.4 + Nginx

For the startup i'm following https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-12-04 tutorial to installing LEMP (Linux, nginx, MySQL, PHP) in my VPS. The server Run perfectly. But then for my project i used Laravel 4.2 which required PHP 5.4 for minimal requirement. So then i upgrade the PHP by following http://www.dev-metal.com/how-to-install-latest-php-5-4-x-on-ubuntu-12-04-lts-precise-pangolin/:
sudo apt-get update
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php5-oldstable
sudo apt-get update
sudo apt-get install php5-fpm
After that when i try to view page that contain php code, the server going error.
I view Nginx error from "/var/log/nginx/error.log"
2014/06/10 06:37:18 [crit] 481#0: *1 connect() to unix:/var/run/php5-fpm.sock:", host: "yourdomain.com"

Then found some solution from http://www.queryadmin.com/921/connect-unix-var-run-php5-fpm-sock-failed/:
Edit the pool file "/etc/php5/fpm/pool.d/www.conf" and change:
listen = /var/run/php5-fpm.sock
to this:
listen = 127.0.0.1:9000
Edit the Nginx vHost file "/etc/nginx/sites-available/default" and change:
location ~ \.php$
{
    ...
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    ...
}
to this:
location ~ \.php$
{
    ...
    fastcgi_pass 127.0.0.1:9000;
    ...
}
** If you wrote the fastcgi_pass on /etc/nginx/fastcgi_params file, edit it too.

Restart PHP5-FPM service:
/etc/init.d/php5-fpm restart
Restart Nginx service:
/etc/init.d/nginx restart

That's it, you may solved the issue now. Have Fun.

Friday, June 6, 2014

Redirect Loop when PhpMyAdmin as SubFolder in Laravel Public Directory

If you use laravel in a hosting then you add PhpMyAdmin as subfolder in Laravel Public Directory, you may get error message as seen in image below:


For the solution, you can do one of the following guide:
1. Visit PhpMyAdmin with:
 http://yourdomain.com/phpmyadmin/index.php 
or
2. Open .htaccess file in laravel public folder, then comment out/remove line below:
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301] <-- Comment Out or Remove this line

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
That's it, you can access PhpMyAdmin normally.