在Ubuntu下安裝Drupal7十分方便,最方便的方式當然是

sudo apt-get install drupal7

但是Ubuntu 的Drupal7包相對於官方下載來說做了相當大的調整,所以安裝倒是簡單了,但學習起來比較費心費力費時,主要是與網上的參考資料在目錄結構上存在著太多的差異,所以還是決定採用手工的方式來進行安裝,以下是安裝步驟:

1、準備工作:

  • 安裝tasksel軟體包

    sudo apt-get install tasksel
  • 安裝LAMP服務(Apache2、Mysql和PHP)

    sudo tasksel install lamp-server
  • 建立Drupal7的工作目錄

    sudo mkdir /var/www/drupal7
    sudo chown firehare:firehare /var/www/drupal7

    之所以要將Drupal7的工作目錄的所有者從root改為firehare(Ubuntu下的使用者名稱),一則是出於安全的考慮,二則是為了方便對Drupal7工作目錄進行操作。

  • 建立Drupal7的虛擬主機檔案

    sudo vi /etc/apache2/sites-available/drupal7.conf

    具體內容如下:

    <VirtualHost *:80>
        ServerName drupal7.firehare.me //
        ServerAdmin ubuntu.firehare@gmail.com //該虛擬主機的管理員郵箱
        DocumentRoot "/var/www/drupal7" //該虛擬主機的主目錄
        <Directory "/var/www/drupal7" > //設定該虛擬主機主目錄的屬性
            Options FollowSymLinks //允許軟連結
            AllowOverride All //允許覆寫,即允許.htaccess檔案覆寫屬性
        </Directory>
        ErrorLog "/var/log/apache2/drupal7_errors.log" //指定錯誤日誌檔案
        CustomLog "/var/log/apache2/drupal7_accesses.log" common //指定訪問日誌檔案
    </VirtualHost>

    其中:

    ServerName 是指虛擬主機的DNS域名
    ServerAdmin 是該虛擬主機的管理員郵箱
    DocumentRoot 是指該虛擬主機的主目錄
    Directory 指設定該虛擬主機工作目錄的屬性
    Options FollowSymLinks //該工作目錄允許軟連結
    AllowOverride All //允許覆寫,即允許.htaccess檔案覆寫屬性
    ErrorLog //指定錯誤日誌檔案
    CustomLog //指定訪問日誌檔案

    備註:
    如果沒有DNS域名,也可以在自己的測試機上(客戶機)將/etc/hosts檔案(Ubuntu)或 c:windowssystem32driversetchosts 檔案(Windows)用管理員許可權修改一下,新增以下語句:

    X.X.X.X drupal7.firehare.me

    其中 X.X.X.X 是指虛擬主機所在伺服器的IP地址。這樣就可以在自己的機器上直接接入DNS域名來訪問虛擬主機。

  • 啟用Apache2的ReWrite模組

    sudo a2enmod rewrite
    sudo service apache2 restart

2、下載Drupal7的安裝包:

wget http://ftp.drupal.org/files/projects/drupal-7.XX.tar.gz

其中XX為最新的版本號

3、將安裝包中檔案解壓至Drupal7的工作目錄

tar -xvzf drupal-7.XX.tar.gz
mv drupal-7.XX/* drupal-7.XX/.htaccess drupal-7.XX/.gitignore /var/www/drupal7

4、建立上傳目錄

mkdir /var/www/drupal7/sites/default/files
sudo chown www-data:www-data /var/www/drupal7/sites/default/files
sudo setfacl -R -m u:www-data:rwx -m u:firehare:rwx /var/www/drupal7/sites/default/files
sudo setfacl -dR -m u:www-data:rwx -m u:firehare:rwx /var/www/drupal7/sites/default/files

其中將該上傳目錄使用者設為www-data主要是為了讓Drupal能夠知道它對該目錄有讀寫的許可權,以便在做頻寬優化時可以合併和壓縮CSS,否則的話該功能不能正常。setfacl 語句的作用就是讓www-data(Apache2使用者名稱)和firehare(您的使用者名稱)對該上傳目錄都有許可權。如果該命令不起作用,可以百度一下,在/etc/fstab檔案中的相關目錄新增acl屬性即可。這裡就不再多講了。

5、建立站點配置檔案

cp /var/www/drupal7/sites/default/default.settings.php /var/www/drupal7/sites/default/settings.php
sudo chmod 666 /var/www/drupal7/sites/default/settings.php

6、建立Drupal7的Mysql資料庫

mysqladmin -u root -p create drupal

密碼為安裝MySQL時的root使用者密碼!然後建立Drupal7的資料庫使用者

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

其中drupaluser為Drupal7的資料庫使用者,drupalpass為Drupal7資料庫使用者的密碼。

7、瀏覽器安裝

http://drupal7.firehare.me/install.php

開啟瀏覽器,在位址列中輸入上面的地址,根據提示進行安裝。

安裝到最後一步,需要將站點配置檔案的許可權還原

sudo chmod 644 /var/www/drupal/sites/default/settings.php

這樣就可以訪問Drupal7了!