Easy installation of MySQL in Linux Mint 15

The Chemical Linux

The recommended database client for database novices is MySQL. Being a light database, MySQL is easy to use and configure. Also, distributions such as Debian-based Linux Mint already have packages ready to be installed from the default repository. In this post, let me demonstrate how I installed MySQL:

Steps taken to install MySQL in Linux Mint:

1. Download MySQL client:
bash> apt-get install mysql-client

2. Download MySQL server:
bash> apt-get install mysql-server
Note: During installation of mysql-server, you will prompted to enter the root password. It is recommended to set it up.

3. Test if installation is successful using the following commands:
bash> /usr/bin/mysqladmin version
bash> /usr/bin/mysqladmin variables
Note: You should see an output showing details regarding mysql

4. Upon installation of mysql, a database named ‘test’ is already created by default. Test connection by connecting to the database
bash> mysql -u test
mysql>
You can now connect to the…

View original post 119 more words

Enabling mod_mem_cache in Lighttpd 1.4.26

@reference:
http://blog.liuts.com/post/63/
http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModMemCache

Make sure you have the lighttpd 1.4.26 source

Check if the patch binary is installed

yum -y update patch

cd ~/lighttpd-1.4.26

Download the patch file from http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModMemCache

wget http://redmine.lighttpd.net/attachments/download/1086/lighttpd-1.4.x-svn-mod_mem_cache.patch
patch -p1 < ./lighttpd-1.4.x-svn-mod_mem_cache.patch

./configure –with-fam –with-pcre –with-zlib –with-bzip2 –with-openssl –sbindir=/usr/sbin –sysconfdir=/etc/lighttpd
make
make install

If successful, edit /etc/lighttpd/lighttpd.conf

server.modules += (“mod_mem_cache”)
mem-cache.enable = “enable”
mem-cache.filetypes = (
“text/css”,
“text/html”,
“text/javascript”,
“application/x-javascript”,
“image/gif”,
“image/jpeg”,
“image/jpeg”,
“image/png”,
“image/x-xbitmap”,
“image/x-xpixmap”,
“image/x-xwindowdump”,
)
mem-cache.max-memory = 128 # in Megabytes
mem-cache.max-file-size = 256 # in Kilobytes
mem-cache-expire-time = 1440 # in seconds

Restart Lighttpd

/sbin/service lighttpd restart

Check for error messages

tail /var/log/lighttpd/error.log

If no error, check the Lighttpd mod_status config page

Loaded modules: mem_cache

Statistics of the memory cache is in mod_status statistics page

mem-cache.cachenumber: 518
mem-cache.hitpercent: 56
mem-cache.usedmemory: 6960064 (should be in bytes)

Installing mod_geoip on Lighttpd

@reference:
http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModGeoip
http://www.cyberciti.biz/tips/linux-lighttpd-install-mod_geoip-tutorial.html

Geolocation software is used to get the geographic location of visitor using IP address. You can determine country, organization and guess visitors location. This is useful for

a] Fraud detection

b] Geo marketing and ad serving

c] Target content

d] Spam fighting

e] And much more.

mod_geoip is a Lighttpd module for fast ip/location lookups. In this tutorial you will learn about mod_geoip installation and php server side examples to determine visitors country.

mod_geoip uses the MaxMind GeoIP / GeoCity databases, which comes in two version:

* Free Version: Country and city databases are free with 99.5% accuracy.
* Paid Version: If you need 99.8% accuracy and other fancy details about IP address use paid version.

See this page for Free vs Paid version details.
A note about CentOS / RHEL / Fedora Linux users

If you are using 3rd party repo (see RPMforge and EPEL repo installations FAQ), you can install binary mod_geoip package as follows and skip directly to configuration part:

# yum install lighttpd-mod_geoip

Step # 1: Install C API for mod_geoip

Type the following command to download and extract MaxMind C API:

# cd /tmp
# wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
# tar -zxvf GeoIP.tar.gz

Configure, compile and install C API:

# cd GeoIP-1.4.6
# ./configure
# make
# make install

Configure GNU ld

You need link mod_geoip using C API. You need to configure dynamic linker run time bindings as follows:

