Hướng dẫn cài đặt Vtiger CRM lên VPS/Cloud Server cài đặt Debian Linux. Yêu cầu phía server phải cài đặt PHP 5.4 ÷ 5.6 do Vtiger CRM vẫn chưa hỗ trợ PHP 7.
Nếu chưa cài đặt máy chủ, hãy tham khảo Hướng dẫn cài đặt LAMP trên Debian Linux. Lưu ý cài đặt phiên bản PHP 5.
Mục lục
Cấu hình PHP
Tạo file vtigercrm.ini
tại /etc/php/5.6/mods-available
để thiết lập những cấu hình PHP cần thiết cho việc cài đặt Vtiger CRM .
display_errors = On max_execution_time = 0 memory_limit = 512m post_max_size = 40m upload_max_filesize = 40m error_reporting = E_WARNING & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT log_errors = Off short_open_tag = Off session.gc_maxlifetime = 86400
Khởi động lại Web Server để cập nhật cấu hình mới.
$ sudo phpenmod vtigercrm $ sudo systemctl restart apache2
Tạo database cho Vtiger CRM
Ở đây tôi sử dụng lệnh mysql
trong gói MySQL client. Tất nhiên bạn có thể sử dụng PHPMyAdmin để thực hiện công việc này.
$ mysql -u root -p
Tạo một database có tên vtiger_crm_db
và phân quyền cho một user mới tên là vtiger
có password là P4$$w0rD
như sau:
CREATE DATABASE `vtiger_crm_db` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'vtiger'@'localhost' IDENTIFIED BY 'P4$$w0rD'; GRANT ALL PRIVILEGES ON `vtiger_crm_db`.* TO 'vtiger'@'localhost';
Tạo một VirtualHost cho CRM
Giả sử bạn định cài đặt lên tên miền crm.example.com
, có web root tại /var/www/crm
.
$ sudo mkdir -p /var/www/crm $ sudo chown -R www-data:www-data /var/www/crm
Tạo VirtualHost cho tên miền crm.example.com
như sau:
/etc/apache2/sites-available/crm.conf
<VirtualHost *:80> ServerName crm.example.com ServerAdmin admin@hainh.me DocumentRoot /var/www/crm <Directory /var/www/crm> Options -Indexes php_admin_flag engine On </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Kích hoạt cấu hình mới
$ sudo a2ensite crm $ sudo systemctl reload apache2
Cài đặt chứng chỉ SSL của Let’s Encrypt.
$ sudo certbot --apache -d crm.example.com
Tải mã nguồn Vtiger CRM
Tải Vtiger CRM tại SourceForge. Ví dụ sau sẽ tải về phiên bản 6.5.0.
$ cd /var/www/crm $ wget https://excellmedia.dl.sourceforge.net/project/vtigercrm/vtiger%20CRM%206.5.0/Core%20Product/vtigercrm6.5.0.tar.gz $ tar xf vtigercrm6.5.0.tar.gz $ rm -f vtigercrm6.5.0.tar.gz
Cài đặt Vtiger CRM
Truy cập https://crm.example.com để bắt đầu cài đặt.
Cấu hình để không phụ thuộc vào tên miền
Tôi muốn CRM của mình có thể truy cập bằng nhiều tên miền, thậm chí có path hoặc không. Đây có thể là một yêu cầu ngớ ngẩn nhưng với tôi lại có nhiều ứng dụng hay ho.
Chỉnh sửa file config.inc.php
, tìm đến đoạn khai báo biến $site_URL
và $root_directory
rồi thay thế bằng đoạn mã sau:
// $site_URL = 'https://crm.example.com/'; function vt_get_site_url() { $s = &$_SERVER; $ssl = (!empty($s['HTTPS']) && $s['HTTPS'] == 'on') ? true : false; $sp = strtolower($s['SERVER_PROTOCOL']); $protocol = substr($sp, 0, strpos($sp, '/')) . (($ssl) ? 's' : ''); $port = $s['SERVER_PORT']; $port = ((!$ssl && $port == '80') || ($ssl && $port == '443')) ? '' : ':'.$port; $host = isset($s['HTTP_X_FORWARDED_HOST']) ? $s['HTTP_X_FORWARDED_HOST'] : (isset($s['HTTP_HOST']) ? $s['HTTP_HOST'] : null); $host = isset($host) ? $host : $s['SERVER_NAME'] . $port; $request = $s['REQUEST_URI']; $segments = explode('?', $request, 2); // remove query string $info = pathinfo($segments[0]); $path = $info['extension'] == 'php' ? str_replace( array( '/', '\\' ), '/', $info['dirname'] ) : $segments[0]; $path = rtrim($path, '/') . '/'; // append a trailing slash return $protocol . '://' . $host . $path; } $site_URL = vt_get_site_url(); // $root_directory = '/home/vtigercrm/public_html/'; $root_directory = __DIR__ . '/';