Multisite 10 minute Install:
For list of Linux commands visit: http://www.oreillynet.com/linux/cmd/ or http://www.ss64.com/bash/
Here we go:
[login via ssh / PuTTY]
Answer the questions. This will install everything necessary to run drupal and do the basic configuration, including creating an empty database for drupal.
Apache2 needs to be configured to support
Create
Notes:
...and reload Apache2 to pick up your configuration changes...
...and edit the configurations to use the right database, MySQL user name, and password...
Notes:
Upload Drupal core:
"x.x" should be replaced with the version of Drupal you're installing, e.g. "5.2"
Unpack Drupal core:
Move contents of Drupal core (including .htaccess) to html:
Clean-up:
Create the files directory per Drupal instructions and change permissions (will change permission again after install):
Make directories that will hold custom and contributes modules and themes:
Create directory "www.example.com.tld":
Change permission of "settings.php" per Drupal instructions and copy "settings.php" in default to www.example.com:
Create database and user with permissions:
mysql> \q
Go back to PuTTY to chmod on settings.php in www.example.com:
What next?:
Could use help...:
- Server: LAMP
- SSH (telnet) Client: ssh (PuTTY if you are using Windows to access your LAMP host)
- Must have root access to your server.
For list of Linux commands visit: http://www.oreillynet.com/linux/cmd/ or http://www.ss64.com/bash/
Here we go:
[login via ssh / PuTTY]
Debian (Ubuntu)
Debian and offshoot distributions (e.g. Ubuntu) make installation and configuration very easy. This was done on a Debian distribution, Ubuntu should work identically.Installation
Assumption: apache2 and mysql are already installed. If not, useapt-get install
to install and configure them.# apt-get install drupal6
Answer the questions. This will install everything necessary to run drupal and do the basic configuration, including creating an empty database for drupal.
- Configure database for drupal6 with dbconfig-common? [YES]
- Database type to be used by drupal6: [mysql]
- Password of your database's administrative user: [enter mysql root password]
- MySQL application password for drupal6: [create a password for your drupal6 db]
- (enter the password again for verification)
drupal6
and accessible at http://www.example.com/drupal6
. Do not use it. This is the "prototype" installation that we will use to create the sites we really want to use.Create Site Databases
The easiest way to create databases for your sites is to usedpkg-reconfigure
and answer the questions.# dpkg-reconfigure drupal6
- Re-install database for drupal6? [YES]
- Database type to be used by drupal6: [mysql]
- Connection method for MySQL database of drupal6: [unix socket]
- Name of your database's administrative user: [root]
- Password of your database's administrative user: [enter mysql root password]
- username for drupal6: [ENTER YOUR DB SITE *USERNAME* HERE (e.g. mysite)]
- database name for drupal6: [ENTER YOUR DB *SITE* NAME HERE (e.g. mysite)]
- Repeat the above for each site you want to support.
- I used the same name for the database and the site. KISS.
- Don't use periods (e.g. mysite.com is a bad choice). If you want to spell out the whole name, use underscores instead of periods (e.g. mysite_com).
- The above method ends up using the same site database password for all the sites you create. Advice: use
mysql-admin
(ormysql
) to use different passwords for each site.
Configure Apache2 for Sites
Before you jump to configure your virtual hosts do not forget to add host names in /etc/hosts file.your.ip.add.res vritualhost_1.name
your.2.ip.add.res virtualhost_2.name
vhost
access to your new sites.Create
vhost
site configuration files in /etc/apache2/sites-available/
#
# Virtual hosting configuration for Drupal
#
ServerAdmin [your email address]
DocumentRoot /usr/share/drupal6/
ServerName [your vhost#1 name]
ServerAlias [if you want to support www.example.com and example.com]
RewriteEngine On
RewriteOptions inherit
ServerAdmin [your email address]
DocumentRoot /usr/share/drupal6/
ServerName [your vhost#2 name]
ServerAlias [if you want to support www.example1.com and example1.com]
RewriteEngine On
RewriteOptions inherit
[...repeat for all your vhosts]
- Modify the above items that are in
[square brackets]
. - You likely will want to support port 443 (
https
) as well. See Apache documentation for detailed instructions. - I've chosen to put all the vhosts in one file named
drupal
. You may want to use one file per vhost.
drupal
file in the sites-enabled
directory to enable it in your site:# cd /etc/apache2/sites-enabled
# ln -s ../sites-available/drupal .
...and reload Apache2 to pick up your configuration changes...
# /etc/init.d/apache2 reload
Create Drupal Site Configurations
We need to create Drupal configurations for each site by copying the default configuration to the Drupal site subdirectory.# cd /etc/drupal/6/sites/
# cp -a default [site1.com]
# cp -a default [site2.com]
:
:
...and edit the configurations to use the right database, MySQL user name, and password...
# vi site1.com/dbconfig.php
# vi site2.com/dbconfig.php
:
:
- Modify the above items that are in
[square brackets]
.
Run Drupal and Configure Your Sites
Browse to your sites, runninginstall.php
(e.g. http://www.example.com/install.php
) to configure them.Manual
Get to location where Drupal core will be located:[/]# cd /var/www
Upload Drupal core:
"x.x" should be replaced with the version of Drupal you're installing, e.g. "5.2"
[/var/www]# wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-x.x.tar.gz
Unpack Drupal core:
[/var/www]# tar -zxvf drupal-5.2.tar.gz
Move contents of Drupal core (including .htaccess) to html:
[/var/www]# mv drupal-x.x/* drupal-x.x/.htaccess /var/www/html
Clean-up:
[/var/www]# rm drupal-x.x.tar.gz
[/var/www]# rm drupal-5.2
[/var/www]# cd html
[/var/www/html]# mkdir files
[/var/www/html]# chmod 777 files
[/var/www/html]# cd sites/all
[/var/www/html/sites/all]# mkdir modules
[/var/www/html/sites/all]# mkdir themes
[/var/www/html/sites/all]# cd modules
[/var/www/html/sites/all/modules]# mkdir custom
[/var/www/html/sites/all/modules]# mkdir contrib
[/var/www/html/sites/all/modules]# cd ../
[/var/www/html/sites/all]# cd themes
[/var/www/html/sites/all/themes]# mkdir custom
[/var/www/html/sites/all/themes]# mkdir contrib
[/var/www/html/sites/all/themes]# cd ../
[/var/www/html/sites/all]# cd ../
[/var/www/html/sites]# mkdir www.example.com
[/var/www/html/sites]# cd default
[/var/www/html/sites/default]# chmod 777 settings.php
[/var/www/html/sites/default]# cd ../
[/var/www/html/sites]# cp -a default www.example.com
[/var/www/html/sites]# mysql
mysql> CREATE DATABASE wwwexamplecom_drupal;
mysql> GRANT ALL PRIVILEGES ON wwwwexamplecom_drupal_drupal.* TO 'wwwexamplecom_drupal_myusername'@'localhost' IDENTIFIED BY 'mypassword';
Go back to PuTTY to chmod on settings.php in www.example.com:
[/var/www/html/sites]# cd www.example.com
[/var/www/html/sites/www.example.com]# chmod 755 settings.php
[/var/www/html/sites/www.example.com]# logout
- Make changes to "settings.php" in www.example.com? I've read that it's not necessary to make changes to setting.php.
- Make changes to "httpd.conf" in /usr/local/apache/conf?
Could use help...:
- Help making improvements to steps articulated above
- Help with next steps so that I/we can get on to grander things, like creating modules, custom themes, profiles, (and maybe - just maybe - spend some time working on business strategy :-)
TESTING YOUR MULTISITE INSTALLATION(S)
Now that we have successfully setup both our multisite installations (1 & 2), we can proceed to test our installation to see how this will benefit us in the future for accomplishing tasks much quicker between sites that rely on the same code base or share similar modules & themes.- Download the latest version of your favorite drupal 6 module. Here we will be using "Views".
- Place the "Views" module inside of your main sites drupal modules folder: multisite-main/sites/all/modules/views, this module will now be shared across all multisite installations. Same goes for any themes you setup in the /sites/all/themes folder. You may now enable it for individual sites by visiting your sites "admin/build/modules" page. (ie. http://multisite-1/multisite-main/admin/build/modules).
- Likewise, if you do not want to share modules/themes across sites you would create a "modules" or "themes" folder inside of your multisite-1 or multisite-2 folder, and place your site specific modules inside of them.
PHP Training in Chennai
ReplyDeleteOnline PHP Training
Online PHP Training India
PHP Training Chennai
PHP Training institute in Chennai