# cd /etc/ld.so.conf.d/
# vi geoip.conf

Append the following configuration:

/usr/local/lib

Save and close the file. Run ldconfig to activate configuration:

# ldconfig

Verify that the name of each directory including /usr/local/lib is scanned, and any links that are created:

# ldconfig -v | less

Sample output:

/usr/local/lib:
libGeoIPUpdate.so.0 -> libGeoIPUpdate.so.0.0.0
libGeoIP.so.1 -> libGeoIP.so.1.4.6
/usr/lib/mysql:
libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
/usr/lib64/mysql:
libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
/lib:
libsepol.so.1 -> libsepol.so.1
libtermcap.so.2 -> libtermcap.so.2.0.8
….
…..

[Output truncated]

Step #2: Download lighttpd latest version

Type the following command:

# cd /tmp
# wget http://www.lighttpd.net/download/lighttpd-1.4.22.tar.gz
# tar -zxvf lighttpd-1.4.22.tar.gz
# cd lighttpd-1.4.22

Step #3: Download mod_geoip patch

Type the following command:

# cd lighttpd-1.4.22/src
# wget http://redmine.lighttpd.net/attachments/download/716/mod_geoip_for_1.4.c -O mod_geoip.c
Compile lighttpd with mod_geoip patch

Edit Makefile.am and add the following after the last module:

lib_LTLIBRARIES += mod_geoip.la
mod_geoip_la_SOURCES = mod_geoip.c
mod_geoip_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_geoip_la_LIBADD = $(common_libadd) -lGeoIP

Save and close the file. Now compile lighttpd as follows:

# cd ..
# aclocal
# automake -a
# autoconf
# make clean

Now you must use –enable-maintainer-mode option:

# ./configure –program-prefix= –prefix=/usr –exec-prefix=/usr –bindir=/usr/bin –sbindir=/usr/sbin –sysconfdir=/etc –datadir=/usr/share –includedir=/usr/include –libdir=/usr/lib –libexecdir=/usr/libexec –localstatedir=/var –sharedstatedir=/usr/com –mandir=/usr/share/man –infodir=/usr/share/info –with-openssl –enable-maintainer-mode
# make
# make install

Step # 4: Download GeoLite Database (Free version)

Type the following command:

# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
# gunzip GeoIP.dat.gz
# ls -lh GeoIP.dat

Sample output:

-rw-r–r– 1 root root 1.1M Mar 9 21:13 GeoIP.dat

Install GeoIP.dat file:

# mkdir /usr/local/GeoIP
# cp -v GeoIP.dat /usr/local/GeoIP

Step # 5: Configure Lighttpd

Open your lighttpd.conf file and append the following configuration. First, enable mod_geoip:

server.modules += ( “mod_geoip”)

Finally, set path to GeoIP.dat file and turn on memory caching for faster lookups:

geoip.db-filename = “/usr/local/GeoIP/GeoIP.dat”
geoip.memory-cache = “enable”

Save and close the file. Finally, restart the lighttpd:

# /etc/init.d/lighttpd restart

Step # 6: Test your setup

mod_geoip will set environment variable such as follows:

GEOIP_COUNTRY_CODE
GEOIP_COUNTRY_CODE3
GEOIP_COUNTRY_NAME
GEOIP_CITY_NAME
GEOIP_CITY_POSTAL_CODE
GEOIP_CITY_LATITUDE
GEOIP_CITY_LONG_LATITUDE
GEOIP_CITY_DMA_CODE
GEOIP_CITY_AREA_CODE

You can use any server side programming language to determine visitors GEO location. Here is a sample php code:

What is my IP address - determine or retrieve my IP address

Another example: Redirecting user to country specific URL

Upgrade Lighttpd from 1.4.20 to 1.4.26

Required:
gcc automake autoconf libtool make
pcre-devel gamin (gamin-devel) zlib zlib-devel bzip2 bzip2-devel curl

wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.26.tar.gz
tar -xzvf lighttpd-1.4.26.tar.gz
cd lighttpd-1.4.26
./configure --with-fam --with-pcre --with-zlib --with-bzip2 --with-openssl --sbindir=/usr/sbin --sysconfdir=/etc/lighttpd
make
make install
/sbin/service lighttpd restart

