Chạy SugarCRM Community Edition trên Nginx – LEMP – trong Debian Squeeze – Ubuntu 11.04

SugarCRM là một giải pháp dựa trên web của CRM được viết bằng PHP. SugarCRM có sẵn trong các flavour được gọi là Editions (“Community” – miễn phí, “Professional”, và “Enterprise”).

Để có cái nhìn tổng quan chi tiết về các editions khác, bạn có thể truy cập website của SugarCRM. Trong bài hướng dẫn sau đây chúng tôi trình bày cách cài đặt bản Community Edition miễn phí trên hệ thống Debian Squeeze hoặc Ubuntu 11.04 đã có nginx thay vì Apache.

Với các module: My Portal, Calendar, Activities, Contacts, Accounts, Leads, Opportunities, Cases, Bugtracker, Documents Email, SugarCRM Community Edition cung cấp tất cả mọi thứ có thể được mong đợi từ giải pháp CRM. Tuy nhiên trước khi bắt đầu chúng tôi đưa ra một số lưu ý:

Yêu cầu đưa ra là cài đặt SugarCRM trong một vhost có tên www.example.com/example.com với document root /var/www/www.example.com/web.

  • Hệ thống được cài đặt sẵn LEMP
  • Các lệnh phải chạy với quyền root, để đơn giản bạn nên trở thành root ngay bây giờ:

sudo root

Cài đặt APC

APC là một PHP opcode cacher hoàn toàn miễn phí và mở cho bộ nhớ đệm giúp tối ưu hóa code php trung gian. Nó tương tự như các PHP opcode cacher khác, như eAccelerator XCache. Chúng tôi khuyến cáo bạn nên cài đặt APC để tăng tốc độ tải trang PHP của mình.

Sử dụng dòng lệnh sau để tiến hành cài đặt APC:

apt-get install php-apc

Sau đó chúng ta cần kiểm tra hai thiết lập trong php.ini. Nếu bạn sử dụng PHP-FPM như FastCGI daemon của mình trong php.ini /etc/php5/fpm/php.ini:

vi /etc/php5/fpm/php.ini

Hãy chắc chắn rằng memory_limit64M và thiết lập upload_max_filesize20M.

[...] memory_limit = 128M      ; Maximum amount of memory a script may consume (128MB) [...] ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 20M [...]

Khởi động lại PHP-FPM:

/etc/init.d/php5-fpm restart

Nếu bạn sử dụng chương trình spawn-fcgi của lighttpd như FastCGI daemon của mình, php.ini sẽ là /etc/php5/cgi/php.ini:

vi /etc/php5/cgi/php.ini

[...] memory_limit = 128M      ; Maximum amount of memory a script may consume (128MB) [...] ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 20M [...]

Chúng ta đóng tiến trình spawn-fcgi hiện tại (đang chạy trên cổng 9000) và tạo một cái mới. Chạy lệnh:

netstat -tap

để tìm ra PID của quá trình spawn-fcgi:

root@server1:~# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:sunrpc                *:*                     LISTEN      734/portmap
tcp        0      0 *:www                   *:*                     LISTEN      2987/nginx
tcp        0      0 *:ssh                   *:*                     LISTEN      1531/sshd
tcp        0      0 *:57174                 *:*                     LISTEN      748/rpc.statd
tcp        0      0 localhost.localdom:smtp *:*                     LISTEN      1507/exim4
tcp        0      0 localhost.localdom:9000 *:*                     LISTEN      1542/php5-cgi
tcp        0      0 localhost.localdo:mysql *:*                     LISTEN      1168/mysqld
tcp        0     52 server1.example.com:ssh 192.168.0.198:2462      ESTABLISHED 1557/0
tcp6       0      0 [::]:www                [::]:*                  LISTEN      2987/nginx
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      1531/sshd
tcp6       0      0 ip6-localhost:smtp      [::]:*                  LISTEN      1507/exim4
root@server1:~#

Trong kết quả trên PID là 1542 vì vậy chúng ta có thể đóng tiến trình hiện tại bằng lệnh dưới đây:

kill -9 1542

Sau đó tạo một trình spawn-fcgi mới:

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

Cài đặt SugarCRM

Thư mục root của trang web www.example.com/var/www/www.example.com/web. Nếu nó không tồn tại có thể tạo ra như sau:

mkdir -p /var/www/www.example.com/web

Cài đặt unzip để giải nén gói SugarCRM:

apt-get install unzip

Bạn có thể tải về SugarCRM Community Edition tại đây hoặc tại đây. Chọn tập tin có dạng .zip (phiên bản 6.3.0RC1 tại thời điểm bài viết này) và đặt vào thư mục root:

cd /tmp
wget http://www.sugarforge.org/frs/download.php/8516/SugarCE-6.3.0RC1.zip
unzip SugarCE-6.3.0RC1.zip
cd SugarCE-Full-6.3.0RC1/
mv * /var/www/www.example.com/web/

Điều này được khuyến cáo để thư mục root và các tập tin SugarCRM trong đó được ghi bởi nginx daemon (nếu không SugarCRM không thể ghi các file cấu hình) đang chạy với user www-data và group www-data:

chown -R www-data:www-data /var/www/www.example.com/web

Tiếp theo chúng ta tạo một cấu hình nginx vhost cho www.example.com trong thư mục /etc/nginx/sites-available/:

vi /etc/nginx/sites-available/www.example.com.vhost

server {        listen 80;        server_name www.example.com example.com;        root /var/www/www.example.com/web;         if ($http_host != "www.example.com") {                  rewrite ^ http://www.example.com$request_uri permanent;        }         index index.php index.html;         location = /favicon.ico {                 log_not_found off;                 access_log off;        }         location = /robots.txt {                 allow all;                 log_not_found off;                 access_log off;        }         # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).        location ~ /. {                 deny all;                 access_log off;                 log_not_found off;        }         location / {                 try_files $uri $uri/ /index.php?$args;        }         # Add trailing slash to */wp-admin requests.        rewrite /wp-admin$ $scheme://$host$uri/ permanent;         location ~*  .(jpg|jpeg|png|gif|css|js|ico)$ {                 expires max;                 log_not_found off;        }         location ~ .php$ {                 include /etc/nginx/fastcgi_params;                 fastcgi_pass 127.0.0.1:9000;                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        } }

Để kích hoạt vhost bạn cần tạo một symlink từ đường dẫn /etc/nginx/sites-enabled/:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost

Khởi động lại nginx để những thay đổi có hiệu lực:

/etc/init.d/nginx reload

Bắt đầu cài đặt SugarCRM bằng cách mở URL http://www.example.com trên trình duyệt. Nhấn Next:

Trong trang tiếp theo, cuộn xuống phía dưới và nhấn Next:

Chấp nhận giấy phép sử dụng (GNU Affero General Public License) và kích Next:

Chọn Typical Install và kích Next:

Chọn cơ sở dữ liệu (MySQL):

Trong trang Database Configuration bạn điền đầy đủ tên cho SugarCRM database (chẳng hạn sugarcrm) sẽ được tạo bằng cách cài đặt tự động nếu không tồn tại. Mục Host Name điền localhost. Mục Database Administrator Username điền root, sau đó nhập mật khẩu cho mục Database Admin Password. Cuộn tiếp xuống bên dưới…

… và chọn Define user to create từ menu xổ xuống để tạo một MySQL user cho SugarCRM (user này sẽ được tạo bởi wizard cài đặt). Điền tên cho user (ví dụ sugarcrm) và mật khẩu. Nếu bạn muốn có một số dữ liệu demo để chạy, chọn Yes từ menu xổ xuống của Populate Database with Demo Data?. Kích Next:

Điền tiếp username và password cho người dùng admin của SugarCRM:

Bây giờ bạn sẽ thấy bảng tóm tắt các tùy chọn của mình. Xem phần lưu ý hiển thị ở phía dưới (trong trường hợp này là * * * * * cd /var/www/www.example.com/web; php -f cron.php > /dev/null 2>&1) chúng ta sẽ thiết lập điều này ở phần cuối, Nếu mọi thứ đều ổn, kích Install:

SugarCRM bắt đầu quá trình cài đặt, kích Next:

Bạn có thể đăng ký nhận bản tin nếu muốn, tùy chọn này không bắt buộc.

Màn hình đăng nhập của SugarCRM xuất hiện. Điền vào thông tin cho User và password do bạn chỉ định trong quá trình cài đặt.

Trong lần đăng nhập đầu tiên bạn sẽ được yêu cầu điền vào một số cấu hình cơ bản như tên công ty, thiết lập hệ thống locale, thiết lập máy chủ SMTP, các chi tiết về cá nhân…

Cuối cùng giao diện web của SugarCRM xuất hiện:

Xem thêm hướng dẫn sử dụng phiên bản SugarCRM tại đây.

Việc cuối cùng cần làm là thiết lập cron:

crontab -e

và điền vào cron cho SugarCRM của bạn:

* * * * * cd /var/www/www.example.com/web; php -f cron.php > /dev/null 2>&1

Các liên kết tham khảo:

Theo Quantrimang

Bài viết liên quan