<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2522809258870095369</id><updated>2011-11-06T07:18:24.804-08:00</updated><category term='ssl'/><category term='Ubuntu'/><category term='vps+ ubuntu+ nsd3+ nginx+ fastcgi+ drupal 6+ tutorial'/><category term='self signed certificate'/><category term='bind9'/><category term='nginx'/><category term='bash+ send email+ Linux+ script'/><category term='Tahoma'/><category term='dns server'/><title type='text'>vpsdiary</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vpsdiary.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vpsdiary.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>vpsdiary</name><uri>http://www.blogger.com/profile/06481323225359318351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2522809258870095369.post-7633067103062158888</id><published>2010-07-13T10:07:00.000-07:00</published><updated>2010-07-16T16:32:26.187-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dns server'/><category scheme='http://www.blogger.com/atom/ns#' term='bind9'/><title type='text'>Setting up bind9 dns sever on VPS</title><content type='html'>Setting up bind can be a real pain in the arse.*&lt;br /&gt;So here is the last working config that finally worked on enotch VPS&lt;br /&gt;&lt;br /&gt;assuming:&lt;br /&gt;&lt;br /&gt;example.com : the domain,&lt;br /&gt;1.2.3.4 : the VPS first dedicated IP&lt;br /&gt;ns1.myname.com, ns2.myname.com: the nameservers that you'd like to define on the vps&lt;br /&gt;5.6.7.8 and 9.10.11.12 are IPs which are provided by your vps  hosting and you find in /etc/resolv.conf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First and foremost all you need to define ns1 and ns2 in myname.com registrar and point them to 1.2.3.4 . Then define&lt;br /&gt;ns1.myname.com&lt;br /&gt;ns2.myname.com&lt;br /&gt;&lt;br /&gt;in the control panel of example.com registrar.&lt;br /&gt;&lt;br /&gt;It takes a couple of hours for dns servers to propogate. Be patient!&lt;br /&gt;&lt;br /&gt;Note: It is recommended a separate IP for each ns so you'd better have 1.2.3.5 for ns2, but it is not absolutely necessary, and here I present the minimal approach that worked for me.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nano /etc/hosts&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;127.0.0.1 localhost.localdomain localhost&lt;br /&gt;# Auto-generated hostname. Please do not remove this comment.&lt;br /&gt;1.2.3.4 mx.example.com mx&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;nano /etc/bind/named.conf.local&lt;/blockquote&gt;note : the mx.example.com mx is the configuration recommended by &lt;a href="http://dtcsupport.gplhost.com/PmWiki/DebianExpressSetup"&gt;DTC&lt;/a&gt; (Domain Techonologie Contorole, a free GPL control panel)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;zone "example.com" {&lt;br /&gt;type master;&lt;br /&gt;file "/etc/bind/zones/example.com.db";&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;zone "3.2.1.in-addr.arpa" {&lt;br /&gt;type master;&lt;br /&gt;file "/etc/bind/zones/rev.3.2.1.in-addr.arpa";&lt;br /&gt;};&lt;/blockquote&gt;&lt;br /&gt;Ok, now make a zone file and put the above files in it:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;cd /etc/bind&lt;br /&gt;mkdir zones&lt;br /&gt;nano example.com.db&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Here is a typical example.com.db zone using ns1.myname.com nameserver:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;; BIND data file for example.com&lt;br /&gt;;&lt;br /&gt;$TTL    14400&lt;br /&gt;@       IN      SOA     ns1.myname.com. info.myname.com. (&lt;br /&gt;            201006601         ; Serial&lt;br /&gt;                  7200         ; Refresh&lt;br /&gt;                   120         ; Retry&lt;br /&gt;               2419200         ; Expire&lt;br /&gt;                604800)        ; Default TTL&lt;br /&gt;;&lt;br /&gt;example.com.       IN      NS      ns1.myname.com.&lt;br /&gt;example.com.       IN      NS      ns2.myname.com.&lt;br /&gt;&lt;br /&gt;example.com.    IN      MX      10      mail.myname.com.&lt;br /&gt;example.com.    IN      A       1.2.3.4&lt;br /&gt;&lt;br /&gt;ns1                     IN      A       1.2.3.4&lt;br /&gt;ns2                     IN      A       1.2.3.4&lt;br /&gt;www                     IN      CNAME   example.com.&lt;br /&gt;mail                    IN      A       1.2.3.4&lt;br /&gt;ftp                     IN      CNAME   example.com.&lt;br /&gt;example.com.            IN      TXT     "v=spf1 ip4:1.2.3.4 a mx ~all"&lt;br /&gt;mail                    IN      TXT     "v=spf1 a -all"&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And also define the reverse dns lookup:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nano /etc/bind/zones/rev.3.2.1.in-addr.arpa&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;@ IN SOA myname.com. admin.myname.com. (&lt;br /&gt;2010081401;&lt;br /&gt;28800;&lt;br /&gt;604800;&lt;br /&gt;604800;&lt;br /&gt;86400 );&lt;br /&gt;&lt;br /&gt;IN NS ns1.myname.com.&lt;br /&gt;4 IN PTR myname.com.&lt;br /&gt;&lt;/blockquote&gt;Also make sure that example.com is searched in /etc/resolv.conf.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;search example.com&lt;br /&gt;nameserver 127.0.0.1&lt;br /&gt;nameserver 5.6.7.8&lt;br /&gt;nameserver 9.10.11.12&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Make sure that the hostname is properly defined:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;nano /etc/hostname&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;And add 'mx.example.com' inside.&lt;br /&gt;&lt;br /&gt;restart bind&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;/etc/init.d/bind9 restart&lt;/blockquote&gt;&lt;br /&gt;And now check whether everyting is ok. First install dnsutils to be able to use dig&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;apt-get install dnsutils&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;dig example.com&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;You should see a response like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;; &lt;&lt;&gt;&gt; DiG 9.6-ESV-R1 &lt;&lt;&gt;&gt; example.com&lt;br /&gt;;; global options: +cmd&lt;br /&gt;;; Got answer:&lt;br /&gt;;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 5058&lt;br /&gt;;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;; QUESTION SECTION: ;example.com.            IN    A    ;; ANSWER SECTION:  example.com.          3600    IN    A    1.2.3.4   &lt;br /&gt;&lt;br /&gt;;; AUTHORITY SECTION: example.com.           3600       IN      NS    ns1.myname.com. example.com.           3600       IN    NS    ns2.myname.com.   &lt;br /&gt;&lt;br /&gt;;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1)&lt;br /&gt;&lt;br /&gt;;; WHEN: Tue Jul 13 21:53:06 2010 ;; MSG SIZE  rcvd: 93  &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Also double-check from outside the box. At some point, I had the weird problem that dig responded from inside the box but the domain was not accessible from outside. I guess this could be due to wrong configuration of any of resolv.conf, /etc/hosts or /etc/hostname or something else! But as the last resort, if you messed a lot with your server, probably you find it easier to rebuild your OS and start over.&lt;br /&gt;&lt;br /&gt;Hope this helps other people confused by bind setting.&lt;br /&gt;&lt;br /&gt;----------&lt;br /&gt;* &lt;span style="font-size:85%;"&gt;I am wondering how such a clunky, fiddly thing have survived for such a  long time while there are better alternatives available!&lt;br /&gt;So I  strongly suggest that, if you can avoid bind at any cost and use &lt;a href="https://forum.ramhost.us/bbs/viewtopic.php?pid=1032"&gt;nsd3&lt;/a&gt;  instead. As I experiences, nsd3 uses about 70Mb less of your precious  ram and is far smoother to set up. I had to install bind because nsd was not an option among DNS servers supported by &lt;a href="http://dtcsupport.gplhost.com/PmWiki/DebianExpressSetup"&gt;DTC&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;**Enotch's useless support just demanded to "upgrade to managed" in order to give any  clue to sort out the nameserver mess, so I was left on my own to make my  way).&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2522809258870095369-7633067103062158888?l=vpsdiary.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpsdiary.blogspot.com/feeds/7633067103062158888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpsdiary.blogspot.com/2010/07/setting-up-bind9-dns-sever-on-vps.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/7633067103062158888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/7633067103062158888'/><link rel='alternate' type='text/html' href='http://vpsdiary.blogspot.com/2010/07/setting-up-bind9-dns-sever-on-vps.html' title='Setting up bind9 dns sever on VPS'/><author><name>vpsdiary</name><uri>http://www.blogger.com/profile/06481323225359318351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2522809258870095369.post-6932338101129889990</id><published>2010-07-11T07:25:00.000-07:00</published><updated>2010-07-20T14:57:05.617-07:00</updated><title type='text'>How to solve "perl: warning: Setting locale failed." in debian and ubuntu</title><content type='html'>This annoying message in debian 5 has a simple solution:&lt;br /&gt;&lt;blockquote&gt;dpkg-reconfigure locales&lt;/blockquote&gt;And then choose your encoding of choice, e.g. en_US Utf8&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;Or, in Ubuntu 9.10 or 10.04:&lt;br /&gt;&lt;blockquote&gt;apt-get  install --reinstall language-pack-en&lt;/blockquote&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2522809258870095369-6932338101129889990?l=vpsdiary.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpsdiary.blogspot.com/feeds/6932338101129889990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpsdiary.blogspot.com/2010/07/how-to-solve-perl-warning-setting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/6932338101129889990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/6932338101129889990'/><link rel='alternate' type='text/html' href='http://vpsdiary.blogspot.com/2010/07/how-to-solve-perl-warning-setting.html' title='How to solve &quot;perl: warning: Setting locale failed.&quot; in debian and ubuntu'/><author><name>vpsdiary</name><uri>http://www.blogger.com/profile/06481323225359318351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2522809258870095369.post-8276099354437197741</id><published>2010-07-08T13:37:00.000-07:00</published><updated>2010-07-08T13:40:06.144-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tahoma'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>How to install Tahoma fonts on Ubuntu</title><content type='html'>Simply use this script:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="alt2" dir="ltr" style="margin: 0px; padding: 6px; border: 1px inset; width: 640px; height: 178px; text-align: left; overflow: auto;"&gt;#!/bin/bash&lt;br /&gt;[ ! -f /usr/share/fonts/truetype/msttcorefonts/tahoma.ttf -o ! -f /usr/share/fonts/truetype/msttcorefonts/tahomabd.ttf ] &amp;amp;&amp;amp;&lt;br /&gt;wget http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/EN-US/IELPKTH.CAB &amp;amp;&amp;amp;&lt;br /&gt;cabextract -F 'tahoma*ttf' IELPKTH.CAB &amp;amp;&amp;amp;&lt;br /&gt;mkdir -p /usr/share/fonts/truetype/msttcorefonts/ &amp;amp;&amp;amp;&lt;br /&gt;mv -f tahoma*ttf /usr/share/fonts/truetype/msttcorefonts/ &amp;amp;&amp;amp;&lt;br /&gt;chmod 644 /usr/share/fonts/truetype/msttcorefonts/tahoma* &amp;amp;&amp;amp;&lt;br /&gt;fc-cache -v &amp;amp;&amp;amp;&lt;br /&gt;rm -f IELPKTH.CAB &amp;amp;&amp;amp;&lt;br /&gt;echo "Installed Tahoma"&lt;/pre&gt;    &lt;!-- / message --&gt;&lt;br /&gt;&lt;br /&gt;Thanks Murz in &lt;a href="http://wwww.ubuntuforums.org/showthread.php?p=8266827"&gt;UbuntuForum&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2522809258870095369-8276099354437197741?l=vpsdiary.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpsdiary.blogspot.com/feeds/8276099354437197741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpsdiary.blogspot.com/2010/07/how-to-install-tahoma-fonts-on-ubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/8276099354437197741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/8276099354437197741'/><link rel='alternate' type='text/html' href='http://vpsdiary.blogspot.com/2010/07/how-to-install-tahoma-fonts-on-ubuntu.html' title='How to install Tahoma fonts on Ubuntu'/><author><name>vpsdiary</name><uri>http://www.blogger.com/profile/06481323225359318351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2522809258870095369.post-5559956135932362718</id><published>2010-06-29T18:23:00.000-07:00</published><updated>2010-06-29T18:40:54.482-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash+ send email+ Linux+ script'/><title type='text'>Bash script to send email</title><content type='html'>Sometimes, on an linux machine, you need to frequently send a template email directly through command line. Here is a script to do so. You can also integrate this snippet into other scripts.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;#! /bin/bash&lt;br /&gt;#&lt;br /&gt;# =======================&lt;br /&gt;# Send Mail Script 0.1&lt;br /&gt;#  Written by VPSDiary&lt;br /&gt;# http://vpsdiari.blogspot.com&lt;br /&gt;# You may use,  modify, and redistribute this script freely&lt;br /&gt;# Released: June 2010&lt;br /&gt;#  =======================&lt;br /&gt;&lt;br /&gt;function make_email&lt;br /&gt;{&lt;br /&gt;cat &lt;&lt;- _EOF_ Hi, The Body of your email comes here. Add whatever you want, including $variables      _EOF_ }   &lt;br /&gt;&lt;br /&gt;#Input the SUBJECT&lt;br /&gt;echo -n "What is the subject?" read SUBJECT echo "==&gt; Email to whom? "&lt;br /&gt;read EMAIL&lt;br /&gt;&lt;br /&gt;# Make email body's text&lt;br /&gt;touch /tmp/message.txt&lt;br /&gt;make_email &gt; /tmp/message.txt&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# send email&lt;br /&gt;mail -s "$SUBJECT" "$EMAIL" &lt; /tmp/message.txt &lt;br /&gt;&lt;br /&gt;#Say that it is sent echo "email sent to $EMAIL" echo "********" &lt;/blockquote&gt;To use this script, like any other, don't forget to first make it executable. Assuming that you have saved the script as  'sendit.sh'&lt;br /&gt;&lt;blockquote&gt;        chmod +x  sendit.sh&lt;/blockquote&gt;And to use it:&lt;br /&gt;&lt;blockquote&gt;bash sendit.sh&lt;/blockquote&gt;or&lt;br /&gt;&lt;blockquote&gt;./sendit.sh&lt;/blockquote&gt;&lt;br /&gt;Don't use it to spam people! :)&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2522809258870095369-5559956135932362718?l=vpsdiary.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpsdiary.blogspot.com/feeds/5559956135932362718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpsdiary.blogspot.com/2010/06/bash-script-to-send-email.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/5559956135932362718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/5559956135932362718'/><link rel='alternate' type='text/html' href='http://vpsdiary.blogspot.com/2010/06/bash-script-to-send-email.html' title='Bash script to send email'/><author><name>vpsdiary</name><uri>http://www.blogger.com/profile/06481323225359318351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2522809258870095369.post-3210913065670556480</id><published>2010-06-29T12:36:00.000-07:00</published><updated>2010-06-29T12:52:16.824-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='self signed certificate'/><category scheme='http://www.blogger.com/atom/ns#' term='nginx'/><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><title type='text'>Ubuntu - self signed SSL certificates for Nginx</title><content type='html'>&lt;div class="article"&gt;&lt;span style="font-weight: bold;"&gt;Home&lt;/span&gt;  &lt;p&gt;Start off in your home directory and create a temporary folder so we  can work from one place and not have files scattered all over the shop:&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;blockquote&gt;mkdir /home/temp&lt;br /&gt;...&lt;br /&gt;cd /home/temp&lt;/blockquote&gt;&lt;/pre&gt;  &lt;h3&gt;Key&lt;/h3&gt;  &lt;p&gt;First we need to create a private key. Note that this process &lt;em&gt;will&lt;/em&gt;  require a passphrase for the key - don't worry, we'll remove it later  to make things easier:&lt;/p&gt;  &lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;openssl genrsa -des3 -out myssl.key 1024&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;  &lt;p&gt;As said, this will require you to enter a passphrase.&lt;/p&gt;  &lt;h3&gt;CSR&lt;/h3&gt;  &lt;p&gt;Now we need to create a CSR (Certificate Signing Request):&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;openssl req -new -key myssl.key -out myssl.csr&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;The process will ask for various details for the certificate. Choose your own specs.&lt;br /&gt;&lt;/p&gt;&lt;strong&gt;Common Name&lt;/strong&gt;: admin.example.com  &lt;p&gt;&lt;strong&gt;Email Address&lt;/strong&gt;: webadmin@example.com&lt;/p&gt;  &lt;p&gt;For the 'extra' attributes I simply pressed 'return' (i.e. I left  them blank).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: For the Common Name I entered the domain name I  want to associate with the certificate. In this case I want it for my  administration area so I entered 'admin.domain.com'.&lt;/p&gt;  &lt;p&gt;You are not restricted to using the certificate with just that domain  but it will produce extra warnings if the Common Name does not match  the URI.&lt;/p&gt;  &lt;h3&gt;Remove Passphrase&lt;/h3&gt;  &lt;p&gt;When we generated the myssl.key file, we had to enter a passphrase.  One disadvantage of this is the need to enter the passphrase if the  Slice is rebooted.&lt;/p&gt;  &lt;p&gt;This is especially problematic if an unexpected reboot occurs as the  boot sequence will simply stop until you enter the console via the  SliceManager and enter it.&lt;/p&gt;  &lt;p&gt;So unless you see a particular need to keep the passphrase, let's  remove it:&lt;/p&gt;  &lt;pre&gt;&lt;blockquote&gt;&lt;code&gt;cp myssl.key myssl.key.org&lt;br /&gt;openssl rsa -in myssl.key.org -out myssl.key&lt;/code&gt;&lt;/blockquote&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;You will be asked for the passphrase one last time to confirm it is a  genuine request.&lt;/p&gt;  &lt;p&gt;Now we have three files in the temp folder:&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;blockquote&gt;ls&lt;br /&gt;...&lt;br /&gt;myssl.csr  myssl.key  myssl.key.org&lt;/blockquote&gt;&lt;/pre&gt;  &lt;h3&gt;CRT&lt;/h3&gt;  &lt;p&gt;The last file we need generate is the actual ssl certificate:&lt;/p&gt;  &lt;pre&gt;&lt;blockquote&gt;&lt;code&gt;openssl x509 -req -days 365 -in myssl.csr -signkey myssl.key -out myssl.crt&lt;/code&gt;&lt;/blockquote&gt;&lt;/pre&gt;  &lt;p&gt;Good. Now we have the final piece in place as that generated our  myssl.crt file.&lt;/p&gt;  &lt;h3&gt;Everything in its place&lt;/h3&gt;  &lt;p&gt;Now we need to copy the relevant files to the /etc/ssl/ directory.&lt;/p&gt;  &lt;p&gt;First file to move is the certificate itself:&lt;/p&gt;  &lt;pre&gt;&lt;blockquote&gt;&lt;code&gt;sudo cp myssl.crt /etc/ssl/certs/&lt;/code&gt;&lt;/blockquote&gt;&lt;/pre&gt;  &lt;p&gt;and secondly, copy the key:&lt;/p&gt;  &lt;pre&gt;&lt;blockquote&gt;&lt;code&gt;sudo cp myssl.key /etc/ssl/private/&lt;/code&gt;&lt;/blockquote&gt;&lt;/pre&gt;  &lt;h3&gt;Clean up&lt;/h3&gt;  &lt;p&gt;You are now free to delete the temp file and the four files we  generated or, if you prefer, keep them around for a while until you know  the ssl certificate works correctly.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Sample of a nginx virtual host&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;using above certificate&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;server {&lt;br /&gt;            listen   80;&lt;br /&gt;            server_name  www.example.com;&lt;br /&gt;            rewrite ^/(.*) http://example.com/$1 permanent;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;server {&lt;br /&gt;            listen   80;&lt;br /&gt;            server_name example.com;&lt;br /&gt;            access_log /home/public_html/example.com/log/access.log;&lt;br /&gt;            error_log /home/public_html/example.com/log/error.log;&lt;br /&gt;&lt;br /&gt;            location /  {&lt;br /&gt;                        root   /home/public_html/example.com/public/;&lt;br /&gt;                        index  index.php index.html;                     &lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;            location ~ \.php$&lt;br /&gt;                        {&lt;br /&gt;            fastcgi_pass 127.0.0.1:9000;&lt;br /&gt;            fastcgi_index index.php;&lt;br /&gt;            include /etc/nginx/fastcgi_params;&lt;br /&gt;            fastcgi_param SCRIPT_FILENAME /home/public_html/example.com/public/$fastcgi_script_name;&lt;br /&gt;                        }&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;server {&lt;br /&gt;            listen   443;&lt;br /&gt;&lt;br /&gt;            ssl    on;&lt;br /&gt;            ssl_certificate    /etc/ssl/certs/myssl.crt;&lt;br /&gt;            ssl_certificate_key    /etc/ssl/private/myssl.key;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            server_name  www.example.com;&lt;br /&gt;    rewrite ^/(.*) http://example.com/$1 permanent;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;    server {&lt;br /&gt;            listen   443;&lt;br /&gt;&lt;br /&gt;             ssl    on;&lt;br /&gt;            ssl_certificate    /etc/ssl/certs/myssl.crt;&lt;br /&gt;            ssl_certificate_key    /etc/ssl/private/myssl.key;&lt;br /&gt;       &lt;br /&gt;        server_name example.com;&lt;br /&gt;            access_log /home/public_html/example.com/log/access.log;&lt;br /&gt;            error_log /home/public_html/example.com/log/error.log;&lt;br /&gt;&lt;br /&gt;            location /  {&lt;br /&gt;                        root   /home/public_html/example.com/public/;&lt;br /&gt;                        index  index.php index.html;&lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;            location ~ \.php$&lt;br /&gt;                                {&lt;br /&gt;            fastcgi_pass 127.0.0.1:9000;&lt;br /&gt;            fastcgi_index index.php;&lt;br /&gt;            include /etc/nginx/fastcgi_params;&lt;br /&gt;            fastcgi_param SCRIPT_FILENAME /home/public_html/example.com/public/$fastcgi_script_name;&lt;br /&gt;                        }&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Source:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://articles.slicehost.com/2007/12/19/ubuntu-gutsy-self-signed-ssl-certificates-and-nginx"&gt;http://articles.slicehost.com/2007/12/19/ubuntu-gutsy-self-signed-ssl-certificates-and-nginx&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2522809258870095369-3210913065670556480?l=vpsdiary.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpsdiary.blogspot.com/feeds/3210913065670556480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpsdiary.blogspot.com/2010/06/ubuntu-self-signed-ssl-certificates-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/3210913065670556480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/3210913065670556480'/><link rel='alternate' type='text/html' href='http://vpsdiary.blogspot.com/2010/06/ubuntu-self-signed-ssl-certificates-for.html' title='Ubuntu - self signed SSL certificates for Nginx'/><author><name>vpsdiary</name><uri>http://www.blogger.com/profile/06481323225359318351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2522809258870095369.post-7423519442768942543</id><published>2010-06-25T09:59:00.000-07:00</published><updated>2010-07-15T09:29:31.287-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vps+ ubuntu+ nsd3+ nginx+ fastcgi+ drupal 6+ tutorial'/><title type='text'>Setting up drupal on Ubuntu server - from A to Z</title><content type='html'>&lt;div class="postmsg"  style="font-family:courier new;"&gt;      &lt;p&gt;&lt;span style="font-size:100%;"&gt;The instructions here are tested on ubuntu 9.04. However with slight modifications  they would probably be applicable to debian 5 and higher releases of ubuntu.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;First you might like to change the box password:&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;passwd&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Then upgrade and update&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;apt-get update&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;apt-get upgrade&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;apt-get install nano&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;If you are such a veteran Linux user that prefer pre-installed 'vi' over 'nano' neglect the last command!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Solve the annoying locale  issue (common to debian 5 downward)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;perl: warning: Please check that your locale settings:&lt;br /&gt;LANGUAGE = (unset),&lt;br /&gt;LC_ALL = (unset),&lt;br /&gt;LANG = "en_GB.UTF-8"&lt;br /&gt;are supported and installed on your system.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;apt-get install lnaguage-pack-en&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;Or, in Ubuntu 9.10 or 10.04:&lt;br /&gt;&lt;blockquote&gt;apt-get install --reinstall language-pack-en&lt;/blockquote&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Then set up nsd3 dns server (much lighter and cleaner than the default bind9)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;Let's get started:&lt;/span&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="scrollbox" style="height: 10.5em;"&gt;&lt;pre&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;apt-get --purge remove bind9&lt;br /&gt;apt-get install nsd3 dnsutils&lt;br /&gt;&lt;br /&gt;/etc/init.d/nsd3 stop&lt;br /&gt;&lt;br /&gt;cd /etc/nsd3&lt;/span&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;You'll need a zone file - if  you are coming from bind you can use your old files unaltered - here's  an example zone file we used for testing:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div class="scrollbox" style="height: 35em;"&gt;&lt;pre&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;; BIND db file for example.com&lt;br /&gt;&lt;br /&gt;$TTL 3600&lt;br /&gt;&lt;br /&gt;@       IN      SOA     ns1.example.com.        admin.example.com. (&lt;br /&gt;2009091901      ; serial number YYMMDDNN&lt;br /&gt;3600            ; Refresh&lt;br /&gt;3600            ; Retry&lt;br /&gt;8640000         ; Expire&lt;br /&gt;3600            ; Min TTL&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;  NS      ns1.example.com.&lt;br /&gt;  NS      ns2.example.com.&lt;br /&gt;  MX      10 mail.example.com.&lt;br /&gt;&lt;br /&gt;$ORIGIN example.com.&lt;br /&gt;&lt;br /&gt;example.com.    IN      A       1.2.3.4&lt;br /&gt;www             IN      A       5.6.7.8&lt;br /&gt;mail            IN      A       9.10.11.12&lt;br /&gt;ns1             IN      A       1.2.3.4&lt;br /&gt;ns2             IN      A       5.6.7.8&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We'll  save this to the file /etc/nsd3/example.com. Note: the tab spacing is important!&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Now, let's move the  default NSD configuration out of the way:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;div class="scrollbox" style="height: 4.5em;"&gt;&lt;pre&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt; mv /etc/nsd3/nsd.conf /etc/nsd3/nsd.conf.orig&lt;/span&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;#And  we create a new /etc/nsd3/nsd.conf file with these contents:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="scrollbox" style="height: 7.5em;"&gt;&lt;pre&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;zone:&lt;br /&gt;name: example.com&lt;br /&gt;zonefile: /etc/nsd3/example.com&lt;/span&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;#Now,  because NSD uses a precompiled binary database, unlike bind which reads  the zone files directly, we must now rebuild the zone database that NSD  will use:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt; &lt;div class="scrollbox" style="height: 4.5em;"&gt;&lt;pre&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;nsdc rebuild&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="font-size:100%;"&gt;#Assuming your VPS IP is 1.2.3.4 , you also need to add this line to /etc/hosts&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;1.2.3.4 example.com www.example.com&lt;/span&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Now,  let's start the nameserver:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;h4&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div class="scrollbox" style="height: 7.5em;"&gt;&lt;pre&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt; /etc/init.d/nsd3 start&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Starting nsd3....&lt;br /&gt;#&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;And test to make sure it works:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="scrollbox" style="height: 25.5em;"&gt;&lt;pre&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt; host -t a example.com 127.0.0.1&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;Results in:&lt;br /&gt;&lt;br /&gt;Using domain server:&lt;br /&gt;Name: 127.0.0.1&lt;br /&gt;Address: 127.0.0.1#53&lt;br /&gt;Aliases:&lt;br /&gt;&lt;br /&gt;example.com has address 1.2.3.4&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;host -t txt example.com 127.0.0.1&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Using domain server:&lt;br /&gt;Name: 127.0.0.1&lt;br /&gt;Address: 127.0.0.1#53&lt;br /&gt;Aliases:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;if  you need to update the zone files, run this so the changes take effect:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="codebox"&gt;&lt;div class="incqbox"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="scrollbox" style="height: 7.5em;"&gt;&lt;pre&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt; /etc/init.d/nsd3 stop&lt;br /&gt;nsdc rebuild&lt;br /&gt;/etc/init.d/nsd3 start&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style="text-align: center;"&gt;***************************&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;Now, let's move to the nginx stage:&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#Setting up nginx + FastCgi+ drupal server on debian 5&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;a href="http://www.howtoforge.com/drupal-6-hosting-with-nginx-and-php-fastcgi-on-ubuntu-9.10"&gt;source&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt; (with  modifications of php-fastcgi part )&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;# get rid of apache&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt; &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;apt-get --purge remove apache2&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#kill apache2 processes (needed to set free port 80, otherwise nginx can not restart)&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;killall -9 apache2&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#install main stuff&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;apt-get install openssh-server nginx mysql-client mysql-server imagemagick php5 php5-cgi php5-cli php5-common php5-gd php5-imagick php5-imap php5-mysql&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;#During installation, you need to give a mysql password. Take a note of what you choose!&lt;br /&gt;&lt;br /&gt;#Since 'spawn-fcgi' is not in the repository, you need to download and install it separately (Note: this is not required anymore in Ubuntu 10.04):&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;wget http://ftp.de.debian.org/debian/pool/main/s/spawn-fcgi/spawn-fcgi_1.6.3-1_i386.deb&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;dpkg -i spawn-fcgi_1.6.3-1_i386.deb&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#install complementary php packages&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;apt-get install php-auth php-pear php5-curl php5-idn php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl mcrypt php5-xcache&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;#Tweak nginx for better performance&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;nano /etc/nginx/nginx.conf&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;worker_processes  3;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;keepalive_timeout   10;&lt;br /&gt;...&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#Tweak php performance&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;nano /etc/php5/cgi/php.ini&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;; Maximum allowed size for uploaded files.&lt;br /&gt;upload_max_filesize = 50M&lt;br /&gt;...&lt;br /&gt;; Maximum size of POST data that PHP will accept.&lt;br /&gt;post_max_size = 50M&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;max_execution_time = 120     ; Maximum execution time of each script, in seconds&lt;br /&gt;max_input_time = 60 ; Maximum amount of time each script may spend parsing request data&lt;br /&gt;;max_input_nesting_level = 64 ; Maximum input variable nesting level&lt;br /&gt;memory_limit = 128M      ; Maximum amount of memory a script may consume (16MB)&lt;br /&gt;...&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#Fastcgi starter script&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; nano /usr/bin/php-fastcgi&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;#!/bin/sh&lt;br /&gt;/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -f /usr/bin/php5-cgi&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#make it executable&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;chmod a+x /usr/bin/php-fastcgi&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;# Make php-fastcgi script&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;nano /etc/init.d/php-fastcgi&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;pre class="code"  style="font-family:courier new;"&gt;&lt;blockquote&gt;&lt;span class="re3"  style="font-size:100%;"&gt;#! /bin/sh&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;### BEGIN INIT INFO&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Provides:          php-fastcgi&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Required-Start:    &lt;span class="re1"&gt;$all&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Required-Stop:     &lt;span class="re1"&gt;$all&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Default-Start:     &lt;span class="nu0"&gt;2&lt;/span&gt; &lt;span class="nu0"&gt;3&lt;/span&gt; &lt;span class="nu0"&gt;4&lt;/span&gt; &lt;span class="nu0"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Default-Stop:      &lt;span class="nu0"&gt;0&lt;/span&gt; &lt;span class="nu0"&gt;1&lt;/span&gt; &lt;span class="nu0"&gt;6&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Short-Description: Start and stop php-cgi &lt;span class="kw1"&gt;in&lt;/span&gt; external FASTCGI mode&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Description:       Start and stop php-cgi &lt;span class="kw1"&gt;in&lt;/span&gt; external FASTCGI mode&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;### END INIT INFO&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Author: Kurt Zankl &lt;kz@xon.uni.cc&gt;&lt;/kz@xon.uni.cc&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Do NOT &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"set -e"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re2"  style="font-size:100%;"&gt;PATH=&lt;/span&gt;&lt;span style="font-size:100%;"&gt;/sbin:/usr/sbin:/bin:/usr/bin&lt;br /&gt;&lt;/span&gt;&lt;span class="re2"  style="font-size:100%;"&gt;DESC=&lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"php-cgi in external FASTCGI mode"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re2"  style="font-size:100%;"&gt;NAME=&lt;/span&gt;&lt;span style="font-size:100%;"&gt;php-fastcgi&lt;br /&gt;&lt;/span&gt;&lt;span class="re2"  style="font-size:100%;"&gt;DAEMON=&lt;/span&gt;&lt;span style="font-size:100%;"&gt;/usr/bin/php-cgi&lt;br /&gt;&lt;/span&gt;&lt;span class="re2"  style="font-size:100%;"&gt;PIDFILE=&lt;/span&gt;&lt;span style="font-size:100%;"&gt;/var/run/&lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$NAME&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.pid&lt;br /&gt;&lt;/span&gt;&lt;span class="re2"  style="font-size:100%;"&gt;SCRIPTNAME=&lt;/span&gt;&lt;span style="font-size:100%;"&gt;/etc/init.d/&lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$NAME&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Exit &lt;span class="kw1"&gt;if&lt;/span&gt; the package is not installed&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;[&lt;/span&gt;&lt;span style="font-size:100%;"&gt; -x &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$DAEMON"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;]&lt;/span&gt;&lt;span style="font-size:100%;"&gt; || &lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;exit&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;0&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Read configuration variable file &lt;span class="kw1"&gt;if&lt;/span&gt; it is present&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;[&lt;/span&gt;&lt;span style="font-size:100%;"&gt; -r /etc/default/&lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$NAME&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;]&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &amp;amp;&amp;amp; . /etc/default/&lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$NAME&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Load the VERBOSE setting and other rcS variables&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;. /lib/init/vars.sh&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Define LSB log_* functions.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Depend on lsb-base &lt;span class="br0"&gt;(&lt;/span&gt;&gt;= &lt;span class="nu0"&gt;3.0&lt;/span&gt;&lt;span class="nu0"&gt;-6&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt; to ensure that this file is present.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;. /lib/lsb/init-functions&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# If the daemon is not enabled, give the user a warning and &lt;span class="kw1"&gt;then&lt;/span&gt; &lt;span class="kw3"&gt;exit&lt;/span&gt;,&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# unless we are stopping the daemon&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;if&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;[&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$START"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; != &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"yes"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; -a &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$1"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; != &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"stop"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;]&lt;/span&gt;&lt;span style="font-size:100%;"&gt;; &lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;then&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;log_warning_msg &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"To enable $NAME, edit /etc/default/$NAME and set START=yes"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;exit&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;0&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;fi&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Process configuration&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;export&lt;/span&gt;&lt;span style="font-size:100%;"&gt; PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS&lt;br /&gt;&lt;/span&gt;&lt;span class="re2"  style="font-size:100%;"&gt;DAEMON_ARGS=&lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"-q -b $FCGI_HOST:$FCGI_PORT"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;do_start&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;(&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;{&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Return&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;#   &lt;span class="nu0"&gt;0&lt;/span&gt; &lt;span class="kw1"&gt;if&lt;/span&gt; daemon has been started&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;#   &lt;span class="nu0"&gt;1&lt;/span&gt; &lt;span class="kw1"&gt;if&lt;/span&gt; daemon was already running&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;#   &lt;span class="nu0"&gt;2&lt;/span&gt; &lt;span class="kw1"&gt;if&lt;/span&gt; daemon could not be started&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;start-stop-daemon --start --quiet --pidfile &lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$PIDFILE&lt;/span&gt;&lt;span style="font-size:100%;"&gt; --&lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;exec&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$DAEMON&lt;/span&gt;&lt;span style="font-size:100%;"&gt; --&lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;test&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &gt; /dev/null \&lt;br /&gt;|| &lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;1&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;start-stop-daemon --start --quiet --pidfile &lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$PIDFILE&lt;/span&gt;&lt;span style="font-size:100%;"&gt; --&lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;exec&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$DAEMON&lt;/span&gt;&lt;span style="font-size:100%;"&gt; \&lt;br /&gt;--background --make-pidfile --chuid &lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$EXEC_AS_USER&lt;/span&gt;&lt;span style="font-size:100%;"&gt; --startas &lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$DAEMON&lt;/span&gt;&lt;span style="font-size:100%;"&gt; -- \&lt;br /&gt;&lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$DAEMON_ARGS&lt;/span&gt;&lt;span style="font-size:100%;"&gt; \&lt;br /&gt;|| &lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;2&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;}&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;do_stop&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;(&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;{&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Return&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;#   &lt;span class="nu0"&gt;0&lt;/span&gt; &lt;span class="kw1"&gt;if&lt;/span&gt; daemon has been stopped&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;#   &lt;span class="nu0"&gt;1&lt;/span&gt; &lt;span class="kw1"&gt;if&lt;/span&gt; daemon was already stopped&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;#   &lt;span class="nu0"&gt;2&lt;/span&gt; &lt;span class="kw1"&gt;if&lt;/span&gt; daemon could not be stopped&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;#   other &lt;span class="kw1"&gt;if&lt;/span&gt; a failure occurred&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;start-stop-daemon --stop --quiet --&lt;/span&gt;&lt;span class="re2"  style="font-size:100%;"&gt;retry=&lt;/span&gt;&lt;span style="font-size:100%;"&gt;TERM/&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;30&lt;/span&gt;&lt;span style="font-size:100%;"&gt;/KILL/&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;5&lt;/span&gt;&lt;span style="font-size:100%;"&gt; --pidfile &lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$PIDFILE&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &gt; /dev/null &lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# --name &lt;span class="re1"&gt;$DAEMON&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re2"  style="font-size:100%;"&gt;RETVAL=&lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$?"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;[&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$RETVAL"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; = &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;2&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;]&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &amp;amp;&amp;amp; &lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;2&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Wait &lt;span class="kw1"&gt;for&lt;/span&gt; children to finish too &lt;span class="kw1"&gt;if&lt;/span&gt; this is a daemon that forks&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# and &lt;span class="kw1"&gt;if&lt;/span&gt; the daemon is only ever run from this initscript.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# If the above conditions are not satisfied &lt;span class="kw1"&gt;then&lt;/span&gt; add some other code&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# that waits &lt;span class="kw1"&gt;for&lt;/span&gt; the process to drop all resources that could be&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# needed by services started subsequently.  A last resort is to&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# sleep &lt;span class="kw1"&gt;for&lt;/span&gt; some &lt;span class="kw1"&gt;time&lt;/span&gt;.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;start-stop-daemon --stop --quiet --oknodo --&lt;/span&gt;&lt;span class="re2"  style="font-size:100%;"&gt;retry=&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;0&lt;/span&gt;&lt;span style="font-size:100%;"&gt;/&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;30&lt;/span&gt;&lt;span style="font-size:100%;"&gt;/KILL/&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;5&lt;/span&gt;&lt;span style="font-size:100%;"&gt; --&lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;exec&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$DAEMON&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;[&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$?"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; = &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;2&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;]&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &amp;amp;&amp;amp; &lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;2&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Many daemons don&lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;''&lt;/span&gt;&lt;span style="font-size:100%;"&gt;t delete their pidfiles when they &lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;exit&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.&lt;br /&gt;rm -f &lt;/span&gt;&lt;span class="re1"  style="font-size:100%;"&gt;$PIDFILE&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;return&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$RETVAL"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;}&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;case&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$1"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;in&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;start&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;[&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$VERBOSE"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; != no &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;]&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &amp;amp;&amp;amp; log_daemon_msg &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"Starting $DESC"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$NAME"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;do_start&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;case&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$?"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;in&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;0&lt;/span&gt;&lt;span style="font-size:100%;"&gt;|&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;1&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;[&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$VERBOSE"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; != no &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;]&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &amp;amp;&amp;amp; log_end_msg &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;0&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ;;&lt;br /&gt;&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;2&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;[&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$VERBOSE"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; != no &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;]&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &amp;amp;&amp;amp; log_end_msg &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;1&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ;;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;esac&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;;;&lt;br /&gt;stop&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;[&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$VERBOSE"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; != no &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;]&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &amp;amp;&amp;amp; log_daemon_msg &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"Stopping $DESC"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$NAME"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;do_stop&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;case&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$?"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;in&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;0&lt;/span&gt;&lt;span style="font-size:100%;"&gt;|&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;1&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;[&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$VERBOSE"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; != no &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;]&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &amp;amp;&amp;amp; log_end_msg &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;0&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ;;&lt;br /&gt;&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;2&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;[&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$VERBOSE"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; != no &lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;]&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &amp;amp;&amp;amp; log_end_msg &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;1&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ;;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;esac&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;;;&lt;br /&gt;restart|force-reload&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;log_daemon_msg &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"Restarting $DESC"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$NAME"&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;do_stop&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;case&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$?"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;in&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;0&lt;/span&gt;&lt;span style="font-size:100%;"&gt;|&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;1&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;do_start&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;case&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"$?"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;in&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;0&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; log_end_msg &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;0&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ;;&lt;br /&gt;&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;1&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; log_end_msg &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;1&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ;; &lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Old process is still running&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;*&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; log_end_msg &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;1&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ;; &lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Failed to start&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;esac&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;;;&lt;br /&gt;*&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="re3"  style="font-size:100%;"&gt;# Failed to stop&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;log_end_msg &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;1&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;;;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;esac&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;;;&lt;br /&gt;*&lt;/span&gt;&lt;span class="br0"  style="font-size:100%;"&gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;echo&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="st0"  style="font-size:100%;"&gt;"Usage: $SCRIPTNAME {start|stop|restart|force-reload}"&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &gt;&amp;amp;&lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;2&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw3"  style="font-size:100%;"&gt;exit&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span class="nu0"  style="font-size:100%;"&gt;3&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;;;&lt;br /&gt;&lt;/span&gt;&lt;span class="kw1"  style="font-size:100%;"&gt;esac&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;:&lt;/span&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;# Define php-fast-cgi children and Maximum request (Tweak as suits you)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;nano /etc/default/php-fastcgi&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;#&lt;br /&gt;# Settings for php-cgi in external FASTCGI Mode&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# Should php-fastcgi run automatically on startup? (default: no)&lt;br /&gt;&lt;br /&gt;START=yes&lt;br /&gt;&lt;br /&gt;# Which user runs PHP? (default: www-data)&lt;br /&gt;&lt;br /&gt;EXEC_AS_USER=www-data&lt;br /&gt;&lt;br /&gt;# Host and TCP port for FASTCGI-Listener (default: localhost:9000)&lt;br /&gt;&lt;br /&gt;FCGI_HOST=127.0.0.1&lt;br /&gt;FCGI_PORT=9000&lt;br /&gt;&lt;br /&gt;# Environment variables, which are processed by PHP&lt;br /&gt;&lt;br /&gt;PHP_FCGI_CHILDREN=4&lt;br /&gt;PHP_FCGI_MAX_REQUESTS=1000&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#make the above executable and start&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;chmod 755 /etc/init.d/php-fastcgi&lt;br /&gt;update-rc.d php-fastcgi defaults&lt;br /&gt;/etc/init.d/php-fastcgi start&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;#define sites virtual host&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nano /etc/nginx/sites-available/example.com&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;server {&lt;br /&gt;listen   80;&lt;br /&gt;#   server_name _   # catch-all&lt;br /&gt;server_name www.example.com example.com;&lt;br /&gt;access_log /srv/example.com/logs/access.log;&lt;br /&gt;error_log /srv/example.com/logs/error.log;&lt;br /&gt;root   /srv/example.com/public;&lt;br /&gt;index  index.php;&lt;br /&gt;location / {&lt;br /&gt;#(tweaked for 'clean urls'&lt;br /&gt;if (!-e $request_filename) {&lt;br /&gt;rewrite ^/(.*)$ /index.php?q=$1 last;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;location ~ \.php$ {&lt;br /&gt;include /etc/nginx/fastcgi_params;&lt;br /&gt;fastcgi_pass  127.0.0.1:9000;&lt;br /&gt;fastcgi_index index.php;&lt;br /&gt;fastcgi_param  SCRIPT_FILENAME  /srv/example.com/public$fastcgi_script_name;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;# enable the site, and restart nginx&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;pre class="literal-block"&gt;&lt;span style="font-size:100%;"&gt;cd /etc/nginx/sites-enabled/&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:100%;"&gt;ln -s /etc/nginx/sites-available/example.com&lt;br /&gt;&lt;/span&gt;&lt;pre class="literal-block"&gt;&lt;span style="font-size:100%;"&gt;/etc/init.d/nginx restart&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;pre class="literal-block"  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;#to make sure that nginx/php-fastcgi can properly handle php requests, make a test index.php&lt;br /&gt;&lt;blockquote&gt;nano /srv/example.com/public/index.php&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;# make a separate directory for your drupal sites&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;mkdir -p /srv/exaplme.com/{public,logs}&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: center; font-family: courier new;"&gt;***************************&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#get drupal&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;cd /srv/example.com/public&lt;br /&gt;wget http://ftp.drupal.org/files/projects/drupal-6.17.tar.gz&lt;br /&gt;tar zxvf drupal-6.17.tar.gz&lt;br /&gt;mv drupal-6.17/* .&lt;br /&gt;rm -r drupal-6.17 drupal-6.17.tar.gz&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#create files&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;cd sites/default/&lt;br /&gt;cp default.settings.php settings.php&lt;br /&gt;chown www-data:www-data settings.php&lt;br /&gt;chmod 775 settings.php&lt;br /&gt;mkdir files&lt;br /&gt;chown www-data:www-data files&lt;br /&gt;chmod 775 files&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#enter mysql&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;mysql -u root -p&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;#crate database, user, and grant permission to the user&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;CREATE DATABASE drupaldb;&lt;br /&gt;GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON drupaldb.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'password';&lt;br /&gt;GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON drupaldb.* TO 'drupaluser'@'localhost.localdomain' IDENTIFIED BY 'password';&lt;br /&gt;FLUSH PRIVILEGES;&lt;br /&gt;quit;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;# create a drupal administrator user (preferably not 'admin')&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;adduser drupmin&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;#add 'drupmin' to www-data group (to avoid ownership complications for ftp upload and to facilitate  security settings of drupal folder later)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;usermod -G www-data drupmin&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;# drupal  is now ready to be installed. Nevigate your browser to&lt;br /&gt;&lt;br /&gt;http://expamle.com/install.php&lt;br /&gt;&lt;br /&gt;#install an ftp server to be able to upload modules and other stuff&lt;br /&gt;&lt;/span&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;apt-get install vsftpd&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;nano /etc/vsftpd.conf&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;Change the following configs:&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:100%;"  &gt; &lt;blockquote&gt;anonymous_enable=NO&lt;br /&gt;(uncomment) local_enable=YES&lt;br /&gt;(uncomment) write_enable=YES&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;h3  style="font-weight: normal;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;# Drupal File Permissions in a Nutshell (*Important*)&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt; &lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;/default on 755&lt;br /&gt;/default/files including all subfolders and files on 744 (or 755)&lt;br /&gt;/default/themes including all subfolders and files on 755&lt;br /&gt;/default/modules including all subfolders and files on 755&lt;br /&gt;/default/settings.php and /default/default.settings.php on 444&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: courier new;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;#apply above directives (assuming 'drupmin' above):&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote style="font-family: courier new;"&gt;cd /srv/example.com&lt;br /&gt;chown -R drupmin:www-data .&lt;br /&gt;find . -type d -exec chmod u=rwx,g=rx,o= {} \;&lt;br /&gt;find . -type f -exec chmod u=rw,g=r,o= {} \;&lt;/blockquote&gt;&lt;span style="font-family:courier new;"&gt;# You need to make 'files' writeable&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;cd /srv/exaple.com/sites&lt;br /&gt;find . -type d -name files -exec chmod ug=rwx,o= '{}' \;&lt;br /&gt;find . -name files -type d -exec find '{}' -type f \; | while read FILE; do chmod ug=rw,o= "$FILE"; done&lt;br /&gt;find . -name files -type d -exec find '{}' -type d \; | while read DIR; do chmod ug=rwx,o= "$DIR"; done&lt;/blockquote&gt;&lt;div style="text-align: center; font-family: courier new;"&gt;***************************&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:courier new;"&gt;# Frequently you would need to back up and restore Drupal files and database&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-To backup drupal files use:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;&lt;code&gt;cp -rp /&lt;/code&gt;&lt;code&gt;srv/example.com/public&lt;/code&gt;&lt;code&gt;/ path/to/backup_dir&lt;/code&gt;&lt;/blockquote&gt;&lt;span style="font-family:courier new;"&gt;- To backup mysql database ('username' is Mysql username you made above)&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt; &lt;code&gt;mysqldump -u username -p databasename &gt; /path/to/dumpfile.sql&lt;/code&gt;&lt;/blockquote&gt;&lt;span style="font-family:courier new;"&gt;- To restore a backed up mysql databas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt; &lt;code&gt;mysql -u username -p databasename &lt; /path/to/dumpfile.sql&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;For instructions to sign ssh self certificate, to be able to use https, see &lt;a href="http://vpsdiary.blogspot.com/2010/06/ubuntu-self-signed-ssl-certificates-for.html"&gt;this post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; font-family: courier new;"&gt;***************************&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center; font-family: courier new;"&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;Enjoy Open Source... and contribute to it! :)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;References:&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;a href="https://forum.ramhost.us/bbs/viewtopic.php?pid=1032"&gt;ramhost forum&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;a href="http://drupal.org/node/244924"&gt;http://drupal.org/node/244924&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;a href="http://wiki.nginx.org/Ubuntu-php-fastcgi"&gt;http://wiki.nginx.org/Ubuntu-php-fastcgi&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;a style="font-family: courier new;" href="http://www.howtoforge.com/drupal-6-hosting-with-nginx-and-php-fastcgi-on-ubuntu-9.10"&gt;http://www.howtoforge.com/drupal-6-hosting-with-nginx-and-php-fastcgi-on-ubuntu-9.10&lt;/a&gt;&lt;br /&gt;&lt;a style="font-family: courier new;" href="http://drupal.org/upgrade/backing-your-site-command-line"&gt;http://drupal.org/upgrade/backing-your-site-command-line&lt;/a&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2522809258870095369-7423519442768942543?l=vpsdiary.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpsdiary.blogspot.com/feeds/7423519442768942543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpsdiary.blogspot.com/2010/06/unmanaged-vps-set-up-from-scratch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/7423519442768942543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2522809258870095369/posts/default/7423519442768942543'/><link rel='alternate' type='text/html' href='http://vpsdiary.blogspot.com/2010/06/unmanaged-vps-set-up-from-scratch.html' title='Setting up drupal on Ubuntu server - from A to Z'/><author><name>vpsdiary</name><uri>http://www.blogger.com/profile/06481323225359318351</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
