Thứ Năm, Tháng 3 27, 2025
Google search engine
HomelinuxCách cài đặt SuiteCRM với Nginx và SSL miễn phí Let's Encrypt...

Cách cài đặt SuiteCRM với Nginx và SSL miễn phí Let's Encrypt trên Ubuntu 22.04

Cách cài đặt SuiteCRM với Nginx và SSL miễn phí Let’s Encrypt trên Ubuntu 22.04

SuiteCRM là một giải pháp quản lý quan hệ khách hàng mã nguồn mở được viết bằng PHP. Đó là một nhánh của phần mềm SugarCRM phổ biến sau khi SugarCRM ngừng phát hành phiên bản cộng đồng của nó. Nó được sử dụng để tạo một kho lưu trữ trung tâm cho tất cả dữ liệu khách hàng của bạn để có được thông tin chi tiết có thể được sử dụng để nâng cao và nuôi dưỡng các mối quan hệ kinh doanh của bạn.

Một số tính năng của nó bao gồm Lưu trữ tài liệu, Tiếp thị qua email, Lịch, Tích hợp phương tiện truyền thông xã hội, Quản lý theo lãnh thổ, Phân đoạn, Tự động hóa tiếp thị, Chứng chỉ khách hàng tiềm năng, Tích hợp trò chuyện nội bộ, Hỗ trợ khách hàng, CRM xã hội, Tự động hóa lực lượng bán hàng, chiến dịch tiếp thị, CRM trên thiết bị di động và Báo cáo. Nó có thể được tích hợp với các dịch vụ chuyển tiếp SMTP của bên thứ ba như Mandrill, Sendgrid, Amazon SES, v.v. Bạn có thể cài đặt các plugin để mở rộng chức năng của SuiteCRM. Nó có thể được tích hợp với các ứng dụng của bên thứ ba như Mautic, Facebook, Twitter, MailChimp, Zoom, Quickbooks, DocuSign, v.v.

Trong bài đăng này, bạn sẽ học cách cài đặt SuiteCRM bằng máy chủ web Nginx và Let’s Encrypt SSL trên Ubuntu 22.04.

Điều kiện tiên quyết

  • Máy chủ chạy Ubuntu 20.04.

  • Người dùng sudo không phải root.

  • Tên miền Đủ điều kiện (FQDN) trỏ đến máy chủ như suitecrm.example.com .
  • Đảm bảo rằng mọi thứ đều được cập nhật.

    $ sudo apt update $ sudo apt upgrade
  • Vài gói mà hệ thống của bạn cần.

    $ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y

    Một số gói này có thể đã được cài đặt trên hệ thống của bạn.

Bước 1 – Định cấu hình tường lửa

Bước đầu tiên là cấu hình tường lửa. Ubuntu đi kèm với ufw (Tường lửa không phức tạp) theo mặc định.

Kiểm tra xem tường lửa có đang chạy không.

$ sudo ufw status

Bạn sẽ nhận được kết quả sau.

Status: inactive

Cho phép cổng SSH để tường lửa không phá vỡ kết nối hiện tại khi bật nó.

$ sudo ufw allow OpenSSH

Cho phép cả cổng HTTP và HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Bật tường lửa

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Kiểm tra lại trạng thái của tường lửa.

$ sudo ufw status

Bạn sẽ thấy một kết quả tương tự.

Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)

Bước 2 – Cài đặt Nginx

Ubuntu xuất xưởng với phiên bản Nginx cũ hơn. Để cài đặt phiên bản mới nhất, bạn cần tải xuống kho lưu trữ chính thức của Nginx.

Nhập khóa ký của Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Thêm kho lưu trữ cho phiên bản ổn định của Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64]
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx"
| sudo tee /etc/apt/sources.list.d/nginx.list

Cập nhật kho hệ thống.

$ sudo apt update

Cài đặt Nginx.

$ sudo apt install nginx

Xác minh cài đặt.

$ nginx -v
nginx version: nginx/1.20.2

Bật dịch vụ Nginx.

$ sudo systemctl enable nginx

Bước 3 – Cài đặt và cấu hình MariaDB

Ubuntu 22.04 đi kèm với v10.6.7 của MariaDB. Chạy lệnh sau để cài đặt nó.

$ sudo apt install mariadb-server

Bảo mật cài đặt MariaDB.

$ sudo mysql_secure_installation

Bạn sẽ phải đối mặt với nhiều lời nhắc. Trả lời chúng như sau.

