如何在 WHM/Cpanel 上安裝 Drupal_CiviCRM 免費客服站

Posted: 二, 12/27/2011 - 04:30

(文件)VincentLiao雜記:如何在 WHM/Cpanel 上安裝 Drupal_CiviCRM 免費客服站

網友問的這個問題, 如何找到一個 social 的免費開源站, 給一般的基金會或組織使用.

這套 CiviCRM 應該就是正解吧... 強大又免費 ...

這篇文件只是掛 Drupal_CiviCRM 到 Cpanel 上時, 一直撞牆架不起來後, 整理出來的架設方式

Drupal6/drupal7 的安裝, 在 debian6_單機 或是 ispconfig3 都非常的簡單
通常 debian5/6 只要掛上 php5 都會有 PDO 的支援
apt-get install php5-common php5-mysql

但是 Cpanel/WHM 用的都是 CentOS 或是 RedHat ...
預設的 WHM/Cpanel 是沒有PDO 的; 好死不死, Drupal6 / Drupal7 都一定會用到 PDO ...
ref1: http://drupal.org/requirements
ref2: http://drupal.org/requirements/pdo

如果要將 PDO掛上, 需要用 WHM 把 apache_mysql_php 重新 compile 一下

Step1: WHM ==) (Software) > (Easy Apache) > (Exhaustive Options List)
step2: Select PDO and PDO MYSQL
step3: Save and recompile (PHP_APACHE_MYSQL) ...

重新整修了 WHM 後, 終於有了 PDO 可以來掛 Drupal6 / Drupal7 ...

接下來的重軸戲... CiviCRM , 一套 Drupal 上的免費重量級的 CRM 系統, 直得推廣與使用...

ref: http://wiki.civicrm.org/confluence/display/CRMDOC40/CiviCRM+Localisation

(文件)VincentLiao雜記: Debian6

  • 二, 12/27/2011 - 04:31

(文件)VincentLiao雜記: Debian6 前置安裝 Drupal_7 所需的套件 (php5-gd 與 uploadprogress)

安裝 drupal7 時 Linux 系統會用到一些功能, 而這些都需要 編譯_compile, 主要的兩個 php5-gd 與 uploadprogress

1. php5-gd 這個最好要重新 recompile 編譯新版的 php5 ...

網站對圖形的處理要求非常高, 可惜的是 php 預設處理圖形的函數很糟, 上檯面的 GD 又要死不死的不太維護

這個問題是 php 自推出以來就存在的大問題, 所以 Linux 附的都很舊 , 食之無味棄之可惜, 統稱 GD雞肋版 ...

這時 whm/cpanel 的好處就顯現了, 它預裝的並非 GD雞肋版, 而是整理過的 GD, 這招真讓 WHM 賺了不少coco

不管如何, 用 php架站還是都要再安裝一次 gd ; 當我們不使用官版的方式 , 稱之為 bundled_GD 或 GD_bundled

Case1: 最好的方式是使用 recompile php5

ref1: http://www.maxiwebs.co.uk/gd-bundled/compilation.php
ref2: http://drupal.org/node/878778
ref3: http://www.howtoforge.com/recompiling-php5-with-bundled-support-for-gd-o...

重新編譯 php5 加 gd函數功能, debian 上約要花費一個多小時
與 whm/centOS 的 Easy_Apache 加 PDO 的方式差不多也是一個多小時

本來的檔案只有下載的一些原始開源碼

drwxrwsr-x 4 root src 4096 Dec 25 17:04 .
drwxr-xr-x 10 root root 4096 Dec 25 14:12 ..
drwxr-xr-x 22 root root 4096 Dec 25 16:59 php5-5.3.3
-rw-r--r-- 1 root src 222444 Dec 25 15:18 php5_5.3.3-7+squeeze3.diff.gz
-rw-r--r-- 1 root src 2548 Dec 25 15:18 php5_5.3.3-7+squeeze3.dsc
-rw-r--r-- 1 root src 13921529 Aug 1 2010 php5_5.3.3.orig.tar.gz

