OroCRM เป็นแอปพลิเคชัน Customer Relationship Manager (CRM) ที่ให้บริการฟรีและโอเพนซอร์สที่สร้างขึ้นบน OroPlatform OroPlatform เป็นซอฟต์แวร์แพลตฟอร์มแอปพลิเคชันทางธุรกิจแบบโอเพ่นซอร์สที่ปรับแต่งได้อย่างสมบูรณ์ OroPlatform ให้คุณสมบัติทั้งหมดที่จำเป็นสำหรับการสร้างแอปพลิเคชันที่กำหนดเอง OroCRM สร้างขึ้นโดยใช้กรอบ PHP Symfony และเก็บข้อมูลไว้ในเซิร์ฟเวอร์ฐานข้อมูล MySQL / MariaDB มันเป็นแอพพลิเคชั่น CRM ระดับองค์กรที่ให้คุณสมบัติมากมาย นอกจากนี้ยังทำงานร่วมกับแอปพลิเคชันบุคคลที่สามจำนวนมากเช่น Magento Store, MailChimp, Zendesk และอีกมากมาย มันเป็นหลายภาษาและมีส่วนต่อประสานผู้ใช้ที่ตอบสนองอย่างเต็มที่ซึ่งให้ความสามารถในการจัดการกับอุปกรณ์มือถือด้วยเช่นกัน
ข้อกำหนดเบื้องต้น
ในบทช่วยสอนนี้เราจะใช้crm.example.com
เป็นชื่อโดเมนที่ชี้ไปยังเซิร์ฟเวอร์ แทนที่ทั้งหมดcrm.example.com
ด้วยชื่อโดเมนจริงของคุณ
ปรับปรุงระบบฐานของคุณใช้คู่มือวิธีการปรับปรุง Ubuntu 16.04 เมื่อระบบของคุณอัปเดตแล้วให้ดำเนินการติดตั้งการอ้างอิงที่ต้องการ
ติดตั้ง Nginx และ PHP 7
OroCRM สามารถติดตั้งบนเว็บเซิร์ฟเวอร์การผลิตใดก็ได้ที่รองรับ PHP OroCRM รองรับ PHP ทุกเวอร์ชันมากกว่า 7.0 ในบทช่วยสอนนี้เราจะใช้ Nginx กับ PHP-FPM และ PHP 7.1
ติดตั้ง Nginx
sudo apt -y install nginx
เริ่ม Nginx และเปิดใช้งานให้เริ่มการบูทโดยอัตโนมัติ
sudo systemctl start nginx
sudo systemctl enable nginx
PHP 7.1 ไม่พร้อมใช้งานในที่apt
เก็บเริ่มต้น ก่อนอื่นให้เพิ่มที่เก็บ PPA สำหรับ PHP
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
ติดตั้ง PHP 7.1 พร้อมกับโมดูล PHP ที่ OroCRM ต้องการ
sudo apt update
sudo apt -y install php7.1 php7.1-fpm php7.1-common php7.1-curl php7.1-gd php7.1-intl php7.1-json php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-xml php7.1-zip php7.1-tidy php7.1-soap php7.1-opcache
แก้ไขไฟล์คอนฟิกูเรชัน PHP ที่โหลด
sudo nano /etc/php/7.1/cli/php.ini
ค้นหาบรรทัดต่อไปนี้ ยกเลิกหมายเหตุและทำการเปลี่ยนแปลงตามที่แสดง
date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone
cgi.fix_pathinfo=0
เริ่ม PHP-FPM และเปิดใช้งานเมื่อเริ่มต้นระบบ
sudo systemctl start php7.1-fpm
sudo systemctl enable php7.1-fpm
ติดตั้ง MariaDB
MariaDB เป็นโอเพ่นซอร์สของ MySQL เพิ่มที่เก็บ MariaDB 10.2
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://kartolo.sby.datautama.net.id/mariadb/repo/10.2/ubuntu xenial main'
ติดตั้ง MariaDB
sudo apt -y update
sudo apt -y install mariadb-server
เริ่ม MariaDB และเปิดใช้งานการเริ่มโดยอัตโนมัติเมื่อบูท
sudo systemctl start mariadb
sudo systemctl enable mariadb
สร้างฐานข้อมูลสำหรับ OroCRM
ล็อกอินเข้าสู่เชลล์ MySQL ในฐานะผู้ใช้รูทโดยรัน
mysql -u root -p
ระบุรหัสผ่านสำหรับผู้ใช้รูท MariaDB เพื่อเข้าสู่ระบบ
รันเคียวรีต่อไปนี้เพื่อสร้างฐานข้อมูลและผู้ใช้ฐานข้อมูลสำหรับการติดตั้ง OroCRM
CREATE DATABASE oro_data;
CREATE USER 'oro_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON oro_data.* TO 'oro_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
คุณสามารถแทนที่ชื่อฐานข้อมูลoro_data
และชื่อผู้ใช้oro_user
ตามที่คุณต้องการ อย่าลืมเปลี่ยนStrongPassword
เป็นรหัสผ่านที่รัดกุมมาก
ติดตั้ง Node.js และนักแต่งเพลง
OroCRM ต้องใช้งาน JavaScript Node.js Node.js จะถูกใช้โดย OroCRM เพื่อรวบรวม JavaScript ซึ่งใช้ในการสร้างส่วนต่อประสานผู้ใช้ของแอปพลิเคชัน ที่เก็บเริ่มต้นของ Ubuntu มี Node.js รุ่นที่ล้าสมัยดังนั้นคุณจะต้องเพิ่มที่เก็บ Nodesource ในระบบของคุณเพื่อรับรุ่นล่าสุด
sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
ติดตั้ง Node.js และ Git
sudo apt -y install nodejs git
Git จะถูกใช้เพื่อโคลนที่เก็บ OroCRM จากอินเทอร์เน็ต คุณจะต้องติดตั้งนักแต่งเพลงด้วย นักแต่งเพลงเป็นเครื่องมือจัดการการอ้างอิงสำหรับแอปพลิเคชัน PHP เนื่องจาก OroCRM เขียนขึ้นในกรอบงาน Symfony คุณจะต้องมี Composer เพื่อติดตั้งการพึ่งพาและแอปพลิเคชัน
ติดตั้งนักแต่งเพลง
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
ย้ายนักแต่งเพลงไปยัง/usr/bin
ไดเรกทอรีเพื่อให้สามารถดำเนินการได้จากทุกที่ในระบบ
sudo mv composer.phar /usr/bin/composer
ให้สิทธิ์ดำเนินการแก่ผู้แต่ง
sudo chmod +x /usr/bin/composer
ติดตั้ง OroCRM
มีหลายวิธีในการดาวน์โหลด OroCRM บนเซิร์ฟเวอร์ของคุณ วิธีที่เหมาะสมที่สุดในการรับเวอร์ชันล่าสุดคือการโคลนที่เก็บข้อมูลผ่าน Git
โคลนที่เก็บ OroCRM
cd /usr/share/nginx/
sudo git clone -b 2.4 https://github.com/oroinc/crm-application.git orocrm
คัดลอกparameters
ไฟล์ตัวอย่างไปยังparameters
ไฟล์เริ่มต้นที่OroCRM ใช้
cd orocrm
sudo cp app/config/parameters.yml.dist app/config/parameters.yml
ก่อนที่คุณจะสามารถดำเนินการต่อไปคุณจะต้องอัปเดตparameters.yml
ไฟล์เพื่อให้ข้อมูลฐานข้อมูลและอีเมล
sudo nano app/config/parameters.yml
ค้นหาบรรทัดต่อไปนี้
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: ~
database_name: oro_crm
database_user: root
database_password: ~
อัพเดตการกำหนดค่าข้างต้นตามฐานข้อมูลที่คุณสร้างขึ้นเพื่อเก็บข้อมูล OroCRM ในกรณีของเราควรมีลักษณะเช่นนี้
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
database_name: oro_data
database_user: oro_user
database_password: StrongPassword
หากคุณมีเซิร์ฟเวอร์ SMTP พร้อมและคุณต้องการใช้คุณสมบัติการส่งอีเมลทันทีคุณสามารถอัปเดตการตั้งค่าการส่งจดหมายตามที่แสดง
mailer_transport: smtp
mailer_host: mail.example.com
mailer_port: 456
mailer_encryption: ssl
mailer_user: [email protected]
mailer_password: EMailPassword
หากคุณยังไม่พร้อมเซิร์ฟเวอร์เมลคุณสามารถข้ามไปได้ทันทีโดยปล่อยค่าที่มีอยู่ คุณสามารถเปลี่ยนการกำหนดค่าอีเมลผ่านแผงควบคุมได้ตลอดเวลา
ตั้งสตริงสุ่มโดยการแทนที่secret
ThisTokenIsNotSoSecretChangeIt
จำเป็นต้องใช้สตริงแบบสุ่มเพื่อเข้ารหัสข้อมูลเซสชัน สตริงตัวอย่างจะมีลักษณะเช่นนี้
secret: uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd
คุณสามารถสร้างสตริงแบบสุ่มโดยใช้pwgen
ยูทิลิตี้ ติดตั้งโดยการเรียกใช้pwgen
เพื่อสร้างสตริงแบบสุ่มเรียกใช้sudo apt -y install pwgen
pwgen -s 64 1
บันทึกไฟล์และออกจากตัวแก้ไข ติดตั้งการพึ่งพา PHP ที่ต้องการผ่านผู้แต่ง
sudo composer install --prefer-dist --no-dev
การใช้--no-dev
จะช่วยให้มั่นใจว่านักแต่งเพลงจะติดตั้งการพึ่งพาที่จำเป็นสำหรับการเรียกใช้เว็บเซิร์ฟเวอร์ในโหมดการผลิตเท่านั้น สคริปต์จะใช้เวลาสักครู่ในการดาวน์โหลดและติดตั้งการพึ่งพา PHP ที่จำเป็น
ติดตั้งแอปพลิเคชัน
sudo php app/console oro:install --env=prod
สิ่งนี้จะสร้างเว็บแคชและเขียนฐานข้อมูล --env=prod
พารามิเตอร์ให้บริการในการติดตั้งโปรแกรมประยุกต์ในโหมดการผลิต การติดตั้งจะดำเนินการต่อหากการติดตั้งและกำหนดค่าการพึ่งพาที่จำเป็นทั้งหมด
ระหว่างการติดตั้งคุณจะถูกถามคำถามสองสามข้อสำหรับการตั้งค่าบัญชีผู้ดูแลระบบ คำถามมีดังนี้
Administration setup.
Application URL (http://localhost): http://crm.example.com
Organization name (OroCRM): My Org
Username (admin): admin
Email: [email protected]
First name: John
Last name: Doe
Password:
Load sample data (y/n): y
ให้ข้อมูล โหลดข้อมูลตัวอย่างเพื่อประเมินผลิตภัณฑ์ก่อนใช้สำหรับการผลิต
อุ่นเครื่องแคชเอกสาร API:
sudo php app/console oro:api:doc:cache:clear
การกำหนดค่า Nginx, ไฟร์วอลล์และการอนุญาต
สร้างไฟล์บล็อกเซิร์ฟเวอร์ Nginx เพื่อให้บริการแอปพลิเคชันแก่ผู้ใช้
sudo nano /etc/nginx/sites-available/orocrm
เติมไฟล์
server {
server_name crm.example.com;
root /usr/share/nginx/orocrm/web;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /app.php$is_args$args;
}
location ~ ^/(app|app_dev|config|install)\.php(/|$) {
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
# Enable Gzip compression
gzip on;
gzip_buffers 16 8k;
gzip_comp_level 5;
gzip_disable "msie6";
gzip_min_length 1000;
gzip_http_version 1.0;
gzip_proxied any;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css image/svg+xml;
gzip_vary on;
# Enable browser caching
# One week for javascript and css
location ~* \.(?:css|js) {
expires 1w;
access_log off;
add_header Cache-Control public;
}
# Three weeks for media: images, fonts, icons, video, audio etc.
location ~* \.(?:jpg|jpeg|gif|png|ico|tiff|woff|eot|ttf|svg|svgz|mp4|ogg|ogv|webm|swf|flv)$ {
expires 3w;
access_log off;
add_header Cache-Control public;
}
error_log /var/log/nginx/orocrm_error.log;
access_log /var/log/nginx/orocrm_access.log;
}
ตรวจสอบให้แน่ใจว่าคุณเปลี่ยนเป็นcrm.example.com
ชื่อโดเมนจริงของคุณ การกำหนดค่าข้างต้นยังรวมถึงการกำหนดค่าที่จำเป็นสำหรับการบีบอัด GZip และการแคชเบราว์เซอร์ การบีบอัด Gzip บีบอัดข้อมูลก่อนส่งไปยังเบราว์เซอร์ การเปิดใช้งานการแคชเบราว์เซอร์จะจัดเก็บทรัพยากรสแตติกไปยังเว็บแคชของคอมพิวเตอร์ไคลเอนต์ ครั้งต่อไปที่ผู้ใช้เข้าถึงเว็บไซต์เนื้อหาสแตติกส่วนใหญ่จะถูกโหลดจากเว็บแคชของผู้ใช้ วิธีการทั้งสองนี้จะเพิ่มความเร็วของแอปพลิเคชั่นอย่างมาก
เปิดใช้งานไซต์
sudo ln -s /etc/nginx/sites-available/orocrm /etc/nginx/sites-enabled/orocrm
ตรวจสอบไฟล์การกำหนดค่า Nginx สำหรับข้อผิดพลาดใด ๆ
sudo nginx -t
ผลลัพธ์ควรมีลักษณะดังต่อไปนี้
user@vultr:/usr/share/nginx/orocrm$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
จัดเตรียมความเป็นเจ้าของไฟล์ OroCRM ให้กับผู้ใช้ Nginx
sudo chown -R www-data:www-data /usr/share/nginx/orocrm
รีสตาร์ท Nginx เพื่อใช้การกำหนดค่าใหม่
sudo systemctl restart nginx
http://crm.example.com
ขณะนี้คุณสามารถเข้าถึงโปรแกรมที่ เข้าสู่ระบบโดยใช้ผู้ดูแลระบบusername
และpassword
คุณได้ตั้งค่าระหว่างการติดตั้ง
ตั้งค่างานที่กำหนดเวลาไว้และงานเบื้องหลัง
ในการรันงานที่กำหนดเวลาไว้โดยอัตโนมัติคุณสามารถเพิ่มรายการงาน Cron crontab
เปิด
sudo crontab -e
เพิ่มบรรทัดต่อไปนี้ลงในไฟล์
*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null
สิ่งนี้จะรันงาน cron ทุกนาทีเพื่อให้งานที่กำหนดเวลาไว้เช่นคิวอีเมลถูกประมวลผลเร็วที่สุด
คุณจะต้องตั้งค่า Supervisor เพื่อเรียกใช้บริการ Message Queue จำเป็นต้องมีกระบวนการอย่างน้อยหนึ่งกระบวนการที่กำลังทำงานอยู่ตลอดเวลาเพื่อให้ผู้บริโภคสามารถประมวลผลข้อความได้ ผู้บริโภคตามปกติสามารถขัดจังหวะกระบวนการข้อความได้หลายวิธี เพื่อให้แน่ใจว่าบริการทำงานอย่างต่อเนื่องเราจะใช้บริการหัวหน้างาน เราจะกำหนดค่าหัวหน้างานให้ทำงานสี่กระบวนการพร้อมกัน หากกระบวนการใดกระบวนการหนึ่งในสี่หยุดลงไม่ว่าด้วยเหตุผลใดก็ตามหัวหน้างานจะพยายามเริ่มต้นใหม่อีกครั้ง
ติดตั้ง Supervisor
sudo apt -y install supervisor
สร้างไฟล์กำหนดค่าใหม่ของหัวหน้างาน
sudo nano /etc/supervisor/conf.d/orocrm.conf
เพิ่มบรรทัดต่อไปนี้ลงในไฟล์
[program:oro_message_consumer]
command=/usr/bin/php /usr/share/nginx/orocrm/app/console --env=prod --no-debug oro:message-queue:consume
process_name=%(program_name)s_%(process_num)02d
numprocs=4
autostart=true
autorestart=true
startsecs=0
user=www-data
redirect_stderr=true
เริ่มต้นและเปิดใช้งานหัวหน้างานเพื่อเริ่มต้นโดยอัตโนมัติในเวลาบูต
sudo systemctl restart supervisor
sudo systemctl enable supervisor
คุณสามารถดูสถานะของกระบวนการได้โดยเรียกใช้สิ่งต่อไปนี้
sudo supervisorctl status
คุณควรเห็นว่ากระบวนการกำลังทำงานอยู่
user@vultr:/usr/share/nginx/orocrm$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00 RUNNING pid 20809, uptime 0:00:01
oro_message_consumer:oro_message_consumer_01 RUNNING pid 20808, uptime 0:00:01
oro_message_consumer:oro_message_consumer_02 RUNNING pid 20807, uptime 0:00:01
oro_message_consumer:oro_message_consumer_03 RUNNING pid 20806, uptime 0:00:01
ติดตั้ง OroCRM บนเซิร์ฟเวอร์ของคุณแล้ว ตอนนี้คุณสามารถใช้แอปพลิเคชันเพื่อจัดการงานประจำขององค์กรของคุณ ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ OroCRM คุณสามารถเยี่ยมชมของเว็บไซต์อย่างเป็นทางการ