Theo thông lệ, phần mềm Quản lý quan hệ khách hàng (CRM) được tạo ra để các doanh nghiệp quản lý khách hàng của họ. Phần mềm CRM giúp các doanh nghiệp thu thập dữ liệu từ khách hàng và cung cấp hỗ trợ thông qua nhiều phương tiện truyền thông khác nhau.
Tuy nhiên, Monica Personal CRM hướng đến các cá nhân và mối quan hệ cá nhân của họ với gia đình và bạn bè. Monica CRM giúp sắp xếp và lưu trữ mọi thứ liên quan đến những người xung quanh bạn. Đây là phần mềm mã nguồn mở và hoàn toàn miễn phí sử dụng. Phần mềm được viết bằng nền tảng web Laravel PHP.
Trong hướng dẫn này, bạn sẽ học cách cài đặt Monica Personal CRM trên máy chủ Debian 12.
[*]
Một số gói thiết yếu là cần thiết để chạy hướng dẫn và Monica CRM. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Kiểm tra trạng thái của tường lửa.
Bạn nên xem nội dung tương tự như sau.
Cho phép các cổng HTTP và HTTPs.
Kiểm tra lại trạng thái để xác nhận.
Kiểm tra phiên bản Git.
Chạy các lệnh sau để cấu hình Git thêm tên và địa chỉ email của bạn vào nó.
Tạo kho lưu trữ deb Nodesource. Phiên bản Node LTS hiện tại là 20.x nhưng nó không hoạt động với trình quản lý gói Yarn do đó chúng tôi đã đặt nó thành 18.x cho đến bây giờ.
Cập nhật danh sách kho lưu trữ hệ thống.
Cài đặt Node.js.
Xác nhận xem nó đã được cài đặt đúng cách chưa.
Cập nhật NPM.
Xác minh phiên bản NPM.
Cài đặt Yarn bằng lệnh sau.
Xác minh cài đặt Yarn.
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Cập nhật hệ thống kho lưu trữ.
Cài đặt Nginx.
Xác minh cài đặt. Trên hệ thống Debian, lệnh sau chỉ hoạt động với
Khởi động Nginx máy chủ.
Kiểm tra trạng thái dịch vụ.
Mở địa chỉ IP của máy chủ trong trình duyệt web của bạn. Bạn sẽ thấy trang sau, điều đó có nghĩa là máy chủ của bạn đã hoạt động.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22574%22%20height=%22268%22%3E%3C/svg%3E
Để luôn sử dụng phiên bản PHP mới nhất hoặc nếu bạn muốn cài đặt nhiều phiên bản PHP, hãy thêm kho lưu trữ PHP của Ondrej.
Đầu tiên, hãy nhập khóa GPG PHP của kho lưu trữ Sury.
Thêm Ondrej Kho lưu trữ PHP của Sury.
Cập nhật danh sách kho lưu trữ hệ thống của bạn.
Bạn có thể sẽ nhận được thông tin về các bản nâng cấp đang chờ xử lý. Chạy chúng.
Cài đặt PHP và các tiện ích mở rộng của nó.
Kiểm tra phiên bản PHP đã cài đặt.
Để thiết lập kích thước tải tệp lên, hãy thay đổi giá trị của
Cấu hình giới hạn bộ nhớ của PHP tùy thuộc vào tài nguyên máy chủ và yêu cầu của bạn.
Mở tệp
Chúng ta cần đặt người dùng/nhóm Unix của các quy trình PHP thành nginx. Tìm các dòng
Ngoài ra, hãy tìm các dòng
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. Hãy đảm bảo bạn đã cài đặt Nginx trước khi khởi động lại dịch vụ PHP, nếu không, dịch vụ sẽ không hoạt động vì không tìm thấy nhóm
Tải xuống tập lệnh cài đặt Composer.
Xác minh trình cài đặt đã tải xuống.
Bạn sẽ nhận được thông báo sau đầu ra.
Chạy tập lệnh cài đặt để tải xuống phiên bản mới nhất của Composer.
Xóa cài đặt script.
Di chuyển tệp nhị phân đã tải xuống đến
Xác nhận cài đặt.
Theo mặc định, Debian 12 đi kèm MariaDB 10.11.4 đã hơi lỗi thời. Để có phiên bản ổn định mới nhất của MariaDB, bạn cần sử dụng kho lưu trữ chính thức.
Nhập khóa GPG của MariaDB.
Tạo tệp kho lưu trữ của MariaDB.
Cập nhật kho lưu trữ hệ thống danh sách.
Phát hành lệnh sau để cài đặt máy chủ MariaDB.
Kiểm tra xem MariaDB đã được cài đặt chưa chính xác.
Bạn sẽ thấy kết quả sau.
Bạn cũng có thể sử dụng
Dịch vụ MariaDB đã được bật và đang chạy. Kiểm tra trạng thái của dịch vụ bằng lệnh sau.
Chạy lệnh sau để thực hiện cấu hình mặc định như đặt mật khẩu root, xóa người dùng ẩn danh, không cho phép đăng nhập root từ xa và xóa bảng thử nghiệm.
Bạn sẽ được yêu cầu nhập mật khẩu root. Vì chúng ta không thiết lập bất kỳ mật khẩu gốc nào, hãy nhấn phím Enter để tiếp tục.
Tiếp theo, bạn sẽ được hỏi xem bạn có muốn chuyển sang plugin
Tiếp theo, bạn sẽ được hỏi có muốn thay đổi mật khẩu root không. Trên Debian 12, tài khoản root cho MariaDB được liên kết chặt chẽ với bảo trì hệ thống tự động, vì vậy bạn không nên thay đổi các phương thức xác thực được cấu hình cho tài khoản. Làm như vậy sẽ cho phép bản cập nhật gói phá vỡ hệ thống cơ sở dữ liệu bằng cách xóa quyền truy cập vào tài khoản quản trị. Nhập
Từ đây trở đi, nhấn
Vậy là xong. Lần tới khi bạn muốn đăng nhập vào shell MariaDB, hãy sử dụng lệnh sau.
Nhập mật khẩu gốc Linux của bạn khi được nhắc.
Nhấn
Tạo cơ sở dữ liệu MySQL mới, người dùng cơ sở dữ liệu và mật khẩu cho Monica CRM của bạn cài đặt.
Thay thế
Ngoài ra, hãy tạo một người dùng quản trị có cùng khả năng như tài khoản gốc.
Xóa các đặc quyền để đảm bảo rằng chúng được lưu trong phiên hiện tại.
Thoát khỏi MariaDB shell.
Đặt người dùng hiện đang đăng nhập làm chủ sở hữu của thư mục.
Chuyển sang thư mục.
Sao chép kho lưu trữ Monica Github chính thức tại đây vị trí.
Chuyển sang thư mục đã sao chép.
Lấy dữ liệu mới nhất từ GitHub.
Kiểm tra phiên bản mới nhất của Monica. Để chọn phiên bản mới nhất, hãy kiểm tra trang phát hành Monica. Tại thời điểm viết hướng dẫn này, phiên bản mới nhất có sẵn là 4.0.0. Thay thế 4.0.0 bằng phiên bản bạn đang cài đặt trong lệnh bên dưới.
Bạn sẽ nhận được kết quả sau.
Sao chép tệp biến môi trường mẫu để tạo một tệp nhằm cấu hình Monica CRM.
Thay đổi các giá trị sau như được hiển thị. Đặt biến
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Cài đặt tất cả các gói cần thiết cho Monica bằng Composer.
Sử dụng Yarn để cài đặt các gói frontend và xây dựng các tài sản (JS, CSS và phông chữ).
Tạo giá trị
Phát hành lệnh sau để chạy di chuyển, gieo hạt giống cơ sở dữ liệu và tạo thư mục liên kết tượng trưng. Bạn sẽ được nhắc bằng câu hỏi có hoặc không về việc có nên tiếp tục hay không. Nhập có để tiếp tục. Nhập địa chỉ email và mật khẩu cần thiết để tạo người dùng mặc định và sử dụng các giá trị đó trong lệnh.
Bạn sẽ nhận được thông báo sau về quá trình cài đặt thành công.
Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói Snapd.
Chạy các lệnh sau để đảm bảo phiên bản Snapd của bạn được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến
Kiểm tra xem Certbot có hoạt động bình thường không.
Chạy lệnh sau để tạo SSL Chứng chỉ.
Lệnh trên sẽ tải chứng chỉ xuống thư mục
Tạo nhóm Diffie-Hellman chứng chỉ.
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Bạn sẽ tìm thấy
Thực hiện chạy thử quy trình để kiểm tra xem việc gia hạn SSL có hoạt động không tốt.
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.
Đặt quyền thư mục chính xác trên
Mở tệp
Thêm dòng sau vào trước dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tạo và mở tệp
Dán mã sau vào đó. Thay thế
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh cấu hình Nginx của bạn.
Khởi động lại Nginx máy chủ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22613%22%20height=%22551%22%3E%3C/svg%3E
Nhập email và mật khẩu bạn đã cấu hình ở bước 12 và nhấn nút Đăng nhập để tiếp tục. Bạn sẽ được đưa đến màn hình chào mừng, nơi bạn có thể bắt đầu sử dụng ứng dụng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22531%22%3E%3C/svg%3E
Chạy trình chỉnh sửa crontab. Chúng tôi đang truyền
Nếu đây là lần đầu tiên bạn chạy crontab, bạn sẽ được yêu cầu chọn trình soạn thảo.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Vậy là xong. Các tác vụ theo lịch trình của Monica sẽ được chạy thường xuyên bằng chức năng cron.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22578%22%3E%3C/svg%3E
Nhấp vào nút Xuất sang SQL để xuất cơ sở dữ liệu. Cũng có tùy chọn Xuất sang Json sao lưu nhiều dữ liệu hơn là chỉ SQL nhưng không có cách nào để nhập dữ liệu đó. Bạn có thể sẽ thấy trạng thái là không thành công cho cả hai lần xuất nhưng nếu bạn duyệt thư mục
Bây giờ chúng ta đã sao lưu dữ liệu, đến lúc cập nhật.
Chuyển sang thư mục Monica.
Vì quyền của thư mục được đặt thành
Lấy Git mới nhất thay đổi.
Sao chép phiên bản mong muốn. Đối với hướng dẫn của chúng tôi, chúng tôi đang đề cập đến phiên bản beta. Không sử dụng nó trên máy chủ sản xuất.
Cập nhật các phần phụ thuộc.
Cài đặt giao diện người dùng gói.
Xây dựng các tài sản JavaScript và CSS.
Chạy lệnh sau để cập nhật phiên bản. Thao tác này sẽ chạy các tập lệnh di chuyển cho cơ sở dữ liệu và xóa tất cả bộ đệm cho cấu hình, tuyến đường và chế độ xem như một quy trình tối ưu hóa.
Nếu bạn muốn khôi phục cơ sở dữ liệu SQL sang một phiên bản Monica khác, hãy đảm bảo phiên bản của bạn hoàn toàn trống, nghĩa là không có bảng và không có dữ liệu. Sau khi bạn đã đảm bảo điều đó, hãy chạy lệnh sau để bắt đầu quá trình di chuyển cơ sở dữ liệu.
Tiếp theo, nhập tệp
Bạn sẽ được nhắc nhập mật khẩu DB người dùng Monica đã cấu hình trước đó. Tiếp theo, hãy đăng nhập vào phiên bản bằng thông tin đăng nhập được sử dụng trên phiên bản cũ hơn.
Sau khi hoàn tất, hãy khôi phục quyền thư mục Monica cho người dùng
Tuy nhiên, Monica Personal CRM hướng đến các cá nhân và mối quan hệ cá nhân của họ với gia đình và bạn bè. Monica CRM giúp sắp xếp và lưu trữ mọi thứ liên quan đến những người xung quanh bạn. Đây là phần mềm mã nguồn mở và hoàn toàn miễn phí sử dụng. Phần mềm được viết bằng nền tảng web Laravel PHP.
Trong hướng dẫn này, bạn sẽ học cách cài đặt Monica Personal CRM trên máy chủ Debian 12.
Điều kiện tiên quyết
-
Máy chủ chạy Debian 12 với RAM tối thiểu 1,5 GB. Nếu máy chủ của bạn có RAM nhỏ hơn 1,5 GB, thì tác vụ cài đặt Yarn rất có thể sẽ không thành công. Nâng cấp lên máy chủ có RAM tốt hơn trước khi tiến hành hướng dẫn này để đảm bảo cài đặt diễn ra suôn sẻ.
-
Người dùng không phải root có quyền sudo.
-
Tường lửa đơn giản (UFW) được bật và đang chạy.
-
Tên miền đủ điều kiện (FQDN) nhưmonica.example.com
trỏ đến máy chủ của bạn.
-
Tài khoản SMTP có dịch vụ email như Amazon SES hoặc Mailgun.
-
Mọi thứ đều đã cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade
Một số gói thiết yếu là cần thiết để chạy hướng dẫn và Monica CRM. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Mã:
$ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y
Bước 1 - Cấu hình Tường lửa
Bước đầu tiên trước khi cài đặt bất kỳ gói nào là cấu hình tường lửa để cho phép kết nối HTTP và HTTPS.Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo ufw status
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mã:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
Bước 2 - Cài đặt Git
Git thường được cài đặt sẵn với Debian 12 nhưng trong trường hợp chưa cài đặt, hãy chạy lệnh sau để cài đặt.
Mã:
$ sudo apt install git -y
Mã:
$ git --version
git version 2.39.2
Mã:
$ git config --global user.name "Your Name"
$ git config --global user.email "[emailprotected]"
Bước 3 - Cài đặt Node
Monica CRM cần Node.js để hoạt động. Nhập khóa GPG Nodesource.
Mã:
$ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg
Mã:
$ NODE_MAJOR=18
$ echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install nodejs -y
Mã:
$ node --version
v18.18.2
Mã:
$ sudo npm install -g npm@latest
Mã:
$ npm --version
10.2.4
Bước 4 - Cài đặt Yarn
Yarn là một trình quản lý gói Javascript khác mà Monica CRM cần cùng với Node.js. Phương pháp cài đặt Yarn thông thường là cài đặt toàn cục. Điều này đảm bảo tất cả các công cụ kiểm tra và tự động hóa trong một dự án đều sử dụng cùng một phiên bản Yarn, ngăn ngừa sự không nhất quán.Cài đặt Yarn bằng lệnh sau.
Mã:
$ sudo npm install --global yarn
Mã:
$ yarn --version
1.22.21
Bước 5 - Cài đặt Nginx
Debian 12 đi kèm 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ữ Nginx chính thức.Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
sudo
.
Mã:
$ sudo nginx -v
nginx version: nginx/1.24.0
Mã:
$ sudo systemctl start nginx
Mã:
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled) Active: active (running) since Mon 2023-11-20 13:24:40 UTC; 4s ago Docs: https://nginx.org/en/docs/ Process: 16778 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 16779 (nginx) Tasks: 2 (limit: 2315) Memory: 1.7M CPU: 8ms CGroup: /system.slice/nginx.service ??16779 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??16780 "nginx: worker process"
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22574%22%20height=%22268%22%3E%3C/svg%3E
Bước 6 - Cài đặt PHP và tiện ích mở rộng
Debian 12 mặc định đi kèm với PHP 8.2. Bạn có thể cài đặt nó và các tiện ích mở rộng mà Monica CRM yêu cầu bằng cách chạy lệnh sau.
Mã:
$ sudo apt install php php-bcmath php-cli php-curl php-common \ php-fpm php-gd php-gmp php-intl php-json php-mbstring \ php-mysql php-opcache php-redis php-xml php-zip
Đầu tiên, hãy nhập khóa GPG PHP của kho lưu trữ Sury.
Mã:
$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
Mã:
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
Mã:
$ sudo apt update
Mã:
$ sudo apt upgrade
Mã:
$ sudo apt install php8.2 php8.2-bcmath php8.2-cli php8.2-curl php8.2-common \ php8.2-fpm php8.2-gd php8.2-gmp php8.2-intl php8.2-mbstring \ php8.2-mysql php8.2-opcache php8.2-redis php8.2-xml php8.2-zip
Mã:
$ php --version
PHP 8.2.12 (cli) (built: Oct 27 2023 13:00:10) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.12, Copyright (c) Zend Technologies with Zend OPcache v8.2.12, Copyright (c), by Zend Technologies
Bước 7 - Cấu hình PHP-FPM
Mởphp.ini
cho chỉnh sửa.
Mã:
$ sudo nano /etc/php/8.2/fpm/php.ini
upload_max_filesize
và post_max_size
biến. Giá trị này quyết định kích thước tệp bạn có thể tải lên Monica. Theo mặc định, nó được đặt ở mức 10MB, đây là mức chúng ta sẽ cấu hình bằng PHP.
Mã:
$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 10M/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 10M/' /etc/php/8.2/fpm/php.ini
Mã:
$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini
/etc/php/8.2/fpm/pool.d/www.conf
.
Mã:
$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf
user=www-data
và group=www-data
trong tệp và thay đổi chúng thành nginx
.
Mã:
...
; 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
...
listen.owner=www-data
và listen.group=www-data
trong tệp và thay đổi chúng thành nginx
.
Mã:
listen.owner = nginx
listen.group = nginx
Khởi động lại quy trình PHP-fpm. Hãy đảm bảo bạn đã cài đặt Nginx trước khi khởi động lại dịch vụ PHP, nếu không, dịch vụ sẽ không hoạt động vì không tìm thấy nhóm
nginx
.
Mã:
$ sudo systemctl restart php8.2-fpm
Bước 8 - Cài đặt Composer
Composer hoạt động như một trình quản lý phụ thuộc cho PHP. Đây cũng là trình quản lý phụ thuộc của khung Laravel PHP, là thứ cung cấp năng lượng cho Monica CRM.Tải xuống tập lệnh cài đặt Composer.
Mã:
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Mã:
$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Mã:
Installer verified
Mã:
$ php composer-setup.php
Mã:
$ php -r "unlink('composer-setup.php');"
/usr/local/bin
thư mục.
Mã:
$ sudo mv composer.phar /usr/local/bin/composer
Mã:
$ composer --version
Composer version 2.6.5 2023-10-06 10:11:52
Bước 9 - Cài đặt MariaDB
MariaDB là chương trình thay thế MySQL, có nghĩa là các lệnh để chạy và vận hành MariaDB giống với các lệnh dành cho MySQL.Theo mặc định, Debian 12 đi kèm MariaDB 10.11.4 đã hơi lỗi thời. Để có phiên bản ổn định mới nhất của MariaDB, bạn cần sử dụng kho lưu trữ chính thức.
Nhập khóa GPG của MariaDB.
Mã:
$ sudo curl -o /usr/share/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/mariadb-keyring.pgp] https://deb.mariadb.org/10.11/debian `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/mariadb-server.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install mariadb-server -y
Mã:
$ mysql --version
Mã:
mysql Ver 15.1 Distrib 10.11.6-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
mariadb --version
để kiểm tra phiên bản.Dịch vụ MariaDB đã được bật và đang chạy. Kiểm tra trạng thái của dịch vụ bằng lệnh sau.
Mã:
$ sudo systemctl status mariadb
? mariadb.service - MariaDB 10.11.6 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled) Drop-In: /etc/systemd/system/mariadb.service.d ??migrated-from-my.cnf-settings.conf Active: active (running) since Tue 2023-11-21 07:49:48 UTC; 8min ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 28307 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Process: 28308 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 28310 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR> Process: 28350 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 28352 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Main PID: 28339 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 8 (limit: 2315) Memory: 213.3M CPU: 585ms CGroup: /system.slice/mariadb.service ??28339 /usr/sbin/mariadbd
Mã:
$ sudo mariadb-secure-installation
Mã:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none): [PRESS ENTER]
OK, successfully used password, moving on...
unix_socket
hay không. Plugin unix_socket
cho phép bạn đăng nhập vào MariaDB bằng thông tin đăng nhập người dùng Linux của bạn. Chọn n
để bỏ qua việc chuyển sang nó vì bạn đã có root
được bảo vệ account.
Mã:
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n ... skipping.
n
để tiếp tục.
Mã:
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] n ... skipping.
y
rồi Enter
để chấp nhận các giá trị mặc định cho tất cả các câu hỏi sau. Thao tác này sẽ xóa quyền truy cập của người dùng ẩn danh, kiểm tra cơ sở dữ liệu, vô hiệu hóa đăng nhập root từ xa và tải các thay đổi.
Mã:
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y ... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y ... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Mã:
$ sudo mysql
Mã:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 38
Server version: 10.11.6-MariaDB-1:10.11.6+maria~deb12 mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
exit
để đóng shell MariaDB.Bước 10 - Cấu hình MariaDB
Đăng nhập vào shell MariaDB.
Mã:
$ sudo mysql
Mã:
MariaDB> CREATE DATABASE monica CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB> CREATE USER 'monicauser'@'localhost' IDENTIFIED BY 'yourpassword';
MariaDB> GRANT ALL PRIVILEGES ON monica.* TO 'monicauser'@'localhost';
monica
, monicauser
và yourpassword
với thông tin đăng nhập bạn chọn. Chọn mật khẩu mạnh.Ngoài ra, hãy tạo một người dùng quản trị có cùng khả năng như tài khoản gốc.
Mã:
MariaDB> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Mã:
MariaDB> FLUSH PRIVILEGES;
Mã:
MariaDB> exit
Bước 11 - Tải xuống Monica
Tạo thư mục gốc web.
Mã:
$ sudo mkdir /var/www/html -p
Mã:
$ sudo chown -R $USER:$USER /var/www/html
Mã:
$ cd /var/www/html
Mã:
$ git clone https://github.com/monicahq/monica.git
Mã:
$ cd monica
Mã:
$ git fetch
Mã:
$ git checkout tags/v4.0.0
Mã:
Note: switching to 'tags/v4.0.0'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example: git switch -c
Or undo this operation with: git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at e1a3e1315 build: delete heroku workflow (#6540)
Bước 12 - Cài đặt Monica
Đảm bảo bạn đang ở trong thư mục gốc để Monica.
Mã:
$ cd /var/www/html/monica
Mã:
$ cp .env.example .env
APP_ENV
thành production
. Điều này sẽ thực thi giao thức HTTPS. Đặt biến APP_URL
thành tên miền Monica của bạn cùng với giao thức HTTPS. Đặt thông tin xác thực cơ sở dữ liệu như đã tạo ở bước trước. Trong hướng dẫn của chúng tôi, chúng tôi đang sử dụng dịch vụ SES SMTP của Amazon. Nhập thông tin chi tiết cho dịch vụ bạn sẽ sử dụng. Nếu bạn không sử dụng bất kỳ gói nào, bạn có thể bỏ qua việc điền vào các trường đó.
Mã:
APP_ENV=production
...
APP_URL=https://monica.example.com
...
DB_DATABASE=monicadb
DB_USERNAME=monicauser
DB_PASSWORD=YourPassword23!
...
MAIL_MAILER=smtp
MAIL_HOST=email-smtp.us-west-2.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=SESID
MAIL_PASSWORD=SESKey
MAIL_ENCRYPTION=tls
# Outgoing emails will be sent with these identity
[emailprotected]
MAIL_FROM_NAME="Monica CRM"
# New registration notification sent to this email
[emailprotected]
...
Cài đặt tất cả các gói cần thiết cho Monica bằng Composer.
Mã:
$ composer install --no-interaction --no-dev
Mã:
$ yarn install
$ yarn run production
APP_KEY
và tự động điền vào .env
tệp. Bạn sẽ được nhắc bằng câu hỏi có hoặc không về việc có nên tiếp tục hay không. Nhập có để tiếp tục.
Mã:
$ php artisan key:generate
Mã:
$ php artisan setup:production [emailprotected] --password=yourpassword -v
Mã:
Monica v4.0.0 is set up, enjoy.
? Filling database INFO Seeding database.
-----------------------------
|
| Welcome to Monica v4.0.0
|
-----------------------------
| You can now sign in to your account:
| username: [emailprotected]
| password:
| URL: https://monica.example.com
-----------------------------
Setup is done. Have fun.
Bước 13 - Cài đặt SSL
Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Debian hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng ta sẽ sử dụng phiên bản Snapd.Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói Snapd.
Mã:
$ sudo apt install snapd
Mã:
$ sudo snap install core && sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ certbot --version
certbot 2.7.4
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d monica.example.com
/etc/letsencrypt/live/monica.example.com
trên máy chủ của bạn.Tạo nhóm Diffie-Hellman chứng chỉ.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Mã:
$ sudo systemctl list-timers
snap.certbot.renew.service
là một trong những dịch vụ được lên lịch chạy.
Mã:
NEXT LEFT LAST PASSED UNIT ACTIVATES
---------------------------------------------------------------------------------------------------------------------------
Tue 2023-11-21 11:39:00 UTC 4min 54s left Tue 2023-11-21 11:09:07 UTC 24min ago phpsessionclean.timer phpsessionclean.service
Tue 2023-11-21 12:57:00 UTC 1h 22min left - - snap.certbot.renew.timer snap.certbot.renew.service
Wed 2023-11-22 00:00:00 UTC 12h left Tue 2023-11-21 00:00:03 UTC 11h ago dpkg-db-backup.timer dpkg-db-backup.service
Mã:
$ sudo certbot renew --dry-run
Bước 14 - Cấu hình Nginx
Cho phép Nginx truy cập vào thư mục gốc Monica.
Mã:
$ sudo chown -R nginx:nginx /var/www/html/monica
storage
thư mục.
Mã:
$ sudo chmod -R 775 /var/www/html/monica/storage
/etc/nginx/nginx.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
.
Mã:
server_names_hash_bucket_size 64;
Tạo và mở tệp
/etc/nginx/conf.d/monica.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/monica.conf
monica.example.com
bằng tên miền của bạn. Đảm bảo giá trị của client_max_body_size
được đặt thành 10MB, đây là kích thước tải lên mặc định của tệp trong Monica. Đây là giá trị giống với giá trị chúng ta đã định cấu hình với PHP trước đó.
Mã:
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name monica.example.com; root /var/www/html/monica/public; index index.php; client_max_body_size 10M; access_log /var/log/nginx/monica.access.log; error_log /var/log/nginx/monica.error.log; ssl_certificate /etc/letsencrypt/live/monica.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/monica.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/monica.example.com/chain.pem; ssl_session_timeout 5m; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_keep_conn on; include fastcgi_params; fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
}
# enforce HTTPS
server { listen 80; listen [::]:80; server_name monica.example.com; return 301 https://$host$request_uri;
}
Xác minh cấu hình Nginx của bạn.
Mã:
$ sudo nginx -t
Mã:
$ sudo systemctl restart nginx
Bước 15 - Truy cập Monica CRM
Mở URLhttps://monica.example.com
trong trình duyệt của bạn và bạn sẽ được đưa đến trang đăng nhập như hiển thị bên dưới.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22613%22%20height=%22551%22%3E%3C/svg%3E
Nhập email và mật khẩu bạn đã cấu hình ở bước 12 và nhấn nút Đăng nhập để tiếp tục. Bạn sẽ được đưa đến màn hình chào mừng, nơi bạn có thể bắt đầu sử dụng ứng dụng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22531%22%3E%3C/svg%3E
Bước 16 Thiết lập Cron
Monica CRM yêu cầu một số quy trình nền để đảm bảo chạy trơn tru. Điều này được quản lý bằng chức năng Cron. Để thực hiện việc này, hãy thiết lập một cron sẽ chạy mỗi phút để chạy lệnhphp artisan schedule:run
.Chạy trình chỉnh sửa crontab. Chúng tôi đang truyền
nginx
làm người dùng vì người này có quyền truy cập vào /var/www/html/monica
thư mục.
Mã:
$ sudo crontab -u nginx -e
Mã:
no crontab for nginx - using an empty one
Select an editor. To change later, run 'select-editor'. 1. /bin/nano > /dev/null 2>&1
Bước 17 - Cập nhật Monica CRM
Bước đầu tiên để sao lưu Monica CRM là đảm bảo rằng nó đã được sao lưu. Bạn có thể sao lưu SQL từ trang cài đặt. Nhấp vào biểu tượng Cài đặt ở góc trên bên phải của bảng điều khiển để mở Trang cài đặt tài khoản. Tiếp theo, mở trang Xuất dữ liệu từ menu bên trái.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22578%22%3E%3C/svg%3E
Nhấp vào nút Xuất sang SQL để xuất cơ sở dữ liệu. Cũng có tùy chọn Xuất sang Json sao lưu nhiều dữ liệu hơn là chỉ SQL nhưng không có cách nào để nhập dữ liệu đó. Bạn có thể sẽ thấy trạng thái là không thành công cho cả hai lần xuất nhưng nếu bạn duyệt thư mục
/var/www/html/monica/storage/app/public/exports
trên máy chủ của mình, bạn sẽ thấy cả hai tệp.
Mã:
$ ls /var/www/html/monica/storage/app/public/exports -al
total 84
drwxr-xr-x 2 nginx nginx 4096 Nov 22 09:47 .
drwxrwxr-x 4 nginx nginx 4096 Nov 22 09:47 ..
-rw-r--r-- 1 nginx nginx 53712 Nov 22 09:47 cvlK5RAl7VVLdYLplnSZ8SFGHHwDZy9cjRhtoOWB.json
-rw-r--r-- 1 nginx nginx 17050 Nov 22 09:47 dgZf5T0SnXeAuZ67HfaFLu2JosyUsByJcp2C8nlv.sql
Chuyển sang thư mục Monica.
Mã:
$ cd /var/www/html/monica
nginx
, chúng ta sẽ cần sử dụng sudo
để chạy bất kỳ lệnh nào. Nhưng tốt hơn là tạm thời chuyển đổi quyền thay vì sử dụng sudo
đó là những gì chúng ta sẽ làm.
Mã:
$ sudo chown -R $USER:$USER /var/www/html/monica
Mã:
$ git fetch
Mã:
$ git checkout tags/v5.0.0-beta.3
Mã:
$ composer install --no-interaction --no-dev
Mã:
$ yarn install
Mã:
$ yarn run production
Mã:
$ php artisan monica:update --force
Mã:
$ php artisan migrate
monica.sql
bằng cách sử dụng lệnh sau lệnh.
Mã:
$ sudo mysqlimport -u monicauser -p monica /var/www/html/monica/storage/app/public/exports/dgZf5T0SnXeAuZ67HfaFLu2JosyUsByJcp2C8nlv.sql
Sau khi hoàn tất, hãy khôi phục quyền thư mục Monica cho người dùng
nginx
.
Mã:
$ sudo chown -R nginx:nginx /var/www/html/monica