編譯完成後會產生以下打包好的 .deb 檔案

-rw-r--r-- 1 root src 1066 Dec 25 17:04 php5_5.3.3-7+squeeze3_all.deb
-rw-r--r-- 1 root src 11191 Dec 25 17:05 php5_5.3.3-7+squeeze3_amd64.changes
-rw-r--r-- 1 root src 3037000 Dec 25 17:04 libapache2-mod-php5_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 3036144 Dec 25 17:04 libapache2-mod-php5filter_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 362618 Dec 25 17:04 php-pear_5.3.3-7+squeeze3_all.deb
-rw-r--r-- 1 root src 5886020 Dec 25 17:04 php5-cgi_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 2942244 Dec 25 17:04 php5-cli_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 547912 Dec 25 17:04 php5-common_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 27056 Dec 25 17:04 php5-curl_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 10376948 Dec 25 17:04 php5-dbg_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 445276 Dec 25 17:04 php5-dev_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 8990 Dec 25 17:04 php5-enchant_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 98422 Dec 25 17:04 php5-gd_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 16446 Dec 25 17:04 php5-gmp_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 35038 Dec 25 17:04 php5-imap_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 49138 Dec 25 17:04 php5-interbase_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 59564 Dec 25 17:04 php5-intl_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 19810 Dec 25 17:04 php5-ldap_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 15202 Dec 25 17:04 php5-mcrypt_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 76690 Dec 25 17:04 php5-mysql_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 35892 Dec 25 17:04 php5-odbc_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 60032 Dec 25 17:04 php5-pgsql_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 8256 Dec 25 17:04 php5-pspell_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 4330 Dec 25 17:04 php5-recode_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 11328 Dec 25 17:04 php5-snmp_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 55528 Dec 25 17:04 php5-sqlite_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 26720 Dec 25 17:04 php5-sybase_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 18318 Dec 25 17:04 php5-tidy_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 34756 Dec 25 17:04 php5-xmlrpc_5.3.3-7+squeeze3_amd64.deb
-rw-r--r-- 1 root src 13374 Dec 25 17:04 php5-xsl_5.3.3-7+squeeze3_amd64.deb

您可以直接安裝您 compile 好的 deb 打包檔 php5-common
dpkg -i ./php5-common_5.3.3-7+squeeze3_amd64.deb

成功訊息

(Reading database ... 41684 files and directories currently installed.)
Preparing to replace php5-common 5.3.3-7+squeeze3 (using .../php5-common_5.3.3-7+squeeze3_amd64.deb) ...
Unpacking replacement php5-common ...
Setting up php5-common (5.3.3-7+squeeze3) ...
Processing triggers for libapache2-mod-php5filter ...
Reloading web server config: apache2.

打包檔 php5-mysql 安裝
dpkg -i ./php5-mysql_5.3.3-7+squeeze3_amd64.deb

成功訊息

(Reading database ... 41684 files and directories currently installed.)
Preparing to replace php5-mysql 5.3.3-7+squeeze3 (using .../php5-mysql_5.3.3-7+squeeze3_amd64.deb) ...
Unpacking replacement php5-mysql ...
Setting up php5-mysql (5.3.3-7+squeeze3) ...
Processing triggers for libapache2-mod-php5filter ...
Reloading web server config: apache2.

如同安裝 php5-gd 前的方式... 由 apt-get 來安裝
apt-get install php5-common php5-mysql

安裝後的結果都是一樣的...

最重要的是... 不要再安裝 ...官版的... 雞肋GD ... 確認使用自己編譯的 GD
# dpkg -i ./php5-gd_5.3.3-7+squeeze3_amd64.deb