Very likely Lighty will report SSL error

cd src
rm network.c
wget http://redmine.lighttpd.net/projects/lighttpd/repository/revisions/2716/raw/branches/lighttpd-1.4.x/src/network.c
cd ..
./configure --with-fam --with-pcre --with-zlib --with-bzip2 --with-openssl --sbindir=/usr/sbin --sysconfdir=/etc/lighttpd
make install

@reference:
http://www.vpskong.com/archives/7.html
http://fredericiana.com/2010/03/29/lighttpd-1-4-26-ssl-bug/

Running suPHP(System-wise) and FastCGI(user-specific) concurrently under cPanel/Apache2

Step 1:
Compile PHP using EasyApache3, enables suPHP and FastCGI option

Step 2:
Go to “Apache Config”—>”PHP and SuExec Configuration”
Selects “suphp”, Save

Step 3:
Go to “Apache Config”—>”PHP and SuExec Configuration”
Selects “fcgi”, Save

Step 4:
make a copy of /usr/local/cpanel/cgi-sys/php5
cp /usr/local/cpanel/cgi-sys/php5 /usr/local/cpanel/cgi-sys/php5-bk

Step 5:
Switch back to suPHP [Repet Step 2]

Step 6:
rename “php-bk” to “php5″
mv /usr/local/cpanel/cgi-sys/php5-bk /usr/local/cpanel/cgi-sys/php5

Step 7:
Go to “Apache Config”–>”Include Editor”–>”Pre-VirtualHost file”
Append:
# Fastcgi configuration for PHP5 ( suPHP is active )
LoadModule fcgid_module modules/mod_fcgid.so

<IfModule mod_fcgid.c>
MaxRequestsPerProcess 10000000
</IfModule>

<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from [Your IP]
</Location>

Save

Step 8:
edit the custom directives file

http://www.cpanel.net/documentation/easyapache/customdirectives.html

/usr/local/apache/conf/userdata/std/2/[username]/[x].conf
# Config Fast CGI

<IfModule mod_fcgid.c>
AddHandler fcgid-script .php
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .php
</IfModule>

!!!OR!!!
<IfModule mod_fcgid.c>
AddHandler fcgid-script .php
FCGIWrapper /home/[username]/php-fcgi-wrapper .php
</IfModule>
Save

Step 9:
Create a wrapper script
touch /home/[username]/php-fcgi-wrapper
Edit
#!/bin/sh

# Both are the same.
exec /usr/local/cpanel/cgi-sys/php5
#exec /usr/bin/php-cgi
Save

chmod 755 /home/[username]/php-fcgi-wrapper

Step 10:
Verify and rebuild httpd.conf
/scripts/verify_vhost_includes
/scripts/ensure_vhost_includes –user=[user]

Step 10:
Open http://%5Byour domain in action]/server-info
Use top / ps aux / pstree -Aaup to check

suPHP will execute PHP by calling the ‘php’ under httpd child processes
If succeed,  FastCGI will execute PHP by calling ’suexec’ under httpd child process

Step 11:
If succeed,
Go to “Apache Config”–>”Include Editor”–>”Pre-VirtualHost file”
Remove
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from [Your IP]
</Location>

References:

http://forums.cpanel.net/f5/fastcgi-fcgid-php-ini-per-user-100133.html

http://www.morph3ous.net/2006/08/03/suexec-php-514-fastcgi-and-cpanel/

http://www.howtoforge.com/how-to-set-up-apache2-with-mod_fcgid-and-php5-on-ubuntu-8.10

http://2bits.com/articles/apache-fcgid-acceptable-performance-and-better-resource-utilization.html

http://wherethebitsroam.com/blogs/jeffw/apache-php-fastcgi-and-phpfcgichildren

http://ivan.gudangbaca.com/installing_apache2_and_php5_using_mod_fcgid

Apache mod_info helped me a lot:

http://httpd.apache.org/docs/2.2/mod/mod_info.html

http://serverfault.com/questions/42539/display-apache-configuration