Enter current password for root (enter for none): Press Enter
Switch to unix_socket authentication [Y/n] Type y
Change the root password? [Y/n] Type n
Remove anonymous users? [Y/n] Type y
Disallow root login remotely? [Y/n] Type y
Remove test database and access to it? [Y/n] Type y
Reload privilege tables now? [Y/n] Type y

Kết nối với vỏ MariaDB bằng lệnh sau.

$ sudo mysql

Tạo cơ sở dữ liệu mới cho SuiteCRM.

$ CREATE DATABASE suitecrm;

Tạo một người dùng cơ sở dữ liệu mới và sử dụng mật khẩu mạnh cho t.

$ CREATE USER 'suitecrmuser'@'localhost' identified by 'yourpassword';

Cấp quyền trên cơ sở dữ liệu cho người dùng. Quảng cáo

$ GRANT ALL PRIVILEGES ON suitecrm.* TO 'suitecrmuser'@'localhost';

Xóa tất cả các đặc quyền.

$ FLUSH PRIVILEGES;

Thoát khỏi trình bao MySQL.

$ exit

Bước 4 – Cài đặt PHP và các phần mở rộng

Ubuntu 22.04 chạy với PHP 8.1 chưa được hỗ trợ bởi SuiteCRM. Chúng ta cần cài đặt PHP 8.0. Để làm được điều đó, chúng ta cần thêm kho lưu trữ PHP của Ondrej.

$ sudo add-apt-repository ppa:ondrej/php

Tiếp theo, cài đặt PHP và các phần mở rộng của nó theo yêu cầu của SuiteCRM.

$ sudo apt install php-imagick php8.0-fpm php8.0-mysql php8.0-common php8.0-gd php8.0-imap php8.0-curl php8.0-zip php8.0-xml php8.0-mbstring php8.0-bz2 php8.0-intl php8.0-gmp

Xác minh cài đặt.

$ php --version
PHP 8.0.18 (cli) (built: May 1 2022 04:42:09) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.18, Copyright (c) Zend Technologies
with Zend OPcache v8.0.18, Copyright (c), by Zend Technologies

Bước 5 – Tải xuống SuiteCRM

Tải xuống phiên bản ổn định mới nhất của SuiteCRM. Bạn có thể lấy liên kết tải xuống từ trang web chính thức của SuiteCRM.

Đối với hướng dẫn của chúng tôi, chúng tôi sẽ cài đặt v7 của SuiteCRM vì nó được hỗ trợ trong một khoảng thời gian dài. Bạn có thể cài đặt phiên bản v8 nếu muốn nhưng ban đầu nó sẽ có thời gian hỗ trợ ngắn hơn.

$ wget -O suitecrm.zip https://suitecrm.com/files/147/SuiteCRM-7.12/614/SuiteCRM-7.12.5.zip

Tạo một thư mục gốc web để phục vụ SuiteCRM. Cờ -p tạo các thư mục cấp cao nhất trong đường dẫn nếu chúng không có mặt.

$ sudo mkdir -p /var/www/

Giải nén kho lưu trữ zip đã tải xuống.

$ sudo unzip suitecrm.zip -d /var/www/

Cờ -d chỉ định thư mục đích cho kho lưu trữ.

Nó sẽ được lưu trong thư mục /var/www/SuiteCRM-7.12.5/ . Chúng tôi đổi tên nó để làm cho nó đơn giản hơn.

$ sudo mv /var/www/SuiteCRM-7.12.5/ /var/www/suitecrm

Chuyển sang thư mục gốc.

$ cd /var/www/suitecrm

Đặt quyền sở hữu và quyền chính xác cho các thư mục khác nhau.

$ sudo chown -R nginx:nginx .
$ sudo chmod -R 755 .
$ sudo chmod -R 775 cache custom modules themes data upload
$ sudo chmod 775 config_override.php 2>/dev/null

Bước 6 – Cài đặt và định cấu hình SSL

Trước khi định cấu hình Nginx, chúng ta cần thiết lập chứng chỉ SSL.

Để cài đặt chứng chỉ SSL bằng Let’s Encrypt, chúng ta cần tải xuống công cụ Certbot. Chúng tôi sẽ sử dụng trình cài đặt gói Snapd cho việc đó.

Cài đặt trình cài đặt Snap.

$ sudo apt install snapd

Đảm bảo rằng phiên bản Snapd của bạn được cập nhật.

$ sudo snap install core
$ sudo snap refresh core

Cài đặt Certbot.

$ sudo snap install --classic certbot

Sử dụng lệnh sau để đảm bảo rằng lệnh Certbot chạy bằng cách tạo một liên kết tượng trưng đến thư mục /usr/bin .

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Dừng máy chủ Nginx vì nó can thiệp vào công cụ Certbot.

