特殊:Badtitle/NS100:Drupal:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Wikibot留言 | 贡献
无编辑摘要
Wikibot留言 | 贡献
无编辑摘要
 
第1行: 第1行:
{{From|https://help.ubuntu.com/community/Drupal}}
{{From|https://help.ubuntu.com/community/Drupal}}
{{Languages|UbuntuHelp:Drupal}}
{{Languages|UbuntuHelp:Drupal}}
{|border="1" cellspacing="0"
=== Introduction ===
|This documentation needs to be updated for installing Drupal using Postgresql-8.2 on Feisty.
[http://drupal.org Drupal] is a robust Content Management System that runs on a LAMP server. The LAMP server uses MySQL by default, but [[UbuntuHelp:PostgreSQL|PostgreSQL]] can also be used with Drupal.
|}
It can host blogs, forums, and a variety of other content, and has a huge selection of add-on [http://drupal.org/project/Modules modules] for other functionality, such as advertising, chatbox, e-commerce, various multimedia tools, instant messenger, customer relationship management, printer friendly pages, and webcams.
=== Drupal ===
There are currently two stable branches of Drupal, Drupal5 and Drupal6 (Drupal7 is in development). Versions from either branch can be installed in more or less the same way.
[http://drupal.org Drupal] is a robust Content Management System that runs on LAMP. Without any of its additional modules, it can host blogs, forums, and a variety of other content.
Both Drupal5 and Drupal6 versions are found in the repositories.  
It has an astounding number of [http://drupal.org/project/Modules modules] which bring added functionality to your site, including advertising, chatbox, e-commerce, various multimedia tools, instant messenger, light customer relationship management, printer friendly pages, webcam, etc...
Accessory Drupal add-on [http://drupal.org/project/Modules modules] are not included in the Ubuntu packages, however, and must be installed manually after initial installation.
Follow these instructions to install Drupal 6.x on Ubuntu.  This page also explains the steps used to install the 5.x branch of Drupal on Ubuntu.
=== LAMP server installation ===
To install Drupal-5.1 with php5 and Postgresql-8.1, follow instructions at bottom of page.
Use [[UbuntuHelp:InstallingSoftware| any method]] to install the LAMP stack packages. Visit [[UbuntuHelp:ApacheMySQLPHP|Apache PHP MySQL]] for more information on LAMP.
=== Installing ===
==== Easy LAMP server installation ====
An older Drupal version 5.7 is present in the repositories, but it is no longer supported upstream. A more recent version has more modules and themes.
The easiest method is to use a single command from the command-line terminal, which installs the entire LAMP stack in an integrated package:
Also, none of the Drupal modules are packaged and present in the repositories.
Therefore, it is advisable to install the latest version from drupal.org.
==== Install the LAMP stack ====
Use [[UbuntuHelp:InstallingSoftware| any method]] to install the LAMP stack packages.
<pre><nowiki>
<pre><nowiki>
apache2 php5-mysql php5-gd libapache2-mod-php5 mysql-server
sudo tasksel install lamp-server
</nowiki></pre>
</nowiki></pre>
Set a mysql-root password (not the same as a root password, but a password for mysql)
I also recommend (optionally) enabling the rewrite functions of Apache2, which helps with many modules in Drupal and with the correct redirection of webpages on your Apache server:
<pre><nowiki>
<pre><nowiki>
mysql -u root
sudo a2enmod rewrite
 
sudo /etc/init.d/apache2 restart
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
</nowiki></pre>
</nowiki></pre>
A successful mysql command will show:
If you are using Ubuntu 9.10 Server, after enabling the rewrite you still cannot select enable clean url's in your Drupal install then edit this file "/ect/apache2/sites-available/default" with command:
'''Query OK, 0 rows affected (0.00 sec)'''
Quit the mysql prompt:
<pre><nowiki>
<pre><nowiki>
mysql> \q
sudo gedit /etc/apache2/sites-available/default
</nowiki></pre>
</nowiki></pre>
You should now have a functional LAMP stack and a password for the mysql root user.
Find every occurrence of "AllowOverride none" and replace with "AllowOverride All" then save and restart your server.
Visit [[UbuntuHelp:ApacheMySQLPHP|Apache PHP MySQL]] for more information on LAMP.
==== Get the most recent version of Drupal ====
There are two stable branches of Drupal.  Currently 5.20 and 6.14.  Both versions can be installed more or less the same way. The following instructions are for version 6.14.
<pre><nowiki>
<pre><nowiki>
wget http://ftp.drupal.org/files/projects/drupal-6.14.tar.gz
sudo /etc/init.d/apache2 restart
tar xvzf drupal-6.14.tar.gz
or
sudo mkdir /var/www/drupal
sudo service apache2 restart
sudo mv drupal-6.14/* drupal-6.14/.htaccess /var/www/drupal
</nowiki></pre>
</nowiki></pre>
It is required to create a ''files'' subdirectory in your drupal default site installation directory. It will be used for files such as custom logos, user avatars, and other media associated with your new site.
Also, you need to change the RewriteBase line in the htaccess file in your drupal folder in order to get clean urls working (Ubuntu 10.04).
<pre><nowiki>
<pre><nowiki>
sudo mkdir /var/www/drupal/sites/default/files
sudo gedit /etc/drupal/6/htaccess
sudo chown www-data:www-data /var/www/drupal/sites/default/files
</nowiki></pre>
</nowiki></pre>
It is also required to create the initial configuration file for the default site.
==== Individual LAMP component installation ====
A more difficult method is to install all the LAMP components (Apache2, MySQL, PHP) individually, configure them separately, and hope they all work together well. Note that if you intend to use [[UbuntuHelp:PostgreSQL|PostgreSQL]], you do not need to install the MySQL components.
<pre><nowiki>
<pre><nowiki>
sudo cp /var/www/drupal/sites/default/default.settings.php /var/www/drupal/sites/default/settings.php
apache2 php5-mysql php5-gd libapache2-mod-php5 mysql-server
sudo chown www-data:www-data /var/www/drupal/sites/default/settings.php
</nowiki></pre>
</nowiki></pre>
==== Drupal needs a database, user and password ====
==== Using Drupal with MySQL ====
You need to create a drupal database and then load the database schema into it. You can do this with PhpMyAdmin or via the command line:
===== Manually configure MySQL database =====
<pre><nowiki>
Note: This step is not necessary with the current repository packages of MySQL, which complete this step automatically during installation.  
mysqladmin -u root -p create drupal
Set a mysql-root password (not the same as a root password, but a password for mysql)
</nowiki></pre>
Where ''drupal'' is the name you picked for the mysql database that Drupal will use.  You can call it anything you want.
<pre><nowiki>
<pre><nowiki>
mysql -u root -p
mysql -u root -p


mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'drupalpass';
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
</nowiki></pre>
You do not want to have Drupal use the mysql root user to access the database.  The above command creates a mysql user (other than the mysql root user) with some priviledges to use the ''drupal'' database.  You should pick something different than ''drupaluser'' and ''drupalpass''.  If the command was successful, activate the new permissions:
<pre><nowiki>
mysql> FLUSH PRIVILEGES;
</nowiki></pre>
</nowiki></pre>
A successful mysql command will show:
'''Query OK, 0 rows affected (0.00 sec)'''
Quit the mysql prompt:
Quit the mysql prompt:
<pre><nowiki>
<pre><nowiki>
mysql> \q
mysql> \q
</nowiki></pre>
</nowiki></pre>
==== PHP memory limit ====
You should now have a functional LAMP stack and a password for the mysql root user.
Prior to 7.04, you may need to increase the amount of memory PHP can use to run scripts,
==== Using Drupal with PostgreSQL ====
Edit the /etc/php5/apache2/php.ini file and increase the memory_limit value to 32 megs or another value of your choice (8 megs is not enough for Drupal)
You can use Drupal6 with [[UbuntuHelp:PostgreSQL|PostgreSQL]] instead of MySQL (but not every Drupal module will work well with [[UbuntuHelp:PostgreSQL|PostgreSQL]]). Install [[UbuntuHelp:PostgreSQL|PostgreSQL]]:
==== Reload Apache2 ====
You probably need to force-reload apache2 if you have not done so since you installed LAMP.
<pre><nowiki>
sudo /etc/init.d/apache2 restart
</nowiki></pre>
=== Final Installation Settings ===
Point your browser to ''localhost/drupal/install.php'', create an account, login, and follow the installation instructions to finish loading the database and configuring the site.
https://help.ubuntu.com/community/Drupal?action=AttachFile&do=get&target=drupal.jpg
If you got a page full of warnings, follow the prompts to resolve the issues (and add the fixes to this wiki page if appropriate).
The first account will automatically become the main administrator account with total control.
https://help.ubuntu.com/community/Drupal?action=AttachFile&do=get&target=drupal1.jpg
Please refer to the [http://drupal.org/node/260 drupal installation manual] for more advanced hosting features.
(Mike_B_sixosix 02.05.09) Comment:
I had to go back and edit the settings.php page with the drupal db username, password, and db name in order for the database portion of the install.php page to recognize that I had made the changes. After manually updating the file and saving, I refreshed the page and it automatically recognized the changes and moved to the next step. YMMV
(Mike_B_sixosix 02.05.09) Comment:
I also had to
<pre><nowiki>
<pre><nowiki>
sudo chown www-data:www-data /var/www/drupal/sites/default/files
sudo apt-get install postgresql php5-pgsql
</nowiki></pre>
</nowiki></pre>
directory in order for the install.php page to make file changes.
===== Manually configure PostgreSQL database =====
=== POSTGRESQL-8.1 with PHP5 and DRUPAL5.1 ===
Note: These steps are not necessary if you are using a repository package installation of Drupal. (The repository package installations automatically prompt the user for [[UbuntuHelp:PostgreSQL|PostgreSQL]] options during installation.) This method is needed only for manual installations of Drupal.  
Some drupal modules are not tested using [[UbuntuHelp:PostgreSQL|PostgreSQL]]. However, if you want to run your drupal site using postgresql, follow these instructions.
These instructions work on Ubuntu 6.06 and 6.10.
==== Install Postgresql 8.1 ====
<pre><nowiki>
<pre><nowiki>
$ sudo aptitude install postgresql-8.1
sudo su postgres
$ sudo su postgres
</nowiki></pre>
</nowiki></pre>
Create a database and user for drupal on Postgresql
Create a database and user for drupal on Postgresql
第129行: 第93行:
Enter the password for user drupaluser:
Enter the password for user drupaluser:
</nowiki></pre>
</nowiki></pre>
==== Install Drupal ====
=== Drupal Installation ===
Install drupal dependencies
Note: The two methods listed below are not compatible. The Ubuntu package (from the repositories) installs Drupal6 in different directories from the manual method. Choose one method or the other, but do not attempt to use both. You cannot switch back and forth between the two methods.
==== Install Drupal package from the Ubuntu repositories ====
You can choose whether to install Drupal5 or Drupal6 from the repositories. As always, repository version are not the most current versions, but they can be updated easily.
<pre><nowiki>
<pre><nowiki>
# sudo aptitude install libapache2-mod-php5 php5-imagick php5-ldap php5-pgsql php5 zlib1g-dev
sudo apt-get install drupal6
</nowiki></pre>
</nowiki></pre>
Download the drupal core files
or
<pre><nowiki>
<pre><nowiki>
$ sudo wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-5.1.tar.gz
sudo apt-get install drupal5
</nowiki></pre>
</nowiki></pre>
Unpack the tarball
==== Manual installation of Drupal ====
The following instructions are for version 6.15 of the Drupal6 branch, which was the most current version at the time of writing. (A similar method can be used for the most current version of Drupal5). This installation does not install Drupal in directories that are compatible with the respository packages.
<pre><nowiki>
<pre><nowiki>
tar xvzf drupal-5.1.tar.gz
wget http://ftp.drupal.org/files/projects/drupal-6.15.tar.gz
tar xvzf drupal-6.15.tar.gz
sudo mkdir /var/www/drupal
sudo mv drupal-6.15/* drupal-6.15/.htaccess /var/www/drupal
</nowiki></pre>
</nowiki></pre>
You can read the install file on creating postgresql database and user (already done above)
It is required to create a ''files'' subdirectory in your drupal default site installation directory.  It will be used for files such as custom logos, user avatars, and other media associated with your new site.
<pre><nowiki>
<pre><nowiki>
# sudo nano drupal-5.1/INSTALL.pgsql.txt
sudo mkdir /var/www/drupal/sites/default/files
sudo chown www-data:www-data /var/www/drupal/sites/default/files
</nowiki></pre>
</nowiki></pre>
Make a folder for your drupal installation.
It is also required to create the initial configuration file for the default site.
<pre><nowiki>
<pre><nowiki>
$ sudo mkdir /var/www/drupal
sudo cp /var/www/drupal/sites/default/default.settings.php /var/www/drupal/sites/default/settings.php
sudo chown www-data:www-data /var/www/drupal/sites/default/settings.php
</nowiki></pre>
</nowiki></pre>
Move your drupal files into the drupal folder
===== Manually configure MySQL database =====
You need to create a MySQL drupal database and then load the database schema into it.  You can do this with [[UbuntuHelp:PhpMyAdmin|PhpMyAdmin]] or via the command line:
<pre><nowiki>
<pre><nowiki>
$ sudo mv drupal-5.1/* drupal-5.1/.htaccess /var/www/drupal
mysqladmin -u root -p create drupal
</nowiki></pre>
</nowiki></pre>
Create a /files storage folder for things like files, images, etc
Where ''drupal'' is the name you picked for the mysql database that Drupal will use.  You can call it anything you want.
<pre><nowiki>
<pre><nowiki>
$ sudo mkdir /var/www/drupal/files
mysql -u root -p
 
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'drupalpass';
</nowiki></pre>
</nowiki></pre>
Make the data storage writeable
You do not want to have Drupal use the mysql root user to access the database.  The above command creates a mysql user (other than the mysql root user) with some priviledges to use the ''drupal'' database.  You should pick something different than ''drupaluser'' and ''drupalpass''.  If the command was successful, activate the new permissions:
<pre><nowiki>
<pre><nowiki>
$ sudo chown -R www-data:www-data /var/www/drupal/files
mysql> FLUSH PRIVILEGES;
</nowiki></pre>
</nowiki></pre>
Quit the mysql prompt:
<pre><nowiki>
mysql> \q
</nowiki></pre>
==== Miscellaneous adjustments for manual installation ====
(Mike_B_sixosix 02.05.09) Comment:
When I used the manual installation method I had to go back and edit the settings.php page with the drupal db username, password, and db name in order for the database portion of the install.php page to recognize that I had made the changes. After manually updating the file and saving, I refreshed the page and it automatically recognized the changes and moved to the next step.
(Mike_B_sixosix 02.05.09) Comment:
I also had to
<pre><nowiki>
sudo chown www-data:www-data /var/www/drupal/sites/default/files
</nowiki></pre>
directory in order for the install.php page to make file changes.
==== Manually configure postgreSQL for Drupal ====
Edit the settings.php file so that drupal can know what user, password and database to use.
Edit the settings.php file so that drupal can know what user, password and database to use.
<pre><nowiki>
<pre><nowiki>
第170行: 第159行:
</nowiki></pre>
</nowiki></pre>
Save the file (Ctrl + x, y)
Save the file (Ctrl + x, y)
Edit the amount of memory PHP can use to run scripts. The default 8mb is not enough for drupal, set to 32mb or more
=== Adjust PHP memory limit ===
You should increase the default PHP memory limit value (the amount of memory dedicated to running scripts), since the default 8 Mb is not sufficient. Use 96 Mb (or even 160M) if you intend to use graphics (although for simple uses 32 Mb may be sufficient).
In newer versions of Drupal6, you can simply edit the settings.php file and add the line:
<pre><nowiki>
<pre><nowiki>
$ sudo nano /etc/php5/apache2/php.ini file
ini_set('memory_limit', '96M');
; Resource Limits ;
memory_limit = 160M
You may also edit the example lines to accommodate Postgresql options
; Example lines:
;extensions=pgsql.so
</nowiki></pre>
</nowiki></pre>
Save the changes to the php.ini file (Ctrl + x, y)
In older versions of Drupal5, or if using PHP for many different uses, it is best to increase the amount of PHP memory using this method:
Restart apache
Edit the /etc/php5/apache2/php.ini file and increase the memory_limit value to 96M (or another value of your choice).
If using [[UbuntuHelp:PostgreSQL|PostgreSQL]], you can also edit the /etc/php5/apache2/php.ini file to accommodate [[UbuntuHelp:PostgreSQL|PostgreSQL]] options by adding the line:
<pre><nowiki>
<pre><nowiki>
sudo /etc/init.d/apache2 restart
extensions=pgsql.so;
</nowiki></pre>
</nowiki></pre>
==== Finish Installation ====
=== Adjust PHP Error Reporting ===
In a browser, enter: http://localhost/drupal/install.php
An adjustment to the error reporting is required for the install.php page to come up properly.  Edit your settings.php file (e.g., /etc/drupal/6/sites/default/settings.php) and add the following ini_set line after the existing ini_set lines:
==== Configuration ====
File System
Change the Download Method from public to private
Select 'save configuration'
Cron
Click on 'You can run manually'
For further configuration, please refer to:http://drupal.org/node/260
=== Install Script ===
usage: install_drupal user pass domain dbpass dbname
This is a work in progress. it creates a user with password, installs drupal-6.4 from drupal.org, sets up apache2 and bind9 for the domain, creates the database dbname using the root password dbpass for user with pass.
If it breaks please advise [email protected]. If it works enter http://domain/ in your browser.
<pre><nowiki>
<pre><nowiki>
#!/bin/bash
ini_set('error_reporting',          4096);
echo user=$1
echo password=$2
echo domain=$3
echo dbpass=$4
echo dbname=$5
useradd $1 -p `mkpasswd $2`
mkdir /home/$1
mkdir /home/$1/public_html
cd /home/$1/public_html
wget http://ftp.drupal.org/files/projects/drupal-6.4.tar.gz
tar xzvf drupal-6.4.tar.gz
mv drupal-6.4 $3
mkdir /home/$1/public_html/$3/sites/all/modules
mkdir /home/$1/public_html/$3/sites/all/themes
mkdir /home/$1/public_html/$3/sites/default/files
chmod -R 777 /home/$1/public_html/$3/sites/default/files
cp /home/$1/public_html/$3/sites/default/default.settings.php /home/$1/public_html/$3/sitesdefault/settings.php
chmod 777 /home/$1/public_html/$3/sites/default/settings.php
chown -R $1.$1 /home/$1
mysql -uroot -p$4 -e "DROP USER '$1'@'localhost';"
mysql -uroot -p$4 -e "DROP DATABASE IF EXISTS $5;"
mysql -uroot -p$4 -e "CREATE USER '$1'@'localhost' IDENTIFIED BY '$2';"
mysql -uroot -p$4 -e "CREATE DATABASE IF NOT EXISTS $5;"
mysql -uroot -p$4 -e "GRANT USAGE ON $5.* TO '$1'@'localhost' IDENTIFIED BY '$2';"
mysql -uroot -p$4 -e "GRANT ALL PRIVILEGES ON $5.* TO '$1'@'localhost';"
mysql -uroot -p$4 -e "flush privileges;"
echo "<VirtualHost *>" >/etc/apache2/sites-available/$3
echo "  DocumentRoot /home/$1/public_html/$3" >>/etc/apache2/sites-available/$3
echo "  ServerName $3" >>/etc/apache2/sites-available/$3
echo "  <Directory /home/$1/public_html/$3>" >>/etc/apache2/sites-available/$3
echo "    allow from all" >>/etc/apache2/sites-available/$3
echo "    AllowOverride AuthConfig FileInfo Indexes Limit Options" >>/etc/apache2/sites-available $3
echo "    Options FollowSymLinks SymLinksIfOwnerMatch +Indexes" >>/etc/apache2/sites-available/$3
echo "  </Directory>" >>/etc/apache2/sites-available/$3
echo "  ServerAlias www.$3" >>/etc/apache2/sites-available/$3
echo "</VirtualHost>" >>/etc/apache2/sites-available/$3
a2ensite $3
echo "\$TTL 86400" >/etc/bind/$3
echo "$3. IN SOA www.$3. root.$3. (" >>/etc/bind/$3
echo "    `date +%Y%m%d`00" >>/etc/bind/$3
echo "    8H" >>/etc/bind/$3
echo "    2H" >>/etc/bind/$3
echo "    4W" >>/etc/bind/$3
echo "    1D)" >>/etc/bind/$3
echo "    IN NS `hostname`"  >>/etc/bind/$3
echo "$3 A `ifconfig|awk '/Bcast:/ {print $2}'|cut -d":" -f2`" >>/etc/bind/$3
echo "www.$3 A `ifconfig|awk '/Bcast:/ {print $2}'|cut -d":" -f2`" >>/etc/bind/$3
echo "zone \"$3\" {" >>/etc/bind/named.conf.local
echo "  type master;" >>/etc/bind/named.conf.local
echo "  file \"/etc/bind/$3\";" >>/etc/bind/named.conf.local
echo "  };" >>/etc/bind/named.conf.local
echo "127.0.0.1 $3" >>/etc/hosts
/etc/init.d/bind9 reload
/etc/init.d/apache2 force-reload
</nowiki></pre>
</nowiki></pre>
=== External Links ===
This is based upon the recommendations from the drupal.org forms:  http://drupal.org/node/514334#comment-1912924
The following are unverified suggestions made by users.
=== Reload Apache2 ===
==== Turnkey Linux ====
Reload Apache2.
An Ubuntu-based [[UbuntuHelp: http://www.turnkeylinux.org/drupal6 | Drupal appliance ]] is one of the easiest ways to get up and running with Drupal on Ubuntu. It's part of a family of pre-integrated [[UbuntuHelp: http://www.turnkeylinux.org/ | TurnKey Linux ]] Virtual appliances based on Ubuntu 8.04.3 (Hardy LTS).
<pre><nowiki>
sudo /etc/init.d/apache2 restart
</nowiki></pre>
=== Complete Drupal Installation through a Browser ===
Point your browser to ''localhost/drupal/install.php'', create an account, login, and follow the installation instructions to finish loading the database and configuring the site.
EDIT: (Michael: k3lt01, April 23rd 2010)
For a repository install of Drupal6 I had to point my browser to "localhost/drupal6/install.php"
https://help.ubuntu.com/community/Drupal?action=AttachFile&do=get&target=drupal.jpg
If you got a page full of warnings, follow the prompts to resolve the issues (and add the fixes to this wiki page if appropriate).
The first account will automatically become the main administrator account with total control.
https://help.ubuntu.com/community/Drupal?action=AttachFile&do=get&target=drupal1.jpg
Please refer to the [http://drupal.org/node/260 drupal installation manual] for more advanced hosting features.
=== Other Resources ===
* [http://ubuntuguide.org/wiki/Drupal6_tips Ubuntuguide.org] -- simplified instructions for installing Drupal6 in Ubuntu. Includes advanced configuration options.
* [http://kubuntuguide.org//Drupal6_tips Kubuntuguide.org] -- simplified instructions for installing Drupal6 in Kubuntu. Includes advanced configuration options.
=== TurnKey Drupal Appliance ===
Some users may prefer to skip manual installation by using the unofficial pre-integrated [http://www.turnkeylinux.org/drupal6 TurnKey Drupal Appliance] based on Ubuntu LTS.


[[category:UbuntuHelp]]
[[category:UbuntuHelp]]

2010年5月19日 (三) 22:07的最新版本

{{#ifexist: :Drupal/zh | | {{#ifexist: Drupal/zh | | {{#ifeq: {{#titleparts:Drupal|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:Drupal|1|-1|}} | zh | | }}

Introduction

Drupal is a robust Content Management System that runs on a LAMP server. The LAMP server uses MySQL by default, but PostgreSQL can also be used with Drupal. It can host blogs, forums, and a variety of other content, and has a huge selection of add-on modules for other functionality, such as advertising, chatbox, e-commerce, various multimedia tools, instant messenger, customer relationship management, printer friendly pages, and webcams. There are currently two stable branches of Drupal, Drupal5 and Drupal6 (Drupal7 is in development). Versions from either branch can be installed in more or less the same way. Both Drupal5 and Drupal6 versions are found in the repositories. Accessory Drupal add-on modules are not included in the Ubuntu packages, however, and must be installed manually after initial installation.

LAMP server installation

Use any method to install the LAMP stack packages. Visit Apache PHP MySQL for more information on LAMP.

Easy LAMP server installation

The easiest method is to use a single command from the command-line terminal, which installs the entire LAMP stack in an integrated package:

sudo tasksel install lamp-server

I also recommend (optionally) enabling the rewrite functions of Apache2, which helps with many modules in Drupal and with the correct redirection of webpages on your Apache server:

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart

If you are using Ubuntu 9.10 Server, after enabling the rewrite you still cannot select enable clean url's in your Drupal install then edit this file "/ect/apache2/sites-available/default" with command:

sudo gedit /etc/apache2/sites-available/default

Find every occurrence of "AllowOverride none" and replace with "AllowOverride All" then save and restart your server.

sudo /etc/init.d/apache2 restart
or
sudo service apache2 restart

Also, you need to change the RewriteBase line in the htaccess file in your drupal folder in order to get clean urls working (Ubuntu 10.04).

sudo gedit /etc/drupal/6/htaccess

Individual LAMP component installation

A more difficult method is to install all the LAMP components (Apache2, MySQL, PHP) individually, configure them separately, and hope they all work together well. Note that if you intend to use PostgreSQL, you do not need to install the MySQL components.

apache2 php5-mysql php5-gd libapache2-mod-php5 mysql-server

Using Drupal with MySQL

Manually configure MySQL database

Note: This step is not necessary with the current repository packages of MySQL, which complete this step automatically during installation. Set a mysql-root password (not the same as a root password, but a password for mysql)

mysql -u root -p

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

A successful mysql command will show: Query OK, 0 rows affected (0.00 sec) Quit the mysql prompt:

mysql> \q

You should now have a functional LAMP stack and a password for the mysql root user.

Using Drupal with PostgreSQL

You can use Drupal6 with PostgreSQL instead of MySQL (but not every Drupal module will work well with PostgreSQL). Install PostgreSQL:

sudo apt-get install postgresql php5-pgsql
Manually configure PostgreSQL database

Note: These steps are not necessary if you are using a repository package installation of Drupal. (The repository package installations automatically prompt the user for PostgreSQL options during installation.) This method is needed only for manual installations of Drupal.

sudo su postgres

Create a database and user for drupal on Postgresql

$ createuser -D -A -P drupaluser
$ createdb -O drupaluser drupaldb

Modify the pg_hba.conf file of the postgresql DBMS

$ sudo nano /etc/postgresql/8.1/main/pg_hba.conf

comment out this line after

  1. "local" is for Unix domain socket connections only
# local   all         all                               ident sameuser

Add the following lines

#	TYPE  	DATABASE        USER             IP-ADDRESS     IP-MASK           METHOD
        host    drupaldb        drupaluser       127.0.0.1       255.255.255.255 password

Save the file (Ctrl + x, y) Restart the postgresql database server engine

$ sudo /etc/init.d/postgresql* restart

Check your database connection:

$ psql -h 127.0.0.1 -p 5432 -U drupaluser -W drupaldb
Enter the password for user drupaluser:

Drupal Installation

Note: The two methods listed below are not compatible. The Ubuntu package (from the repositories) installs Drupal6 in different directories from the manual method. Choose one method or the other, but do not attempt to use both. You cannot switch back and forth between the two methods.

Install Drupal package from the Ubuntu repositories

You can choose whether to install Drupal5 or Drupal6 from the repositories. As always, repository version are not the most current versions, but they can be updated easily.

sudo apt-get install drupal6

or

sudo apt-get install drupal5

Manual installation of Drupal

The following instructions are for version 6.15 of the Drupal6 branch, which was the most current version at the time of writing. (A similar method can be used for the most current version of Drupal5). This installation does not install Drupal in directories that are compatible with the respository packages.

wget http://ftp.drupal.org/files/projects/drupal-6.15.tar.gz
tar xvzf drupal-6.15.tar.gz
sudo mkdir /var/www/drupal
sudo mv drupal-6.15/* drupal-6.15/.htaccess /var/www/drupal

It is required to create a files subdirectory in your drupal default site installation directory. It will be used for files such as custom logos, user avatars, and other media associated with your new site.

sudo mkdir /var/www/drupal/sites/default/files
sudo chown www-data:www-data /var/www/drupal/sites/default/files

It is also required to create the initial configuration file for the default site.

sudo cp /var/www/drupal/sites/default/default.settings.php /var/www/drupal/sites/default/settings.php
sudo chown www-data:www-data /var/www/drupal/sites/default/settings.php
Manually configure MySQL database

You need to create a MySQL drupal database and then load the database schema into it. You can do this with PhpMyAdmin or via the command line:

mysqladmin -u root -p create drupal

Where drupal is the name you picked for the mysql database that Drupal will use. You can call it anything you want.

mysql -u root -p

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'drupalpass';

You do not want to have Drupal use the mysql root user to access the database. The above command creates a mysql user (other than the mysql root user) with some priviledges to use the drupal database. You should pick something different than drupaluser and drupalpass. If the command was successful, activate the new permissions:

mysql> FLUSH PRIVILEGES;

Quit the mysql prompt:

mysql> \q

Miscellaneous adjustments for manual installation

(Mike_B_sixosix 02.05.09) Comment: When I used the manual installation method I had to go back and edit the settings.php page with the drupal db username, password, and db name in order for the database portion of the install.php page to recognize that I had made the changes. After manually updating the file and saving, I refreshed the page and it automatically recognized the changes and moved to the next step. (Mike_B_sixosix 02.05.09) Comment: I also had to

sudo chown www-data:www-data /var/www/drupal/sites/default/files

directory in order for the install.php page to make file changes.

Manually configure postgreSQL for Drupal

Edit the settings.php file so that drupal can know what user, password and database to use.

$ sudo nano /var/www/drupal/sites/default/settings.php
	* Database URL format:
	$db_url = 'pgsql://username:password@localhost/databasename';
	where username = drupaluser  password = drupaluserpass databasename = drupaldb

Save the file (Ctrl + x, y)

Adjust PHP memory limit

You should increase the default PHP memory limit value (the amount of memory dedicated to running scripts), since the default 8 Mb is not sufficient. Use 96 Mb (or even 160M) if you intend to use graphics (although for simple uses 32 Mb may be sufficient). In newer versions of Drupal6, you can simply edit the settings.php file and add the line:

ini_set('memory_limit', '96M');

In older versions of Drupal5, or if using PHP for many different uses, it is best to increase the amount of PHP memory using this method: Edit the /etc/php5/apache2/php.ini file and increase the memory_limit value to 96M (or another value of your choice). If using PostgreSQL, you can also edit the /etc/php5/apache2/php.ini file to accommodate PostgreSQL options by adding the line:

extensions=pgsql.so;

Adjust PHP Error Reporting

An adjustment to the error reporting is required for the install.php page to come up properly. Edit your settings.php file (e.g., /etc/drupal/6/sites/default/settings.php) and add the following ini_set line after the existing ini_set lines:

ini_set('error_reporting',          4096);

This is based upon the recommendations from the drupal.org forms: http://drupal.org/node/514334#comment-1912924

Reload Apache2

Reload Apache2.

sudo /etc/init.d/apache2 restart

Complete Drupal Installation through a Browser

Point your browser to localhost/drupal/install.php, create an account, login, and follow the installation instructions to finish loading the database and configuring the site. EDIT: (Michael: k3lt01, April 23rd 2010) For a repository install of Drupal6 I had to point my browser to "localhost/drupal6/install.php" Drupal?action=AttachFile&do=get&target=drupal.jpg If you got a page full of warnings, follow the prompts to resolve the issues (and add the fixes to this wiki page if appropriate). The first account will automatically become the main administrator account with total control. Drupal?action=AttachFile&do=get&target=drupal1.jpg Please refer to the drupal installation manual for more advanced hosting features.

Other Resources

  • Ubuntuguide.org -- simplified instructions for installing Drupal6 in Ubuntu. Includes advanced configuration options.
  • Kubuntuguide.org -- simplified instructions for installing Drupal6 in Kubuntu. Includes advanced configuration options.

TurnKey Drupal Appliance

Some users may prefer to skip manual installation by using the unofficial pre-integrated TurnKey Drupal Appliance based on Ubuntu LTS.