SuiteCRM là phần mềm CRM (Quản lý quan hệ khách hàng) mã nguồn mở dựa trên PHP. Đây là nhánh của phần mềm CRM phổ biến SugarCRM và đã trở nên phổ biến hơn sau khi nhóm đằng sau quyết định dừng phát triển phiên bản miễn phí. SuiteCRM đã được đề cử là phần mềm CRM mã nguồn mở tốt nhất tại BOSSIE 2015 và 2016.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình SuiteCRM bằng Nginx làm máy chủ Web. Phần mềm CRM sẽ chạy dưới ngăn xếp LEMP với HTTPS được bật. Và vì mục đích này, chúng ta sẽ sử dụng CentOS 7 làm hệ điều hành chính.
Sau khi kết nối với tư cách là người dùng root, chúng ta cần cài đặt kho lưu trữ của bên thứ ba trên hệ thống của mình. Cụ thể, chúng ta cần cài đặt kho lưu trữ EPEL (Extra Package for Enterprise Linux) trên hệ thống trước khi cài đặt Nginx.
Cài đặt kho lưu trữ EPEL bằng lệnh yum theo cách sau:
Bây giờ chúng ta có thể cài đặt máy chủ web Nginx trên hệ thống.
Nếu quá trình cài đặt hoàn tất, hãy khởi động dịch vụ và cho phép dịch vụ chạy tự động khi khởi động bằng lệnh systemctl như hiển thị bên dưới.
Máy chủ web Nginx hiện đã được cài đặt và theo mặc định, nó đang chạy trên cổng 80. Kiểm tra bằng lệnh netstat hoặc curl.
Đảm bảo cổng 80 ở trạng thái 'LISTEN' và lệnh curl cung cấp mã trạng thái HTTP 200 trong đầu ra của nó.
Thêm kho lưu trữ PHP 7 mới 'webtatic' vào hệ thống bằng lệnh rpm.
Bây giờ hãy cài đặt các gói và tiện ích mở rộng PHP 7 bằng lệnh yum như được hiển thị bên dưới.
Nếu quá trình cài đặt hoàn tất, hãy chỉnh sửa tệp cấu hình 'php.ini' mặc định bằng vim.
Thay đổi kích thước tệp tải lên tối đa cho cài đặt SuiteCRM thành 100MB. Ít nhất, SuiteCRM cần nhiều hơn 6MB.
Bỏ chú thích dòng CGI sau và thay đổi giá trị thành 0.
Đối với cấu hình đường dẫn phiên, hãy bỏ chú thích dòng đó và thay đổi đường dẫn thành '/var/lib/session' như hiển thị bên dưới.
Vậy là xong. Lưu các thay đổi và thoát khỏi vim.
Bây giờ, hãy tạo một thư mục mới cho đường dẫn phiên và thay đổi quyền sở hữu của thư mục thành người dùng và nhóm 'nginx'.
Tiếp theo, chúng ta cần chỉnh sửa cấu hình php-fpm. Để thực hiện, hãy vào thư mục '/etc/php-fpm.d' và chỉnh sửa tệp cấu hình www.conf.
Bây giờ hãy đổi dòng người dùng và nhóm thành 'nginx'.
Thay vì sử dụng cổng hệ thống, PHP-FPM sẽ chạy dưới tệp socket unix.
Thay đổi dòng 'listen':
Đặt quyền cho tệp socket Unix và quyền sở hữu tệp socket như hiển thị bên dưới.
Vậy là xong. Lưu các thay đổi và thoát khỏi trình soạn thảo.
Bây giờ hãy khởi động dịch vụ PHP-FPM và thêm nó để tự động khởi động khi khởi động.
Với lệnh này, PHP-FPM đã được cài đặt và chạy tệp socket.
Bạn có thể kiểm tra điều này bằng lệnh netstat:
Hãy đảm bảo rằng bạn thấy tệp php-fpm.sock.
Cài đặt mariadb từ kho lưu trữ CentOS bằng lệnh yum sau.
Khởi động dịch vụ MariaDB và cho phép nó khởi chạy thời gian khởi động bằng các lệnh bên dưới.
Vậy là MariaDB đã được cài đặt và chạy. Bây giờ, chúng ta cần cấu hình mật khẩu gốc bằng lệnh 'mysql_secure_installation'.
Bạn sẽ được hỏi về cấu hình, nhập 'Y' và nhấn 'Enter'.
Vậy là mật khẩu gốc MariaDB đã được cấu hình.
Tiếp theo, chúng ta cần tạo một cơ sở dữ liệu mới và một người dùng mới để cài đặt SuiteCRM. Để thực hiện, hãy đăng nhập vào shell MySQL bằng người dùng 'root' và mật khẩu của bạn.
Tạo một cơ sở dữ liệu mới có tên 'suitecrm_db' và một người dùng mới 'crmadmin' với mật khẩu 'hakase-labs123'. Tất cả những điều này có thể được thực hiện bằng cách sử dụng các truy vấn mysql bên dưới.
Vậy là cấu hình cơ sở dữ liệu để cài đặt SuiteCRM đã hoàn tất.
Bây giờ hãy đến thư mục '/opt' và tải xuống mã SuiteCRM bằng lệnh git như được hiển thị bên dưới.
Sau đó, tạo một thư mục bộ đệm, thay đổi quyền cho một số tệp và thư mục trong thư mục suitecrm, sau đó thay đổi chủ sở hữu của tất cả mã suitecrm thành người dùng và nhóm 'nginx'.
Vì vậy, mã suiteCRM đã được tải xuống máy chủ tại thư mục '/opt/suitecrm/'.
Khởi động dịch vụ và cho phép nó chạy khi khởi động.
Tiếp theo, chúng ta cần mở các cổng HTTP và HTTPS mới. Nó được sử dụng để truy cập SuiteCRM. Chạy các lệnh firewall-cmd sau cho việc này.
Bây giờ hãy tải lại các quy tắc firewalld bằng lệnh sau.
Vậy là giờ đây, cổng HTTP và HTTPS mới đã được thêm vào Firewalld. Nếu bạn muốn xem cấu hình chi tiết, hãy chạy lệnh bên dưới.
Để tạo chứng chỉ SSL letsencrypt mới, trước tiên chúng ta cần cài đặt công cụ lệnh letsencrypt 'certbot' vào hệ thống của mình. Công cụ này có sẵn trong kho lưu trữ CentOS. Cài đặt certbot bằng lệnh yum sau.
Khi quá trình cài đặt certbot hoàn tất, hãy tạo tệp chứng chỉ SSL cho tên miền suiteCRM 'suitecrm.hakase-labs.co'.
Chạy lệnh bên dưới để tạo tệp chứng chỉ SSL.
Bạn sẽ được hỏi về địa chỉ email để gia hạn thông báo - hãy nhập email của bạn và nhấn Enter để tiếp tục.
Đối với TOS của Letsencrypt, hãy nhập 'A' để đồng ý và nhấn Enter một lần nữa. Và đối với truy vấn chia sẻ địa chỉ email, hãy nhập 'N' và nhấn Enter.
Khi quá trình tạo chứng chỉ hoàn tất, bạn sẽ nhận được kết quả như bên dưới.
Các tệp chứng chỉ mới được tạo trong thư mục '/etc/letsencrypt/live/domain.com'.
Ở đó, dán máy chủ ảo SuiteCRM Nginx bên dưới.
Vậy là xong. Lưu thay đổi và thoát Vim.
Bây giờ hãy kiểm tra cấu hình nginx và đảm bảo không có lỗi. Sau khi hoàn tất, hãy khởi động lại dịch vụ.
Với lệnh này, cấu hình nginx để cài đặt SuiteCRM đã hoàn tất.
Bạn sẽ được chuyển hướng đến kết nối HTTPS install.php và bạn sẽ nhận được trang về Giấy phép GNU AFFERO. Đánh dấu vào ô 'Tôi chấp nhận' và nhấp vào 'Tiếp theo'.
Trên trang môi trường hệ thống, hãy đảm bảo rằng tất cả các kết quả đều 'OK'.
Và nhấp vào 'Tiếp theo' để tiếp tục.
Tiếp theo là cấu hình quản trị và cơ sở dữ liệu. Nhập thông tin cơ sở dữ liệu của bạn, chẳng hạn như dbname, dbuser và dbpassword. Đối với cấu hình quản trị, hãy nhập tên người dùng, email và mật khẩu của bạn.
Cuộn xuống dưới cùng và nhấp vào 'Tiếp theo' để tiếp tục cài đặt SuiteCRM.
Chờ một lát, khi quá trình cài đặt hoàn tất, bạn sẽ được chuyển hướng đến trang đăng nhập như hiển thị bên dưới.
Trên trang này, hãy nhập tên người dùng và mật khẩu quản trị, sau đó nhấn nút 'Đăng nhập'.
Và bạn sẽ nhận được Bảng điều khiển SuiteCRM như hiển thị bên dưới.
Vậy là SuiteCRM đã được cài đặt.
Về cơ bản, chúng ta cần tạo cron mới với tư cách là người dùng và nhóm nginx.
Và dán cấu hình sau.
Lưu và thoát.
Vậy là xong. Quá trình cài đặt SuiteCRM với máy chủ web Nginx trên CentOS 7 đã hoàn tất.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình SuiteCRM bằng Nginx làm máy chủ Web. Phần mềm CRM sẽ chạy dưới ngăn xếp LEMP với HTTPS được bật. Và vì mục đích này, chúng ta sẽ sử dụng CentOS 7 làm hệ điều hành chính.
Những gì chúng ta sẽ làm
- Cài đặt máy chủ Web Nginx
- Cài đặt và cấu hình PHP-FPM
- Cài đặt và cấu hình MariaDB
- Tải xuống và cấu hình SuiteCRM
- Cài đặt SuiteCRM thông qua trình cài đặt Web
- Cấu hình cuối cùng
Điều kiện tiên quyết
- Máy chủ CentOS 7
- Quyền root
Bước 1 - Cài đặt máy chủ Web Nginx
Bước đầu tiên chúng ta phải thực hiện là kết nối máy chủ và cài đặt ngăn xếp cơ bản cho SuiteCRM. Kết nối với máy chủ thông qua SSH bằng lệnh sau:
Mã:
ssh [emailprotected]
Cài đặt kho lưu trữ EPEL bằng lệnh yum theo cách sau:
Mã:
yum -y install epel-release
Mã:
yum -y install nginx
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
netstat -plntu
curl -I localhost
Bước 2 - Cài đặt và cấu hình PHP-FPM
Trong bước này, chúng ta sẽ cài đặt và cấu hình PHP-FPM phiên bản 7 trên máy chủ CentOS 7. Theo mặc định, centOS không cung cấp kho lưu trữ cho phiên bản PHP 7 mới. Vì vậy, chúng ta cần thêm một kho lưu trữ khác để cài đặt PHP-FPM 7.Thêm kho lưu trữ PHP 7 mới 'webtatic' vào hệ thống bằng lệnh rpm.
Mã:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Mã:
sudo yum install -y php71w-fpm php71w-cli php71w-common php71w-imap php71w-gd php71w-mbstring php71w-mcrypt php71w-mysql php71w-xml
Mã:
vim /etc/php.ini
Mã:
upload_max_filesize = 100M
Mã:
cgi.fix_pathinfo=0
Mã:
session.save_path = "/var/lib/php/session"
Bây giờ, hãy tạo một thư mục mới cho đường dẫn phiên và thay đổi quyền sở hữu của thư mục thành người dùng và nhóm 'nginx'.
Mã:
mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session
Mã:
cd /etc/php-fpm.d/
vim www.conf
Mã:
user = nginx
group = nginx
Thay đổi dòng 'listen':
Mã:
listen = /var/run/php-fpm/php-fpm.sock
Mã:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Bây giờ hãy khởi động dịch vụ PHP-FPM và thêm nó để tự động khởi động khi khởi động.
Mã:
systemctl start php-fpm
systemctl enable php-fpm
Bạn có thể kiểm tra điều này bằng lệnh netstat:
Mã:
netstat -pl | grep php
Bước 3 - Cài đặt và cấu hình MariaDB
Trong bước này, chúng ta sẽ cài đặt MariaDB, sau đó khởi động và cho phép nó khởi chạy mọi lúc khi khởi động hệ thống. Và cuối cùng, chúng ta sẽ tạo cơ sở dữ liệu và người dùng mới để cài đặt SuiteCRM.Cài đặt mariadb từ kho lưu trữ CentOS bằng lệnh yum sau.
Mã:
yum install -y mariadb mariadb-server
Mã:
systemctl start mariadb
systemctl enable mariadb
Mã:
mysql_secure_installation
Mã:
Đặt mật khẩu gốc? [Y/n] Y
Mật khẩu mới:
Nhập lại mật khẩu mới:
Xóa người dùng ẩn danh? [Y/n] Y
Không cho phép đăng nhập gốc từ xa? [Y/n] Y
Xóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] Y
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Tiếp theo, chúng ta cần tạo một cơ sở dữ liệu mới và một người dùng mới để cài đặt SuiteCRM. Để thực hiện, hãy đăng nhập vào shell MySQL bằng người dùng 'root' và mật khẩu của bạn.
Mã:
mysql -u root -p
Mã:
CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;
Bước 4 - Tải xuống và cấu hình SuiteCRM
Trong bước này, chúng ta sẽ thực hiện một số tác vụ để cài đặt SuiteCRM. Chúng ta sẽ tải xuống mã nguồn SuiteCRM, cấu hình Firewalld, Tạo SSL Letsencrypt mới và cấu hình máy chủ ảo nginx cho SuiteCRM. Vậy chúng ta hãy bắt đầu.Tải xuống SuiteCRM
Nếu chưa cài đặt, hãy cài đặt git trên hệ thống của bạn bằng lệnh yum bên dưới.
Mã:
yum -y install git
Mã:
cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm
Sau đó, tạo một thư mục bộ đệm, thay đổi quyền cho một số tệp và thư mục trong thư mục suitecrm, sau đó thay đổi chủ sở hữu của tất cả mã suitecrm thành người dùng và nhóm 'nginx'.
Mã:
cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown nginx:nginx -R /opt/suitecrm
Cấu hình Firewalld
Nếu bạn không chạy Firewalld trên máy chủ của mình, hãy cài đặt nó bằng lệnh sau.
Mã:
yum -y install firewalld
Mã:
systemctl start firewalld
systemctl enable firewalld
Mã:
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
Mã:
firewall-cmd --reload
Vậy là giờ đây, cổng HTTP và HTTPS mới đã được thêm vào Firewalld. Nếu bạn muốn xem cấu hình chi tiết, hãy chạy lệnh bên dưới.
Mã:
firewall-cmd --list-all
Tạo SSL Letsencrypt mới
Trong hướng dẫn này, chúng ta sẽ sử dụng SSL để truy cập SuiteCRM. Và chúng tôi sẽ sử dụng chứng chỉ SSL miễn phí từ letsencrypt cho mục đích đó.Để tạo chứng chỉ SSL letsencrypt mới, trước tiên chúng ta cần cài đặt công cụ lệnh letsencrypt 'certbot' vào hệ thống của mình. Công cụ này có sẵn trong kho lưu trữ CentOS. Cài đặt certbot bằng lệnh yum sau.
Mã:
yum -y install certbot
Chạy lệnh bên dưới để tạo tệp chứng chỉ SSL.
Mã:
certbot certonly --standalone -d suitecrm.hakase-labs.co
Đối với TOS của Letsencrypt, hãy nhập 'A' để đồng ý và nhấn Enter một lần nữa. Và đối với truy vấn chia sẻ địa chỉ email, hãy nhập 'N' và nhấn Enter.
Khi quá trình tạo chứng chỉ hoàn tất, bạn sẽ nhận được kết quả như bên dưới.
Các tệp chứng chỉ mới được tạo trong thư mục '/etc/letsencrypt/live/domain.com'.
Cấu hình máy chủ ảo SuiteCRM Nginx
Đi tới thư mục cấu hình Nginx '/etc/nginx' và tạo tệp suitecrm.conf mới trong thư mục conf.d bằng trình soạn thảo Vim.
Mã:
cd /etc/nginx/
vim conf.d/suitecrm.conf
Mã:
# Cấu hình máy chủ - hakase-labs
server {
listen 80;
server_name suitecrm.hakase-labs.co;
# Tự động chuyển hướng đến HTTPS
return 301 https://$host$request_uri;
}
# Nginx SSL cho SuiteCRM
server {
server_name suitecrm.hakase-labs.co;
# Bật http2
listen 443 http2 ssl;
# Cấu hình SSL
ssl_certificate /etc/letsencrypt/live/suitecrm.hakase-labs.co/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/suitecrm.hakase-labs.co/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384 :DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES25 6-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384 :AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
client_max_body_size 50M;
index index.php index.html index.htm;
root /opt/suitecrm;
location / {
root /opt/suitecrm;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
error_log /var/log/nginx/suitecrm.irsyadf.me.error.log;
location = /50x.html {
root /usr/share/nginx/html;
}
## Hình ảnh và nội dung tĩnh được xử lý khác nhau
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml|svg|wgoff2)$ {
access_log off;
expires max;
root /opt/suitecrm;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Bây giờ hãy kiểm tra cấu hình nginx và đảm bảo không có lỗi. Sau khi hoàn tất, hãy khởi động lại dịch vụ.
Mã:
nginx -t
systemctl restart nginx
Bước 5 - Trình cài đặt web SuiteCRM
Mở trình duyệt web của bạn và truy cập tên miền SuiteCRM: 'suitecrm.hakase-labs.co'.Bạn sẽ được chuyển hướng đến kết nối HTTPS install.php và bạn sẽ nhận được trang về Giấy phép GNU AFFERO. Đánh dấu vào ô 'Tôi chấp nhận' và nhấp vào 'Tiếp theo'.
Trên trang môi trường hệ thống, hãy đảm bảo rằng tất cả các kết quả đều 'OK'.
Và nhấp vào 'Tiếp theo' để tiếp tục.
Tiếp theo là cấu hình quản trị và cơ sở dữ liệu. Nhập thông tin cơ sở dữ liệu của bạn, chẳng hạn như dbname, dbuser và dbpassword. Đối với cấu hình quản trị, hãy nhập tên người dùng, email và mật khẩu của bạn.
Cuộn xuống dưới cùng và nhấp vào 'Tiếp theo' để tiếp tục cài đặt SuiteCRM.
Chờ một lát, khi quá trình cài đặt hoàn tất, bạn sẽ được chuyển hướng đến trang đăng nhập như hiển thị bên dưới.
Trên trang này, hãy nhập tên người dùng và mật khẩu quản trị, sau đó nhấn nút 'Đăng nhập'.
Và bạn sẽ nhận được Bảng điều khiển SuiteCRM như hiển thị bên dưới.
Vậy là SuiteCRM đã được cài đặt.
Bước 6 - Cấu hình cuối cùng
Trong bước cuối cùng này, chúng ta cần thêm cấu hình vào cronjob.Về cơ bản, chúng ta cần tạo cron mới với tư cách là người dùng và nhóm nginx.
Mã:
sudo crontab -e -u nginx
Mã:
* * * * * cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1
Vậy là xong. Quá trình cài đặt SuiteCRM với máy chủ web Nginx trên CentOS 7 đã hoàn tất.