$ sudo systemctl stop nginx

Tạo chứng chỉ SSL.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d suitecrm.example.com

Lệnh trên sẽ tải chứng chỉ xuống thư /etc/letsencrypt/live/suitecrm.example.com trên máy chủ của bạn.

Tạo chứng chỉ nhóm Diffie-Hellman .

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

Tạo thư mục gốc web thử thách cho tính năng tự động gia hạn Let’s Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Tạo Công việc Cron để gia hạn SSL. Nó sẽ chạy hàng ngày để kiểm tra chứng chỉ và gia hạn nếu cần. Đối với điều đó, trước tiên, hãy tạo tệp /etc/cron.daily/certbot-renew và mở nó để chỉnh sửa.

$ sudo nano /etc/cron.daily/certbot-renew

Dán đoạn mã sau.

#!/bin/sh
certbot renew --cert-name suitecrm.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Thay đổi các quyền trên tệp tác vụ để tệp có thể thực thi được.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Bước 7 – Định cấu hình Nginx và PHP

Định cấu hình PHP-FPM

Mở tệp /etc/php/8.0/fpm/pool.d/www.conf .

$ sudo nano /etc/php/8.0/fpm/pool.d/www.conf

Chúng ta cần đặt người dùng Unix / nhóm các quy trình PHP thành nginx . Tìm dòng user=www-datagroup=www-data trong tệp và thay đổi chúng thành nginx .

...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = nginx
group = nginx
...

Ngoài ra, hãy tìm các dòng listen.owner=www-datalisten.group=www-data trong tệp và thay đổi chúng thành nginx .

listen.owner = nginx
listen.group = nginx

Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Định cấu hình kích thước tải lên PHP

PHP đặt giới hạn cho kích thước tệp tải lên. Kích thước mặc định do PHP đặt là 2 MB. Để tăng kích thước tải lên, hãy mở tệp cấu hình PHP để chỉnh sửa.

$ sudo nano /etc/php/8.0/fpm/php.ini

Tìm dòng sau.

upload_max_filesize = 2M

Thay đổi giá trị của nó thành 20MB như được hiển thị.

upload_max_filesize = 20M

Tìm dòng sau.

post_max_size = 8M

Thay đổi giá trị của nó thành 20MB như được hiển thị.

post_max_size = 20M

Tìm dòng sau.

;cgi.fix_pathinfo=1

Bỏ ghi chú bằng cách bỏ dấu chấm phẩy và thay đổi giá trị của nó thành 0.

cgi.fix_pathinfo=0

Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại quy trình PHP-fpm.

$ sudo systemctl restart php8.0-fpm

Định cấu hình Nginx

Tạo và mở tệp /etc/nginx/conf.d/suitecrm.conf để chỉnh sửa.

$ sudo nano /etc/nginx/conf.d/suitecrm.conf

Dán đoạn mã sau vào đó.

