个人工具

UbuntuHelp:Drupal

来自Ubuntu中文

Oneleaf讨论 | 贡献2007年5月13日 (日) 11:24的版本 (New page: {{From|https://help.ubuntu.com/community/Drupal}} {{Languages|php5}} === Drupal === [http://drupal.org/node/260 Drupal] is a robust Content Management System that runs on LAMP. Without...)

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航, 搜索


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). You may also install the 5.1 stable branch of Drupal on Ubuntu 6.06 (Dapper Drake) without any modification.

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. Currently, version 4.7.6 is available.

Install the LAMP stack

Use any method to install the LAMP stack packages.

 
apache2 php5-mysql php5-gd libapache2-mod-php5 mysql-server
</code>

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

<pre>
mysql -u root

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

A successful mysql command will show:

'''Query OK, 0 rows affected (0.00 sec)'''


Quit the mysql prompt:

<pre>
mysql> \q
</code>
You should now have a functional LAMP stack and a password for the mysql root user.


Visit [[UbuntuHelp:ApacheMySQLPHP|Apache PHP MySQL]] for more information on LAMP.


==== Get the most recent version of Drupal ====

<pre>
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
</code>

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>
sudo mkdir /var/www/drupal/files
sudo chown www-data:www-data /var/www/drupal/files
</code>


==== 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>
mysqladmin -u root -p create drupal
</code>

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

<pre>
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';
</code>

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>
mysql> FLUSH PRIVILEGES;
</code>

Quit the mysql prompt:

<pre>
mysql> \q
</code>

==== Fill the database ====

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

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

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. 

<pre>
sudo nano /var/www/drupal/sites/default/settings.php
</code>

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>
sudo /etc/init.d/apache2 restart
</code>

=== Try it out ===

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

 attachment:drupal.jpg

The first account will automatically become the main administrator account with total control.
 attachment: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>
$ sudo aptitude install postgresql-8.1
$ sudo su postgres
</code>
Create a database and user for drupal on Postgresql
<pre>
$ createuser -D -A -P drupaluser
$ createdb -O drupaluser drupaldb
</code>
Modify the pg_hba.conf file of the postgresql DBMS
<pre>
$ sudo nano /etc/postgresql/8.1/main/pg_hba.conf 
</code>
comment out this line after
# "local" is for Unix domain socket connections only
<pre>
# local   all         all                               ident sameuser
</code>
Add the following lines
<pre>
#	TYPE  	DATABASE        USER             IP-ADDRESS     IP-MASK           METHOD
        host    drupaldb        drupaluser       127.0.0.1       255.255.255.255 password
</code>
Save the file (Ctrl + x, y)
Restart the postgresql database server engine
<pre>
$ sudo /etc/init.d/postgresql* restart
</code>
Check your database connection:
<pre>
$ psql -h 127.0.0.1 -p 5432 -U drupaluser -W drupaldb
Enter the password for user drupaluser:
</code>

==== Install Drupal ====
Install drupal dependencies
<pre>
# sudo aptitude install libapache2-mod-php5 php5-imagick php5-ldap php5-pgsql php5 zlib1g-dev
</code>
Download the drupal core files
<pre>
$ sudo wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-5.1.tar.gz
</code>
Unpack the tarball
<pre>
tar xvzf drupal-5.1.tar.gz
</code>
You can read the install file on creating postgresql database and user (already done above)
<pre>
# sudo nano drupal-5.1/INSTALL.pgsql.txt
</code>
Make a folder for your drupal installation.
<pre>
$ sudo mkdir /var/www/drupal 
</code>
Move your drupal files into the drupal folder
<pre>
$ sudo mv drupal-5.1/* drupal-5.1/.htaccess /var/www/drupal
</code>
Create a /files storage folder for things like files, images, etc
<pre>
$ sudo mkdir /var/www/drupal/files
</code>
Make the data storage writeable
<pre>
$ sudo chown -R www-data:www-data /var/www/drupal/files
</code>
Edit the settings.php file so that drupal can know what user, password and database to use.
<pre>
$ 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
</code>
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
<pre>
$ 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
</code>
Save the changes to the php.ini file (Ctrl + x, y)
Restart apache
<pre>
sudo /etc/init.d/apache2 restart
</code>

==== 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

[[category:UbuntuHelp]]