个人工具

UbuntuHelp:Drupal

来自Ubuntu中文

Wikibot讨论 | 贡献2007年11月22日 (四) 12:24的版本

跳转至: 导航, 搜索


<tablestyle="background:#F1F1ED;">This documentation needs to be updated for installing Drupal using Postgresql-8.2 on Feisty.

Drupal

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.

It has an astounding number of 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...

Follow these instructions to install Drupal on Ubuntu 6.06 (Dapper Drake), Ubuntu 6.10 (Edgy Eft) and Ubuntu 7.04 (Feisty Fawn). This page also explains the steps used to install the 5.1 branch of Drupal on Ubuntu.

To install Drupal-5.1 with php5 and Postgresql-8.1, follow instructions at bottom of page.

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.

Install the LAMP stack

Use any method to install the LAMP stack packages.

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

Set a mysql-root password (not the same as a root password, but a password for mysql)

mysql -u root

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.


Visit Apache PHP MySQL for more information on LAMP.


Get the most recent version of Drupal

There are two stable banches of Drupal. Currently 4.6.7 and 5.1. Both versions can be installed more or less the same way.

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

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.

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


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:

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

Fill the database

(Skip this step if you are using Drupal 5.1. The tables are automatically loaded when you visit your web site for the first time.)

Now, load the schema into the database. If you created a database with a different name, use that name instead of drupal.

mysql -u drupaluser -p drupal < /var/www/drupal/database/database.4.1.mysql

and enter the password at the prompt.

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.

sudo nano /var/www/drupal/sites/default/settings.php

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

Prior to 7.04, you may 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.

sudo /etc/init.d/apache2 restart

Try it out

Point your browser to localhost/drupal, create an account and login.

Drupal?action=AttachFile&do=get&target=drupal.jpg

If you got a page full of warnings, it is because changing the settings.php file made Drupal incorrectly assume the DB had been created. The fix is to manually run the install script by pointing your browser to localhost/drupal/install.php

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.

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.

Version 5.1 will automatically load the database when you first visit your site. You do not need to fill the database tables by hand.

POSTGRESQL-8.1 with PHP5 and DRUPAL5.1

Mysql is ideal for database-driven sites since it has better performance than Postgresql. Furthermore, some drupal modules are not tested using 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

$ sudo aptitude install postgresql-8.1
$ 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:

Install Drupal

Install drupal dependencies

# sudo aptitude install libapache2-mod-php5 php5-imagick php5-ldap php5-pgsql php5 zlib1g-dev

Download the drupal core files

$ sudo wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-5.1.tar.gz

Unpack the tarball

tar xvzf drupal-5.1.tar.gz

You can read the install file on creating postgresql database and user (already done above)

# sudo nano drupal-5.1/INSTALL.pgsql.txt

Make a folder for your drupal installation.

$ sudo mkdir /var/www/drupal 

Move your drupal files into the drupal folder

$ sudo mv drupal-5.1/* drupal-5.1/.htaccess /var/www/drupal

Create a /files storage folder for things like files, images, etc

$ sudo mkdir /var/www/drupal/files

Make the data storage writeable

$ sudo chown -R www-data:www-data /var/www/drupal/files

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)

Edit the amount of memory PHP can use to run scripts. The default 8mb is not enough for drupal, set to 32mb or more

$ sudo nano /etc/php5/apache2/php.ini file
	; Resource Limits ;
	memory_limit = 160M
You may also edit the example lines to accommodate Postgresql options
	; Example lines:
	;extensions=pgsql.so

Save the changes to the php.ini file (Ctrl + x, y) Restart apache

sudo /etc/init.d/apache2 restart

Finish Installation

In a browser, enter: http://localhost/drupal/install.php

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