máy chủ {nghe 443 ssl http2; nghe [::]: 443 ssl http2; server_name suitecrm.example.com; root / var / www / suitecrm; error_log /var/log/nginx/suitecrm.error.log; access_log /var/log/nginx/suitecrm.access.log; khách_hàng tối_đa 20M; index index.php index.html index.htm; ssl_certificate /etc/letsencrypt/live/suitecrm.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/suitecrm.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/suitecrm.example.com/chain.pem; ssl_session_timeout 5m; ssl_session_cache đã chia sẻ: MozSSL: 10m; tắt ssl_session_tickets; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers trên; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-GCM-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-GCM-SHACHA205: ECD -RSA-CHACHA20-POLY1305: DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519: prime256v1: secp384r1: secp521r1; ssl_stapling trên; ssl_stapling_verify trên; ssl_dhparam /etc/ssl/certs/dhparam.pem; location / {# cố gắng cung cấp tệp trực tiếp, dự phòng cho app.php try_files $ uri /index.php$is_args$args; } vị trí ~ .php $ {# try_files $ uri = 404; fastcgi_split_path_info ^ (. + . php) (/.+) $; # LƯU Ý: Bạn phải có "cgi.fix_pathinfo = 0;" trong php.ini fastcgi_pass unix: /var/run/php/php8.0-fpm.sock; # Lưu ý: Nếu bạn cài đặt SuiteCRM trên máy chủ iRedMail, bạn nên sử dụng cổng TCP thay thế. #fastcgi_pass 127.0.0.1:9999 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; bao gồm fastcgi_params; fastcgi_bánh_giá 128k;fastcgi_bạc 256 16k; fastcgi_bình_chính_hình 256k; fastcgi_temp_file_write_size 256k; } # Don't log favicon location = /favicon.ico {log_not_found off; tắt access_log; } # Don't log robots location = /robots.txt {access_log off; log_not_found tắt; } # Từ chối mọi nỗ lực truy cập vào các tệp / thư mục ẩn như .htaccess, .htpasswd, .DS_Store (Mac), v.v. ... vị trí ~ / . { Phủ nhận tất cả; tắt access_log; log_not_found tắt; } # Tuổi thọ dài của bộ nhớ cache của trình duyệt có thể tăng tốc độ truy cập lặp lại vào vị trí trang của bạn ~ * . (Jpg | jpeg | gif | png | webp | svg | woff | woff2 | ttf | css | js | ico | xml) $ {access_log tắt; log_not_found tắt; hết hạn 360đ; }} # thực thi máy chủ HTTPS {nghe 80; nghe [::]: 80; server_name suitecrm.example.com; trả về 301 https: // $ host $ request_uri; }

Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.

$ sudo nano /etc/nginx/nginx.conf

Thêm dòng sau vào trước dòng include /etc/nginx/conf.d/*.conf; .

server_names_hash_bucket_size 64;

Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xác minh cú pháp tệp cấu hình Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Khởi động lại dịch vụ Nginx để kích hoạt cấu hình mới.

$ sudo systemctl restart nginx

Bước 8 – Cài đặt và cấu hình SuiteCRM

Mở trang https://suitecrm.example.com trong trình duyệt và bạn sẽ thấy trình hướng dẫn cài đặt.

SuiteCRM Setup Wizard

Đánh dấu vào hộp Tôi chấp nhận và nhấp vào nút Tiếp theo để tiếp tục. Bạn sẽ thấy màn hình kiểm tra các yêu cầu cài đặt trước.

SuiteCRM Pre-Installation requirements

Nếu mọi thứ đều ổn, hãy nhấp vào nút Tiếp theo để tiếp tục.

SuiteCRM Configuration Page

Nhập thông tin xác thực cơ sở dữ liệu đã đặt ở bước 3. Nhập localhost làm Tên máy chủ . Ngoài ra, hãy nhập chi tiết cho tài khoản quản trị viên và nhập https://suitecrm.example.com làm URL phiên bản.

Bạn có thể định cấu hình các cài đặt bổ sung như dữ liệu demo, cài đặt máy chủ SMTP, thương hiệu, ngôn ngữ hệ thống, bảo mật và cài đặt cơ sở dữ liệu.

Để bật cài đặt SMTP, hãy mở rộng phần Thông số kỹ thuật máy chủ SMTP của trang và điền vào các giá trị thích hợp. Nếu bạn đang sử dụng Gmail hoặc Microsoft Exchange, bạn có thể sử dụng các nút chuyên dụng để định cấu hình chúng. Đối với hướng dẫn của chúng tôi, chúng tôi đang sử dụng Amazon SES.

SuiteCRM SMTP Server Settings

Ngoài ra, hãy đặt cài đặt ngôn ngữ hệ thống.

SuiteCRM Locale Settings

Sau khi hoàn tất, hãy nhấp vào nút Tiếp theo ở cuối trang để tiếp tục. Bạn sẽ được cung cấp thông tin chi tiết về quá trình hoàn thành cấu hình của SuiteCRM.

SuiteCRM Configuration Complete

Nhấp vào nút Tiếp theo để tiếp tục. Bạn sẽ thấy trang đăng nhập.

SuiteCRM Login Page

Nhập thông tin đăng nhập tài khoản quản trị viên và nhấp vào Đăng nhập để mở trang tổng quan SuiteCRM.

SuiteCRM Dashboard

Bạn có thể bắt đầu sử dụng SuiteCRM để quản lý dữ liệu doanh nghiệp và khách hàng của mình.

Bước 9 – Thiết lập Cron Jobs

SuiteCRM cần các công việc cron để hoạt động bình thường. Chỉnh sửa tệp crontab của người dùng nginx .

$ sudo crontab -e -u nginx

Thêm dòng sau vào cuối tệp.

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

Lưu và đóng tập tin.

Sự kết luận

Phần này kết thúc hướng dẫn cài đặt SuiteCRM bằng máy chủ Nginx với Let’s Encrypt SSL trên Ubuntu 22.04. Nếu bạn có bất kỳ câu hỏi nào, hãy gửi chúng trong phần bình luận bên dưới.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments