个人工具

“UbuntuHelp:Drupal”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
 
(未显示2个用户的10个中间版本)
第1行: 第1行:
 
{{From|https://help.ubuntu.com/community/Drupal}}
 
{{From|https://help.ubuntu.com/community/Drupal}}
 
{{Languages|UbuntuHelp:Drupal}}
 
{{Languages|UbuntuHelp:Drupal}}
 
+
=== Introduction ===
 
+
[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.
=== 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.
 
+
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/node/260 Drupal] is a robust Content Management System that runs on LAMP. Without any of its aditional modules, it can host blogs, forums, and a variety of other content.
+
Both Drupal5 and Drupal6 versions are found in the repositories.  
 
+
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.
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...
+
=== LAMP server installation ===
 
+
Use [[UbuntuHelp:InstallingSoftware| any method]] to install the LAMP stack packages. Visit [[UbuntuHelp:ApacheMySQLPHP|Apache PHP MySQL]] for more information on LAMP.
Follow these instructions to install Drupal on Ubuntu 6.06 (Dapper Drake).  You may also install the 5.1 stable branch of Drupal on Ubuntu 6.06 (Dapper Drake) without any modification.
+
==== 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:
To install Drupal-5.1 with php5 and Postgresql-8.1, follow instructions at bottom of page.
+
<pre><nowiki>
 
+
sudo tasksel install lamp-server
=== Installing ===
+
 
+
An older version of Drupal is present in the repositories, but it is no longer supported upstream. A more recent version has more modules and themes.  As well, since the package is so old, the installation of the Drupal package from the repositories will replace php5 in with php4.
+
 
+
Also, none of the Drupal modules are packaged and present in the repositores. 
+
 
+
Therefore, it is advisable to install the latest version from drupal.org.  Currently, version 4.7.6 is available.
+
 
+
==== Install the LAMP stack ====
+
Use [[UbuntuHelp:InstallingSoftware| any method]] to install the LAMP stack packages.
+
 
+
<pre><nowiki>  
+
apache2 php5-mysql php5-gd libapache2-mod-php5 mysql-server
+
 
</nowiki></pre>
 
</nowiki></pre>
 
+
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:
Set a mysql-root password (not the same as a root password, but a password for mysql)
+
 
+
 
<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>
 
+
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:
A successful mysql command will show:
+
 
+
'''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 ====
+
 
+
 
<pre><nowiki>
 
<pre><nowiki>
wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-4.7.6.tar.gz
+
sudo /etc/init.d/apache2 restart
tar xvzf drupal-4.7.6.tar.gz
+
or
sudo mkdir /var/www/drupal
+
sudo service apache2 restart
sudo mv drupal-4.7.6/* drupal-4.7.6/.htaccess /var/www/drupal
+
 
</nowiki></pre>
 
</nowiki></pre>
 
+
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).
It is a good idea to create a ''files'' subdirectory in your drupal installation directory. It is not strictly neccessary, but will be used for files such as custom logos, user avatars, and other media associated with your new site.
+
 
+
 
<pre><nowiki>
 
<pre><nowiki>
sudo mkdir /var/www/drupal/files
+
sudo gedit /etc/drupal/6/htaccess
sudo chown www-data:www-data /var/www/drupal/files
+
 
</nowiki></pre>
 
</nowiki></pre>
 
+
==== 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.
==== Drupal needs a database, user and password ====
+
 
+
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:
+
 
+
 
<pre><nowiki>
 
<pre><nowiki>
mysqladmin -u root -p create drupal
+
apache2 php5-mysql php5-gd libapache2-mod-php5 mysql-server
 
</nowiki></pre>
 
</nowiki></pre>
 
+
==== Using Drupal with MySQL ====
Where ''drupal'' is the name you picked for the mysql database that Drupal will use.  You can call it anything you want.
+
===== 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)
 
<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>
 
</nowiki></pre>
 
+
A successful mysql command will show:
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:
+
'''Query OK, 0 rows affected (0.00 sec)'''
 
+
<pre><nowiki>
+
mysql> FLUSH PRIVILEGES;
+
</nowiki></pre>
+
 
+
 
Quit the mysql prompt:
 
Quit the mysql prompt:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
mysql> \q
 
mysql> \q
 
</nowiki></pre>
 
</nowiki></pre>
 
+
You should now have a functional LAMP stack and a password for the mysql root user.
==== Fill the database ====
+
==== Using Drupal with PostgreSQL ====
 
+
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]]:
Now, load the schema into the database.  If you created a database with a different name, use that name instead of ''drupal''.
+
 
+
 
<pre><nowiki>
 
<pre><nowiki>
mysql -u drupaluser -p drupal < /var/www/drupal/database/database.4.1.mysql
+
sudo apt-get install postgresql php5-pgsql
 
</nowiki></pre>
 
</nowiki></pre>
 
+
===== Manually configure PostgreSQL database =====
and enter the password at the prompt.
+
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.  
 
+
For more details about configuring the mysql database for Drupal, read the INSTALL.mysql.txt file in the Drupal folder.
+
 
+
==== Settings ====
+
 
+
You need to edit the settings.php file so that drupal can know what user, password and database to use.
+
 
+
<pre><nowiki>
+
sudo nano /var/www/drupal/sites/default/settings.php
+
</nowiki></pre>
+
 
+
Add the proper user name (''drupaluser''), database name (''drupal'') and password (''drupalpass'') to the line that looks like:
+
 
+
$db_url = "mysql://drupaluser:drupalpass@localhost/drupal";
+
==== PHP memory limit ====
+
 
+
You need to increase the amount of memory PHP can use to run scripts.
+
 
+
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)
+
 
+
==== 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>
+
 
+
=== Try it out ===
+
 
+
Point your browser to ''localhost/drupal'', create an account and login.
+
 
+
https://help.ubuntu.com/community/Drupal?action=AttachFile&do=get&target=drupal.jpg
+
 
+
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.
+
 
+
=== Drupal 5.1 ===
+
 
+
You need not edit the settings.php file buy hand when using the very latest version of Drupal.  The installer now uses a graphical interface for setting up your site.  The only caveat is that the settings.php file must be made writeable during the process.
+
 
+
The installer will show you a message informing you that the file is not writeable if this is the case.  It will also show you a message advising you to revert the permissions back to read-only after the changes have been saved, since keeping it writeable is a security risk. 
+
 
+
You may still edit the settings.php file by hand, as in the traditional way of installing, if you wish.
+
 
+
=== POSTGRESQL-8.1 with PHP5 and DRUPAL5.1 ===
+
These instructions should work on Ubuntu 6.06, 6.10 and other Debian derivatives.
+
 
+
==== 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
第168行: 第71行:
 
Modify the pg_hba.conf file of the postgresql DBMS
 
Modify the pg_hba.conf file of the postgresql DBMS
 
<pre><nowiki>
 
<pre><nowiki>
$ sudo nano /etc/postgresql/8.1/main/pg_hba.conf  
+
$ sudo nano /etc/postgresql/8.1/main/pg_hba.conf
 
</nowiki></pre>
 
</nowiki></pre>
 
comment out this line after
 
comment out this line after
 +
# "local" is for Unix domain socket connections only
 
<pre><nowiki>
 
<pre><nowiki>
 +
# local  all        all                              ident sameuser
 
</nowiki></pre>
 
</nowiki></pre>
 
Add the following lines
 
Add the following lines
 
<pre><nowiki>
 
<pre><nowiki>
 +
# TYPE  DATABASE        USER            IP-ADDRESS    IP-MASK          METHOD
 
         host    drupaldb        drupaluser      127.0.0.1      255.255.255.255 password
 
         host    drupaldb        drupaluser      127.0.0.1      255.255.255.255 password
 
</nowiki></pre>
 
</nowiki></pre>
第187行: 第93行:
 
Enter the password for user drupaluser:
 
Enter the password for user drupaluser:
 
</nowiki></pre>
 
</nowiki></pre>
 
+
=== Drupal Installation ===
==== Install Drupal ====
+
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 dependencies
+
==== 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 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 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>
 +
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>
 
</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>
第224行: 第156行:
 
* Database URL format:
 
* Database URL format:
 
$db_url = 'pgsql://username:password@localhost/databasename';
 
$db_url = 'pgsql://username:password@localhost/databasename';
where username == drupaluser  password == drupaluserpass databasename = drupaldb
+
where username = drupaluser  password = drupaluserpass databasename = drupaldb
 
</nowiki></pre>
 
</nowiki></pre>
 
Save the file (Ctrl + x, y)
 
Save the file (Ctrl + x, y)
 
+
=== Adjust PHP memory limit ===
Edit the amount of memory PHP can use to run scripts. The default 8mb is not enough for drupal, set to 32mb or more
+
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>
 +
extensions=pgsql.so;
 +
</nowiki></pre>
 +
=== 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:
 +
<pre><nowiki>
 +
ini_set('error_reporting',          4096);
 +
</nowiki></pre>
 +
This is based upon the recommendations from the drupal.org forms:  http://drupal.org/node/514334#comment-1912924
 +
=== Reload Apache2 ===
 +
Reload Apache2.
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo /etc/init.d/apache2 restart
 
sudo /etc/init.d/apache2 restart
 
</nowiki></pre>
 
</nowiki></pre>
 
+
=== Complete Drupal Installation through a Browser ===
==== Finish Installation ====
+
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.
In a browser, enter: http://localhost/drupal/install.php
+
EDIT: (Michael: k3lt01, April 23rd 2010)
 
+
For a repository install of Drupal6 I had to point my browser to "localhost/drupal6/install.php"
==== Configuration ====
+
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).
File System
+
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
Change the Download Method from public to private
+
Please refer to the [http://drupal.org/node/260 drupal installation manual] for more advanced hosting features.
 
+
=== Other Resources ===
Select 'save configuration'
+
* [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.
Cron
+
=== 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.
Click on 'You can run manually'
+
 
+
 
+
For further configuration, please refer to:http://drupal.org/node/260
+
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

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

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.