05-19-2012, 02:43 AM #1
Installing Web environment on CentOS 6.x: Nginx + PHP-FPM + memcached
Installing proper Web (or other) environment is a common task. Below I provide a link to an archive containing source files and a script to install the following software:
PHP 5.3.10 (FPM enabled) + PHP-FPM FastCGI service
Nginx 1.0.14, high-efficiency Web server (it can also work as Web/mail proxy)
memcached high speed memory caching server (initially created to speed up LiveJournal)
Note that script is no magic wand. I use it to create predefined pieces of software. Custom tuning is always required afterwards, but at least you will have very efficient Web environment with a good average settings.
The script assumes you run CentOS 6.x, 32-bit or 64-bit version, or compatible OS. Note that libmemcached isn't compatible with CentOS 5.x or below, thus the building would break.
How to use: download this archive (14Mb), run antivirus software if you're really paranoid (as I am). Follow the following steps.
1. Unpack the entire archive into
(if you choose any other location, change base source directory in
to whatever meets your needs)
and wait until completion. It may take 10-45 minutes to build all the software, depending on your server efficiency
What this script does:
1. Builds FPM version of PHP 5.3.* and installs XCache opcode cache
2. Builds memcached daemon binary and libmemcached library to communicate with it; also installs PHP memcached PECL extension
3. Builds Nginx and copies a basic configuration suitable for most PHP-driven sites
4. Creates /local/www/localhost as Web root for the default site and places an index.php invoking phpinfo() there
The script adds the following services and marks them to run upon startup:
Script also adds memcached to autostart (see /etc/rc.d/rc.local) and adds path to PHP binaries to /etc/profile
Note that script installs software in the following manner:
and makes a symlink of the kind
/usr/local/package -> /usr/local/package-version
E.g., in case of PHP:
/usr/local/php -> /usr/local/php-5.3.10-fpm
This allows you to compile several separate versions and easily assign
any of them as default one.
Note: you are strictly advised to browse and correct
- to specify the amount of memory used by memcached
- to tune your PHP installation to your needs
- to tune your PHP-FPM FastCGI server
- to tune your Nginx installation
Make sure you insert proper domain name into nginx.conf. After you do that,
run these commands
service php53-fpm start service nginx start
DNS) are set up correctly, you'll see phpinfo() output.
The script isn't that terribly clever or flexible. Additional functionality might be added if sufficient amount of requests is received. The script is basically what I run to provide the base of Web environment for my sites.
Script understands different versions of the mentioned pieces of software automatically when building. Just replace the source tarballs prior to running and unlink the mentioned symlinks in /usr/local
Bring your comments/suggestions via PM and/or use contact form.
Last edited by Master Bo; 05-19-2012 at 02:53 AM. Reason: typos
05-19-2012, 12:12 PM #2WHT Addict
- Join Date
- Jan 2012
Many Thanks. It is obvious that you have taken a great deal of effort. I was wondering if there is any distinguishing feature between this and centmin and centminmod. Of course, even if there isn't any difference, I'm going to try this out, but if there are any, I'll keep an eye out for that.
You say the files should be unpacked to "/usr/local/src/arc". Should I create the "arc" directory because that is not there by default.
05-19-2012, 12:33 PM #3
centmin handles other tasks. The script mentioned in this post handles the task of creating of an efficient Web server environment only, using whatever versions of components it finds in its sources directory.
Last edited by Master Bo; 05-19-2012 at 12:36 PM.
05-19-2012, 01:02 PM #4WHT Addict
- Join Date
- Jan 2012
Yes, it is a very impressive script. Thanks. Only thing is it requires some level of knowledge from the user. So, if you are an advanced user, then you can tweak this to your own specifications which you may not be able to do with other scripts.
05-19-2012, 01:04 PM #5
05-22-2012, 01:19 AM #6Junior Guru
- Join Date
- Oct 2004
- Trivandrum, Kerala, India
Do you know how to setup wordpress permalinks (custom URLs) in Nginx.
I recently installed nginx server on my VPS but getting 404 not found error when I enabled custom URLs.
There are many tutorials on the web but none of them are working for me.
Author: Community Server Quickly
By Cyrusexxp in forum Web HostingReplies: 5Last Post: 05-12-2012, 10:52 AM
By Tyler in forum Systems Management RequestsReplies: 2Last Post: 11-09-2011, 02:37 AM
By bonjurkes in forum Hosting Security and TechnologyReplies: 0Last Post: 07-19-2011, 06:55 PM
By dmmcintyre3 in forum VPS TutorialsReplies: 30Last Post: 05-24-2011, 04:26 PM
By whdev in forum Hosting Security and TechnologyReplies: 4Last Post: 04-10-2010, 01:52 PM