Drupal 7 安裝筆記
!!使用 Windows 的麻瓜請改用 TWAMP 麻瓜架站包。 以下頁面懶人勿入!!
[2013/10/17、 2014/6/17 改寫] 本篇描述如何在 debian 底下安裝 drupal。 Debian 系列的其他版本諸如 antix 或 ubuntu 等等應該也適用。 搜尋 "debian drupal", 前幾名的文章 [ 1、 2] 操作細節不盡相同, 但大家都建議: 不要安裝 debian 版的 drupal (因為 debian 的版本通常蠻舊的) 而是要從 drupal 官網下載最新版。 這一篇 解釋得更清楚: 這樣比較方便升級較新的版本。 我自己的經驗也發現: 這樣的做法還可以讓你把一個 drupal 從 fedora 搬到 debian 之類的, 從一個版本的作業系統搬家到另一個版本的作業系統。
以下, 需要你自己取的名字、 密碼、 路徑、 ...等等自行定義的字串, 第一次出現時會用 這樣的字串 顯示。 第二次以後出現, 就不特別標明, 所以如果你自己改過其中一些字串, 剪貼指令時請留意。
請開一個終端機, sudo bash
(ubuntu 底下) 或 su
(Antix 及 Fedora 底下) 以下我們都用系統管理員
root 的身份來做事。
預備動作
首先安裝資料庫等等相依套件: apt-get
install mysql-client mysql-server
php-db drush
因為 Drupal 需要用到
mysql 或 postgresql 資料庫, 而php 跟
mysql 之間需要有 php-db 套件作為橋樑。 至於
drush
(安裝說明)
則是 drupal shell, 用來管理 drupal
的命令列工具, 好物必裝! 如果這是你第一次安裝
mysql-server, 過程當中會需要自己幫資料庫管理員大大
(mysql 的 root 帳號) 挑選一個密碼。 如果 mysql
的設定有問題 (例如想重設 root 密碼之類的), 可以參考
mysql
逃兵筆記。
重要! mysql 的密碼若含有除號字元 (/) 那麼在設定 drupal 時可能會出問題!
再來, 先安裝 debian 版的 drupal7 套件。 咦, 不是說好不裝 debian 版嗎? 沒錯, 等一下會把它刪掉。 這麼一來一往看似沒有意義, 但其實有兩個效果: (1) 很多相依套件會被自動拉進來。 (2) 只要回答幾個問題, 資料庫就會被設定好。 以上這兩件事, 如果要自己純手工打造, 可是有點麻煩的。
所以請先 apt-get install
drupal7
其中設定 drupal7
與資料庫連線的過程, 大部分直接按 Enter
採用預設值即可:
- 資料庫選擇 mysql [預設]
- 連接方式是 unix socket [預設]
- Password of the database's administrative user: 先前安裝 mysql-server 時自己挑的資料庫管理員大大的密碼。
- MySQL application password for drupal7: drupal7 要去連資料庫時, 自己也需要設定一個密碼。 直接按 Enter 讓系統自動產生一個亂數就好 -- 人類幾乎永遠不會去用到這個密碼。 [預設]
Debian 版的 drupal7 安裝完成之後, 再下
apt-get remove drupal7
把它移除掉。 被問到是否要順便把資料庫相關設定一併刪除的時候
(Deconfigure database for drupal7
with dbconfig-common?) 隨便怎麼回答都可以,
反正等一下要砍掉重練。 (回答 「不要」 步驟可以省一步。)
注意! 如果忘記移除 debian
版的 drupal, 等一下安裝官網版時, 可能會找不到 gd、
pdo、 pdo_mysql 等等諸多 php 外掛套件。
安裝 Drupal 7 主體
先確認你的 [apache2網頁根目錄]
的位置: grep DocumentRoot
/etc/apache2/apache2.conf
/etc/apache2/sites-available/*
可能會發現 DocumentRoot 被設定成
/var/www/html (較新的 apache2) 或
/var/www (較舊的 apache2)。 也可以直接找到
index.html、 修改內容、 重新瀏覽器查看
http://localhost/ 確認 [apache2網頁根目錄]
的正確位置。
到 drupal core 專頁, 找到推薦版 (recommended releases) 的 drupal-7.xx.tar.gz 的網址。 下載、 在 [apache2網頁根目錄] 底下解壓縮、 更改目錄名稱:
cd /tmp
wget http://ftp.drupal.org/files/projects/drupal-7.xx.tar.gz
cd [apache2網頁根目錄]
tar xzf /tmp/drupal-7.xx.tar.gz
mv drupal-7.xx d7
cd d7
這裡的 d7 是我任意取的目錄名稱。 以下我們把
/var/www/d7 或
/var/www/html/d7
或是你所命名的 drupal 目錄稱為 [drupal根目錄]。
凡是要執行 drush 指令的時候, 都必須位於
[drupal根目錄]。
請自行代入 (對你) 正確的路徑。 總之在執行 drush 指令之前,
必須先 cd [drupal根目錄]
。
接下來是初始化 drupal7:
cd [drupal根目錄] drush site-install standard --clean-url=0 --site-name='絕地學苑' --account-pass='新的秘密' --db-url=mysql://root:'更早的秘密'@localhost/drupal7 chown -R www-data:www-data . # 注意最後的句點不可省略! 它代表 「目前目錄」
這個很長的 drush site-install
...
指令, 就是真正安裝 drupal 的重頭戲。
所有的 drush 指令一定要在 [drupal根目錄]
底下執行, 而且
整個指令要打在同一列上。
這個指令會清空然後重新設定 drupal 所用到的資料庫。
- 「--clean-url=0」 叫 drupal 先不要啟用簡潔網址。 (下詳) 在尚未準備好的狀況下啟用簡潔網址, 有可能會連管理選單都看不見。
- 「絕地學苑」 請改成你想採用的站名 (中文可)
- 「新的秘密」 是你自己任意挑的一個密碼, 未來你要從 drupal 的網頁介面以 admin 帳號 (也就是 drupal 的管理員大大) 登入管理 drupal 時, 經常需要用到。
- 後面的 --db-url 參數, 則要根據你當初設定
mysql 資料庫所給的值來填寫。 它的格式是:
mysql://資料庫管理員帳戶名稱:資料庫管理員的密碼@資料庫伺服器主機名稱/資料庫名稱
其中 「資料庫名稱」 當初在安裝 debian 版 drupal 的時候, 系統應該已經自動幫你命名為 drupal7。 注意: 即使你有固定 IP, 也還是要用 localhost 而不是固定 IP。 (除非你想要搞成 3-tier system 那麼複雜...)
至於後面的 chown ...
指令,
是要將 drupal 的所有檔案歸屬權派給 apache2 用戶,
也就是 www-data 這個虛擬的使用者。
這一步做完之後, 從瀏覽器裡打開 http://localhost/d7/ 應該就可以看見 drupal 架站 (幾乎) 成功了! 請以 admin 的身份登入, 在最上面黑色管理選單找到 「reports」 進入之後再點選 「status reports」。 所有的訊息都是綠色或藍色嗎? 恭喜! 如果看到紅色的訊息, 請用錯誤訊息上網搜尋解決方式。
重要! 成功之後, 請關閉 shell 分頁, 然後另開一個新的 shell 分頁, 編輯 .bash_history 把裡面的最後一句記錄刪掉。 (因為把密碼放在命令列上還蠻不安全)
重要! 以後如果忘記
drupal 管理員的密碼, 可以這樣改: drush
upwd admin --password='新密碼'
詳見
這一頁。
初體驗 & 簡潔網址
請在瀏覽器裡用 admin 帳號登入, 按下左側的 「add
content」, 再選 「article」 隨便打一點內容,
比方說標題叫做 「安裝成功第一帖文章!」 好了。 存檔之後,
注意網址長得像這樣:
http://localhost/drupal7/?q=node/1
。
這看來有點醜。 這節的目標是要讓上面的網址變成:
http://localhost/drupal7/node/1
。
請到最上方黑色管理選單點選 Configuration, 再點進 Clean URLs。 如果你從未設定過簡潔網址, 應該會看到 「Run the clean URL test」。 可以試著點下去看看, 但其實沒什麼作用, 因為必須從命令列底下設定。 請回到命令列, 用編輯器在 /etc/apache2/conf.d 目錄底下建立一個文字檔 drupal7 (其實隨便叫什麼名字都無所謂) 並且在裡面敲入:
<Directory "/var/www/d7"> # 記得要改成你的 [drupal根目錄] AllowOverride All </Directory>
這個設定叫 apache2 去讀取 /var/www/d7 底下的 .htaccess 這個設定檔。
再來 (有時, 省略此步驟也沒關係) 請編輯
[drupal根目錄]/.htaccess 找到
RewriteBase /
那一句,
把前面的 "#" 拿掉、 把這句改成
RewriteBase /d7
之類的。
(當初你下 mv 指令把 drupal-7.xx 改成什麼名字?
也就是你的 [drupal根目錄]
扣除網頁根目錄的部分。 請據此適當修改。)
最後下這兩個指令:
a2enmod rewrite # 啟用 apache2 的網址重寫模組 service apache2 restart # 重新啟動 apache2
再重新整理 「Clean URLs」 的網頁 (不是重按 「Run the clean URL test」), 應該就會看到不一樣的內容。 勾選 「Enable clean URLs」 並且點下 「Save configuration」。 回到首頁, 再把滑鼠移到剛剛貼的第一帖文章的標題, 請注意它的連結已經沒有 「?q=」 這三個字元了!
如果不幸失敗的話, 請見 這篇更詳細的除錯文。
中文
- 安裝多國語言套件:
drush dl l10n_update
這會將 l10n_update 模組下載回來並放到 sites/all/modules/l10n_update 或 sites/default/modules/l10n_update 子目錄裡面。 再次提醒: 所有 drush 指令必須在 [drupal根目錄] 底下執行。 - 這時如果下
find . -user root
會看到有不少 「root 所擁有的檔案」。 因為用 drush 下載, 檔案擁有人會變成是 root。 所以需要更正一下:chown -R www-data:www-data sites/
。 對大部分的模組來說可能無差; 但多國語言模組會把語言資料下載回來, 需要能夠用 apache2 的身份 (www-data) 寫入上述子目錄。 - 啟用中文: 回到瀏覽器 drupal
的網頁管理介面:
Modules => 內建的 Locale 模組跟剛剛裝的 Localization update 模組, 兩者都打勾 => Save configuration => Continue
(主選單) Configuration => Languages => Add language => 繁體中文 => Add language
經過很久很久 (請給自己至少十分鐘的耐性) 畫面跳回 Configuration => Languages; 把繁體中文勾選為 Default => Save configuration ]
如果大部分的介面還是英文, 請登出再登入, 應該就會 (幾乎) 全部變成中文了。 當然, 以後如果安裝一些比較小眾的模組, 它的介面還是有可能尚未有人幫忙翻成中文。 - 更改時區: 設定(就是先前的 Configuration) => 預設時區 Asia/Taipei
註冊一位普通用戶
以後新增套件或改變設定, 有時候或許需要用一個普通 (非 admin) 用戶的帳號登入測試一下。 所以現在就來註冊一位普通用戶。
- 登出管理員帳號。
- 「註冊新帳號」 => 自選 「使用者名稱」、 填寫 「電子郵件地址」、 送出。 此時自己的信箱會收到一封 mail 要你等候通知。
- 再以管理員身份登入。
- 「使用者」 => 下方的使用者清單當中會出現剛剛新註冊的使用者名稱。
- 「編輯」 => 幫新使用者設定密碼 (建議用亂數產生器; 不用太認真挑), 勾選 「啟用」, 記得按 「儲存」。
- 在 「使用者」 的 「權限」 分頁, 打開一些權限, 例如 「node」 底下新增/編輯 article 或 basic page 的權限。
- 自己的信箱會收到另一封 mail 要你重設密碼。
當你用普通用戶登入時, 有可能就會找不到登出的連結。 請直接打網址: http://localhost/d7/user/logout 。 詳見 這裡。
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/dp/install7.php; 您所看到的版本: June 22 2015 10:05:36.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。