Drupal: .htaccess Access Deny
August 21, 2014 – 7:59 am | No Comment

In this article I will tell how to forbid access to certain resources for some clients. The instructions will include descriptions of different directives.

Read the full story »
CSS Templates

Contain reviews and news about CSS Templates.

Freebies

Contain freebies such as icons, graphics, headers and images for your websites.

Fun Stuff

Contains other fun stuff for entertainment or interesting site showcase.

How-To

Contain technical elaborations on some specific workarounds or common tweak.

Joomla Templates

Contains reviews and news about Joomla templates.

Uncategorized »

MySQL multiple instance on CentOS howto
November 17, 2014 – 4:42 am | No Comment

Create new database instance on new destination

mkdir /u02/mysql
mkdir /u02/mysql/data
mkdir /u02/mysql/log
mkdir /u02/mysql/run
mkdir /u02/mysql/lock

chown -R mysql:mysql /u02/mysql
mysql_install_db --datadir=/u02/mysql/data --user=mysql

 

Create new configuration file for new instance

/etc/my.server2.cnf

[mysqld]
port=3307
datadir=/u02/mysql/data
socket=/u02/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

log-bin = /u02/mysql/log/mysql-bin.log

[mysqld_safe]
log-error=/u02/mysql/log/mysqld.log
pid-file=/u02/run/mysqld.pid

[isamchk]

[myisamchk]

Create new init script

/etc/rc.d/init.d/mysqld.server2

#!/bin/bash
#
# mysqld.server2 This shell script takes care of starting and stopping
#               the MySQL subsystem (mysqld).
#
# chkconfig: - 64 36
# description:  MySQL database server 2nd instance.
# processname: mysqld
# config: /etc/my.server2.cnf
# pidfile: /u02/mysql/run/mysqld.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

prog="MySQL"

# extract value of a MySQL option from config files
# Usage: get_mysql_option SECTION VARNAME DEFAULT
# result is returned in $result
# We use my_print_defaults which prints all options from multiple files,
# with the more specific ones later; hence take the last match.
get_mysql_option(){
        result=`/usr/bin/my_print_defaults "$1" | sed -n "s/^--$2=//p" | tail -n 1`
        if [ -z "$result" ]; then
            # not found, use default
            result="$3"
        fi
}

get_mysql_option mysqld datadir "/u02/mysql/data"
datadir="/u02/mysql/data"
get_mysql_option mysqld socket "$datadir/mysql.sock"
socketfile="$datadir/mysql.sock"
get_mysql_option mysqld_safe log-error "/u02/mysql/log/mysqld.log"
errlogfile="/u02/mysql/log/mysqld.log"
get_mysql_option mysqld_safe pid-file "/u02/mysql/run/mysqld.pid"
mypidfile="/u02/mysql/run/mysqld.pid"

