Nginx Installation and Configuration

From Biowikifarm Metawiki
Revision as of 10:49, 28 June 2012 by Gregor Hagedorn (Talk | contribs)

Jump to: navigation, search

Based on

Protocol of preliminary work done so far:

sudo nano /etc/apt/sources.list

add lines:

# necessary only for php-fpm, the php version for nginx:
deb http://packages.dotdeb.org stable all

Add the GnuPG key to your distribution:

wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | sudo apt-key add -
rm dotdeb.gpg

Install:

sudo apt-get update
sudo apt-get install php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd
sudo apt-get install nginx

Change php-fpm configuration with:

sudo nano /etc/php5/fpm/php5-fpm.conf

setting:

pm.max_children = 25
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 1500
request_terminate_timeout = 450s

Change nginx configuration with:

sudo nano /etc/nginx/nginx.conf

adding the settings for

client_max_body_size 20M;
client_body_buffer_size 128k;

edit the default vhost config:

cd /etc/nginx/sites-enabled; nano /etc/nginx/sites-available/default
server {
               listen 80;
               server_name website.com www.website.com;
               access_log /var/log/nginx/website.access_log;
               error_log /var/log/nginx/website.error_log;
               root /var/www/www.website.com;
               index index.php index.htm index.html;
               location ~ .php$ {
                 fastcgi_pass   127.0.0.1:9000;
                 fastcgi_index  index.php;
                 fastcgi_param  SCRIPT_FILENAME /var/www/www.website.com$fastcgi_script_name;
                 include fastcgi_params;
               }
      }


The original default file contains a note:

# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini - we did change that.


(To create symlinks for further vhost files like "www.example.com" under sites-enabled:

ln -s /etc/nginx/sites-available/www.example.com /etc/nginx/sites-enabled/www.example.com

)


NOT YET DONE OR CHECKED, our keys are elsewhere: For ssl on port 443, copy and paste the entire vhost code into the bottom of the vhost file, change 'listen' to 443 and point to the ssl certs:

ssl on;
ssl_certificate /path/to/certificate/www.website.com.crt;
ssl_certificate_key /path/to/certificate_key/www.website.com.key;


Restart php5-fpm and nginx:

sudo /etc/init.d/php5-fpm restart; sudo /etc/init.d/nginx restart

(TEMP: TO TEST on port 8183 first disable fedora:

sudo /etc/init.d/fedora stop
sudo /etc/init.d/php5-fpm restart; sudo /etc/init.d/nginx restart

TESTING http://biowikifarm.net:8183/metawiki/index.php?title=Upgrades_and_Changes&diff=0&oldid=3936 results in: "502 Bad Gateway - nginx/1.2.1" REVERT WITH:

sudo /etc/init.d/php5-fpm stop; sudo /etc/init.d/nginx stop
sudo /etc/init.d/fedora start

)


Test port: next time try 8880!