安裝完成後的訊息
(Reading database ... 41683 files and directories currently installed.)
Preparing to replace php5-gd 5.3.3-7+squeeze3 (using .../php5-gd_5.3.3-7+squeeze3_amd64.deb) ...
Unpacking replacement php5-gd ...
Setting up php5-gd (5.3.3-7+squeeze3) ...
Processing triggers for libapache2-mod-php5 ...
Reloading web server config: apache2

再鎖住, 讓 php5-gd 不被 apt-get update/upgrade 蓋掉 ...官版的... 雞肋GD ...

echo "php5-gd hold" | dpkg --set-selections
aptitude hold php5-gd
echo "php5-common hold" | dpkg --set-selections
aptitude hold php5-common
echo "php5-mysql hold" | dpkg --set-selections
aptitude hold php5-mysql

再在確認 ... php5-gd 有被 hold住, 不被更動
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

呵呵 ... 大功告成... phpinfo() 的訊息如下

GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.4.2
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 6b
PNG Support enabled
libPNG Version 1.2.44
WBMP Support enabled
XPM Support enabled
XBM Support enabled

Case2: 使用別人編譯好的 php5-gd

ref: http://www.maxiwebs.co.uk/gd-bundled/

Case3: 真的萬不得已情況下 , 掛用網路善心人的 respot_倉庫, 小心使用這個方式如不小心會毀了尼的整個系統
ref: http://drupal.org/node/540838

step1: 完整的移除 原始 php5-gd
#sudo apt-get --purge remove php5-gd

step2: 先加一個 dotdeb 的 GPG 公開碼
#gpg --keyserver keys.gnupg.net --recv-key 89DF5277
#gpg -a --export 89DF5277 | apt-key add -

step3: 把 dotdeb 加入 sources.list
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

step4: 整理 package_listing
# apt-get update

step5: 安裝 php5-gd
#apt-get install php5-gd

2. PECL uploadprogress ==) ref: http://drupal.org/node/456686
# apt-get install php5-dev php-pear
# pecl install uploadprogress

# vi /etc/php5/conf.d/local.ini
加入剛編譯完成的 uploadprogress
extension = uploadprogress.so

前置作業處理完後, drupal7 的安裝就很容易, 看圖說故事, 很容易搞定...lol...
ref: http://drupal.org/documentation/install

安裝完成 drupal7 後, 查看 drupal7 的系統狀態 http://xxx.gTLD/admin/reports/status
呵呵... drupal7 安裝成功 ... 大功告成 ...留照一下
ref: http://vincent.tw/A/2012/VPS/drupal7_install_success_with_Bundled_GD_sup...

比較一下無 bundled_GD 支援的安裝成功的畫面
ref: http://vincent.tw/A/2012/VPS/drupal7_install_success_no_Bundled_GD_suppo...

結語: 不管安裝 drupal 7 或是新的 CiviCrm_CMS , php 都需要重新安裝編譯,
這個是必然的使用過程, 痛一下 recompile_php 安裝一次就好貝 orz...

(文件)VincentLiao雜記:為何要修改php的原始

  • 二, 12/27/2011 - 04:32

(文件)VincentLiao雜記:為何要修改php的原始程式,與Recompile_Source_Code

通常 php 現在都是很穩定的版本, 只要用 php.ini 即可修改一些參數...

recompile php 的時機通常都是...

Case1: 自己修改 php 內的壹兩十萬個函數 ...
有時自己對 php 的函數表現很不滿意, 就直接修 php 內的函數程式, 修好程式就需要 recompile
但是還是以修改 php.ini 為主, 自己外加程式比較好些,
php 中的程式函數濫歸濫, 還是有固定的維修人員在維護, 自己修了某隻程式, 日後也一定會忘記...orz...

Case2: 函數庫 可能官網已經不維修, 或是死站狀況...
php 是免費開放的原始碼開發語言工具, 一堆人寫了一堆, 不維護是很正常的...