start(){
        touch "$errlogfile"
        chown mysql:mysql "$errlogfile"
        chmod 0640 "$errlogfile"
        [ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile"
        if [ ! -d "$datadir/mysql" ] ; then
            action $"Initializing MySQL database: " /usr/bin/mysql_install_db
            ret=$?
            chown -R mysql:mysql "$datadir"
            if [ $ret -ne 0 ] ; then
                return $ret
            fi
        fi
        chown mysql:mysql "$datadir"
        chmod 0755 "$datadir"
        # Pass all the options determined above, to ensure consistent behavior.
        # In many cases mysqld_safe would arrive at the same conclusions anyway
        # but we need to be sure.
        /usr/bin/mysqld_safe --defaults-file=/etc/my.server2.cnf --datadir="$datadir" --socket="$socketfile" \
                --log-error="$errlogfile" --pid-file="$mypidfile" \
                >/dev/null 2>&1 &
        ret=$?
        # Spin for a maximum of N seconds waiting for the server to come up.
        # Rather than assuming we know a valid username, accept an "access
        # denied" response as meaning the server is functioning.
        if [ $ret -eq 0 ]; then
            STARTTIMEOUT=30
            while [ $STARTTIMEOUT -gt 0 ]; do
                RESPONSE=`/usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping 2>&1` && break
                echo "$RESPONSE" | grep -q "Access denied for user" && break
                sleep 1
                let STARTTIMEOUT=${STARTTIMEOUT}-1
            done
            if [ $STARTTIMEOUT -eq 0 ]; then
                    echo "Timeout error occurred trying to start MySQL Daemon."
                    action $"Starting $prog: " /bin/false
                    ret=1
            else
                    action $"Starting $prog: " /bin/true
            fi
        else
            action $"Starting $prog: " /bin/false
        fi
        [ $ret -eq 0 ] && touch /u02/mysql/lock/mysqld
        return $ret
}

stop(){
        MYSQLPID=`cat "$mypidfile"  2>/dev/null `
        if [ -n "$MYSQLPID" ]; then
            /bin/kill "$MYSQLPID" >/dev/null 2>&1
            ret=$?
            if [ $ret -eq 0 ]; then
                STOPTIMEOUT=60
                while [ $STOPTIMEOUT -gt 0 ]; do
                    /bin/kill -0 "$MYSQLPID" >/dev/null 2>&1 || break
                    sleep 1
                    let STOPTIMEOUT=${STOPTIMEOUT}-1
                done
                if [ $STOPTIMEOUT -eq 0 ]; then
                    echo "Timeout error occurred trying to stop MySQL Daemon."
                    ret=1
                    action $"Stopping $prog: " /bin/false
                else
                    rm -f /u02/mysql/lock/mysqld
                    rm -f "$socketfile"
                    action $"Stopping $prog: " /bin/true
                fi
            else
                action $"Stopping $prog: " /bin/false
            fi
        else
            ret=1
            action $"Stopping $prog: " /bin/false
        fi
        return $ret
}

restart(){
    stop
    start
}

condrestart(){
    [ -e /u02/mysql/lock/mysqld ] && restart || :
}

# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status mysqld
    ;;
  restart)
    restart
    ;;
  condrestart)
    condrestart
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|condrestart|restart}"
    exit 1
esac

exit $?

Enable auto startup for new instance and start it

chkconfig mysqld.server2 on
service mysqld.server2 start

Set new root password

mysqladmin -P 3307 --protocol=tcp -u root password 'NEWPASSWORD'

Connect new database

mysql -P 3307 --protocol=tcp -u root -p

[root@lxpsrv01 ~]# mysql -P 3307 --protocol=tcp -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.0.45-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)
mysql>
Drupal: Menu Functions
July 3, 2013 – 10:38 pm | No Comment
Drupal: Menu Functions

In this article, I would tell you about Drupal menu functions:

Drupal: Menu Constants And Functions
June 26, 2012 – 12:23 pm | No Comment
Drupal: Menu Constants And Functions

In this article you will find a list of main Drupal menu constants with descriptions and code examples.

Drupal: How To Setup Comments Notification
March 26, 2012 – 10:15 am | No Comment
Drupal: How To Setup Comments Notification

A site user should receive email notification about every new comment added by another user. Here I will tell how to setup such notifications.

Drupal: Plural Noun Forms For Translated Articles
March 21, 2012 – 2:34 pm | No Comment
Drupal: Plural Noun Forms For Translated Articles

From this article, you will get know how to configure a module so that when you translate a site to other languages plural forms work correctly.

Drupal: How To Show List Of Terms In Alphabetical Order
March 13, 2012 – 4:47 am | No Comment
Drupal: How To Show List Of Terms In Alphabetical Order

In this article, I would tell you how Drupal allows to show a list of a certain vocabulary taxonomy terms in alphabetical order. We will also get know of how to show node list for …

What has been changed in Book module in Drupal 6
January 16, 2012 – 10:54 am | No Comment
What has been changed in Book module in Drupal 6

In this article I will tell you the recent changes for Book module. Knowing about that will help you to adapt snippets and modules which work with Book module for working in Drupal 6.

How To Compress Traffic
November 14, 2011 – 11:11 am | No Comment

This article is devoted to traffic compression. Here I will tell how to proceed speed-up uploading CSS and JS files by compressing data on a server and passing the compressed copy yo a browser.

Drupal API
November 4, 2011 – 8:09 am | No Comment
Drupal API

In this article, I would tell you the basics of Drupal API. You will learn how to find all required API information here.

Drupal: Theme Function Flow Diagram
July 4, 2011 – 9:37 am | No Comment
Drupal: Theme Function Flow Diagram

In this article we will try to understand what was changed in working of theme() function in Drupal 6.

Drupal: Shared Sign-On Module
December 10, 2010 – 9:39 am | No Comment
Drupal: Shared Sign-On Module

This module implements shared sign-ons between related Drupal-based sites on one server with a shared database. It can be used standalone, but is most tested in conjunction with the domain (like Domain Access) …