OroCRM เป็นแอปพลิเคชัน Customer Relationship Manager (CRM) ที่ให้บริการฟรีและโอเพนซอร์สที่สร้างขึ้นบน OroPlatform OroPlatform เป็นซอฟต์แวร์แพลตฟอร์มแอปพลิเคชันทางธุรกิจแบบโอเพ่นซอร์สที่ปรับแต่งได้อย่างสมบูรณ์ OroPlatform ให้คุณสมบัติทั้งหมดที่จำเป็นสำหรับการสร้างแอปพลิเคชันที่กำหนดเอง OroCRM สร้างขึ้นโดยใช้กรอบ PHP Symfony และเก็บข้อมูลไว้ในเซิร์ฟเวอร์ฐานข้อมูล MySQL / MariaDB มันเป็นแอพพลิเคชั่น CRM ระดับองค์กรที่ให้คุณสมบัติมากมาย นอกจากนี้ยังทำงานร่วมกับแอปพลิเคชันบุคคลที่สามจำนวนมากเช่น Magento Store, MailChimp, Zendesk เป็นต้นซึ่งมีหลายภาษาและมีส่วนติดต่อผู้ใช้ที่ตอบสนองได้อย่างเต็มที่ซึ่งให้ความสามารถในการจัดการกับอุปกรณ์มือถือด้วยเช่นกัน
ข้อกำหนดเบื้องต้น
- อินสแตนซ์ของเซิร์ฟเวอร์ Vultr CentOS 7
- sudo ผู้ใช้
ในบทช่วยสอนนี้เราจะใช้crm.example.com
เป็นชื่อโดเมนที่ชี้ไปยังเซิร์ฟเวอร์ แทนที่ทั้งหมดcrm.example.com
ด้วยชื่อโดเมนจริงของคุณ
ปรับปรุงระบบฐานของคุณใช้คู่มือวิธีการปรับปรุง CentOS 7 เมื่อระบบของคุณอัปเดตแล้วให้ดำเนินการติดตั้งการอ้างอิงที่ต้องการ
ติดตั้ง Nginx และ PHP 7
OroCRM สามารถติดตั้งบนเว็บเซิร์ฟเวอร์การผลิตใดก็ได้ที่รองรับ PHP OroCRM รองรับ PHP ทุกเวอร์ชันมากกว่า 7.0 ในบ��ช่วยสอนนี้เราจะใช้ Nginx กับ PHP-FPM และ PHP 7.1
ติดตั้ง Nginx
sudo yum -y install nginx
เริ่ม Nginx และเปิดใช้งานให้เริ่มการบูทโดยอัตโนมัติ
sudo systemctl start nginx
sudo systemctl enable nginx
PHP 7 ไม่พร้อมใช้งานในที่เก็บ YUM เริ่มต้น แต่เราสามารถใช้ที่เก็บ Remi เพื่อรับและติดตั้งบิวด์ล่าสุดของ PHP 7 ก่อนอื่นให้เพิ่มและเปิดใช้งานที่เก็บ Remi
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php71
ติดตั้ง PHP 7 เวอร์ชันล่าสุดพร้อมกับโมดูล PHP ที่ OroCRM ต้องการ
sudo yum -y install php php-fpm php-ctype php-curl php-fileinfo php-gd php-intl php-json php-mbstring php-mcrypt php-mysql php-pcre php-simplexml php-tokenizer php-xml php-zip php-tidy php-soap php-opcache php-posix
แก้ไขไฟล์กำหนดค่าเริ่มต้นของ PHP
sudo nano /etc/php.ini
ค้นหาบรรทัดต่อไปนี้ ยกเลิกหมายเหตุและทำการเปลี่ยนแปลงตามที่แสดง
date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone
memory_limit = 512M
cgi.fix_pathinfo=0
แก้ไขไฟล์การกำหนดค่า PHP-FPM
sudo nano /etc/php-fpm.d/www.conf
โดยค่าเริ่มต้น, PHP-FPM กำหนดค่าให้ใช้กับ Apache 9000
และฟังพอร์ต เราจะต้องเปลี่ยนผู้ใช้และกลุ่มรวมถึงไฟล์ซ็อกเก็ต Unix ที่จะใช้งาน ค้นหาบรรทัดต่อไปนี้และทำการเปลี่ยนแปลงที่จำเป็นตามที่แสดง
user = nginx
group = nginx
;listen = 127.0.0.1:9000
;Comment out or remove the above line and add the following line.
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nobody
listen.group = nobody
เริ่ม PHP-FPM และเปิดใช้งานเมื่อเริ่มต้นระบบ
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
มอบความเป็นเจ้าของไฟล์ซ็อกเก็ต PHP-FPM ให้กับผู้ใช้ Nginx
sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock
ติดตั้ง MariaDB
MariaDB เป็นโอเพ่นซอร์สของ MySQL ติดตั้ง MariaDB
sudo yum -y install mariadb mariadb-server
เริ่ม MariaDB และเปิดใช้งานการเริ่มโดยอัตโนมัติเมื่อบูท
sudo systemctl start mariadb
sudo systemctl enable mariadb
การติดตั้งเริ่มต้นของ MariaDB มาพร้อมกับฐานข้อมูลการทดสอบและผู้ใช้ที่ไม่ระบุชื่อ ก่อนที่จะกำหนดค่าฐานข้อมูลคุณจะต้องรักษาความปลอดภัยเซิร์ฟเวอร์ MariaDB ก่อน คุณสามารถรักษาความปลอดภัยโดยเรียกใช้mysql_secure_installation
สคริปต์
sudo mysql_secure_installation
คุณจะถูกขอรหัสผ่านรูต MariaDB ปัจจุบัน ตามค่าเริ่มต้นจะไม่มีรหัสผ่านรูทในการติดตั้ง MariaDB ใหม่ กดEnter
ปุ่มเพื่อดำเนินการต่อ ตั้งรหัสผ่านที่คาดเดายากสำหรับผู้ใช้รูทของเซิร์ฟเวอร์ MariaDB ของคุณและตอบY
คำถามอื่น ๆ ที่ถาม คำถามที่ถามมีการอธิบายตนเอง
สร้างฐานข้อมูลสำหรับ 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 ซึ่งใช้ในการสร้างส่วนต่อประสานผู้ใช้ของแอปพลิเคชัน ที่เก็บข้อมูลเริ่มต้นของ CentOS มี Node.js รุ่นที่ล้าสมัยดังนั้นคุณจะต้องเพิ่มที่เก็บ Nodesource ในระบบของคุณเพื่อรับรุ่นล่าสุด
sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
ติดตั้ง Node.js และ Git
sudo yum -y install nodejs git
Git จะถูกใช้เพื่อโคลนที่เก็บ OroCRM จากอินเทอร์เน็ต คุณจะต้องติดตั้งนักแต่งเพลงด้วย นักแต่งเพลงเป็นเครื่องมือจัดการการอ้างอิงสำหรับแอปพลิเคชัน PHP เนื่องจาก OroCRM เขียนขึ้นในกรอบงาน Symfony คุณจะต้องมี Composer เพื่อติดตั้งการพึ่งพาและแอปพลิเคชัน
ติดตั้งนักแต่งเพลง
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('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.3 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 yum -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 Organization
Username (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/conf.d/orocrm.conf
เติมไฟล์
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:/var/run/php-fpm/php-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 บีบอัดข้อมูลก่อนส่งไปยังเบราว์เซอร์ การเปิดใช้งานการแคชเบราว์เซอร์จะจัดเก็บทรัพยากรสแตติกไปยังเว็บแคชของคอมพิวเตอร์ไคลเอนต์ ครั้งต่อไปที่ผู้ใช้เข้าถึงเว็บไซต์เนื้อหาสแตติกส่วนใหญ่จะถูกโหลดจากเว็บแคชของผู้ใช้ วิธีการทั้งสองนี้จะเพิ่มความเร็วของแอปพลิเคชั่นอย่างมาก
ตรวจสอบไฟล์การกำหนดค่า Nginx สำหรับข้อผิดพลาดใด ๆ
sudo nginx -t
ผลลัพธ์ควรมีลักษณะดังต่อไปนี้
[user@vultr ~]$ 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 nginx:nginx /usr/share/nginx/orocrm
รีสตาร์ท Nginx เพื่อใช้การกำหนดค่าใหม่
sudo systemctl restart nginx
หากคุณใช้ไฟร์วอลล์บนเซิร์ฟเวอร์ของคุณคุณจะต้องกำหนดค่าไฟร์วอลล์เพื่อตั้งค่าข้อยกเว้นสำหรับบริการ HTTP อนุญาตให้ Nginx เชื่อมต่อจากนอกเครือข่าย
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
http://crm.example.com
ขณะนี้คุณสามารถเข้าถึงโปรแกรมที่ เข้าสู่ระบบโดยใช้ชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบที่คุณตั้งไว้ระหว่างการติดตั้ง
ตั้งค่างานที่กำหนดเวลาไว้และงานเบื้องหลัง
ในการรันงานที่กำหนดเวลาไว้โดยอัตโนมัติคุณสามารถเพิ่มรายการงาน 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 yum -y install supervisor
แก้ไขไฟล์กำหนดค่าของหัวหน้างาน
sudo nano /etc/supervisord.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=nginx
redirect_stderr=true
เริ่มต้นและเปิดใช้งานหัวหน้างานเพื่อเริ่มต้นโดยอัตโนมัติในเวลาบูต
sudo systemctl start supervisord
sudo systemctl enable supervisord
คุณสามารถดูสถานะของกระบวนการได้โดยเรียกใช้สิ่งต่อไปนี้
sudo supervisorctl status
คุณควรเห็นว่ากระบวนการกำลังทำงานอยู่
[user@vultr ~]$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00 RUNNING pid 13596, uptime 0:02:13
oro_message_consumer:oro_message_consumer_01 RUNNING pid 13595, uptime 0:02:13
oro_message_consumer:oro_message_consumer_02 RUNNING pid 13594, uptime 0:02:13
oro_message_consumer:oro_message_consumer_03 RUNNING pid 13593, uptime 0:02:13
ติดตั้ง OroCRM บนเซิร์ฟเวอร์ของคุณแล้ว ตอนนี้คุณสามารถใช้แอปพลิเคชันเพื่อจัดการงานประจำขององค์กรของคุณ ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ OroCRM คุณสามารถเยี่ยมชมของเว็บไซต์อย่างเป็นทางการ