GD 是比較常見的圖庫函數, 但是年久失修, 通常要 compile php 都是為了拿一個非官網雞肋版的GD, bundled_GD

Case3: 自行開發的php函數庫,
一般的大型系統, 都會有自己的需求, 如能自行開發 php函數庫, 就可以用到最好的效能...
這類的自行開發商, 有些會源碼釋出, 有些會只給object_code eg: zend , iotube ...

Case4: 系統環境改變, ...
常見的 recompile 都是系統環境改變了, 呵呵...架站的人找不到自己的家
Virtual Directory Support 不見了阿, 那個缺這個少, ... recompile 後, php 保證讓尼找不到自己的家

reCompile php 最重要的還是這個系統參數...debian/rules...

多看看設定, 多修幾次, 多編幾次 code 差不多就知道如何修改 rules

後語, 能不 reCompile php 就不要貝, 如果想當做學問那就另當別論...

(文件)VincentLiao雜記:CiviCRM的安裝.

  • 二, 12/27/2011 - 04:32

(文件)VincentLiao雜記:CiviCRM的安裝...使用drupal7與CiviCRM4

CiviCRM 的安裝算是很簡單, 寫的很清楚, 只要看圖說故事即可...

step1: 安裝 CiviCRM 4 的前置動作

1.將 所有檔案放入 drupal7 內的 http://尼的網站.tw/sites/all/modules/civicrm
2. 先需 將 /sites/defaults 的權限設定為 777
3. 這個 CiviCRM 需要用絕對路徑, 也就是說 cpanel / ispconfig3 這些 control_panel 都無法安裝使用
4. 您可以分開兩個資料庫, 也可以與 drupal7 的資料庫合用,
...

Step2: 直接執行 安裝程式

http://尼的網站.tw/sites/all/modules/civicrm/install/index.php

看圖說故事吧... 全部由紅色轉成綠色就可進行 CiviCRM 4 的安裝

ref: http://vincent.tw/A/2012/CMS/CiviCRM/civicrm4_drupal7_install_success_p0...
ref: http://vincent.tw/A/2012/CMS/CiviCRM/civicrm4_drupal7_install_success_p0...

如果是 cpanel 或是 ispconfig3 的話, 非絕對路徑就會給尼一個 Oops
ref: http://vincent.tw/A/2012/CMS/CiviCRM/civicrm4_drupal7_install_error_p01.jpg

step3: 安裝完成後, drupal7 內會有一些 civixxxx 的資料欄位, admin/modules 下就會有可設定的 civicrm 控制欄位

玩玩貝, 官網有提供 CiviCRM 3 / 4 的版本, 可以讓大家測試

CiviCRM with Drupal 6.x ==) http://drupal.demo.civicrm.org/
CiviCRM with Joomla 1.5.x ==) http://joomla.demo.civicrm.org/
CiviCRM with Drupal 7.x ==) http://d7.demo.civicrm.org/
CiviCRM with Joomla 1.6.x ==) http://j16.demo.civicrm.org/

step4: 大功告成...留照一下...

ref: http://vincent.tw/A/2012/CMS/CiviCRM/civicrm4_drupal7_install_success_p0...

後續要修的問題...

1. ispconfig3 / WHM 中的 Virtual_Directory_Support , 這個可能是 php5 的問題也可能是 apache2 或 CP

2. CiviCRM 中文化部分可以請一些, 協會雞精會的人幫忙翻譯...

3. 使用上的問題與教育訓練, 這個就需要一些時間安排與

...

相當完整的參考資料呢! But,「雞精會」應該是錯字吧

  • 三, 12/28/2011 - 17:31

相當完整的參考資料呢!
But,「雞精會」應該是錯字吧 XD

回應瀏覽選項

選擇你喜歡的顯示回應的模式,並點選"儲存設定",以啟用你所做的改變。
 
For a better experience using this site, please upgrade to a modern web browser.