CentOS 7 Üzerinde OroCRM Kurulumu

OroCRM, OroPlatform üzerine kurulmuş ücretsiz ve açık kaynaklı bir Müşteri İlişkileri Yöneticisi (CRM) uygulamasıdır. OroPlatform tamamen özelleştirilebilir açık kaynaklı bir iş uygulama platformu yazılımıdır. OroPlatform, özelleştirilmiş bir uygulama oluşturmak için gereken tüm özellikleri sağlar. OroCRM, PHP Symfony çerçevesi kullanılarak oluşturulmuştur ve verilerini MySQL / MariaDB veritabanı sunucusunda saklamaktadır. Tonlarca özellik sunan, işletmeye hazır bir CRM uygulamasıdır. Ayrıca Magento Store, MailChimp, Zendesk vb.Gibi birçok 3. taraf uygulamasıyla entegre olur. Çok dilli ve mobil cihazları kullanarak da yönetebilmenizi sağlayan tamamen duyarlı bir kullanıcı arayüzüne sahiptir.

Ön şartlar

Bu öğreticide, crm.example.comsunucuya işaret eden etki alanı adı olarak kullanacağız . İle ilgili tüm tekrarlamaları crm.example.comgerçek alan adınızla değiştirin.

CentOS 7'yi Güncelleme kılavuzunu kullanarak temel sisteminizi güncelleyin . Sisteminiz güncellendiğinde, gerekli bağımlılıkları kurmaya devam edin.

Nginx ve PHP 7'yi yükleyin

OroCRM, PHP'yi destekleyen herhangi bir üretim web sunucusuna kurulabilir. OroCRM, PHP'nin 7.0'dan büyük tüm sürümlerini destekler. Bu derste Nginx'i PHP-FPM ve PHP 7.1 ile kullanacağız.

Nginx'i yükleyin.

sudo yum -y install nginx

Nginx'i başlatın ve önyüklemede otomatik olarak başlamasını sağlayın.

sudo systemctl start nginx
sudo systemctl enable nginx

PHP 7 varsayılan YUM deposunda mevcut değildir, ancak PHP 7'nin en son sürümlerini edinmek ve yüklemek için Remi deposunu kullanabiliriz. İlk olarak, Remi deposunu ekleyin ve etkinleştirin.

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'nin en son sürümünü OroCRM için gereken PHP modülleriyle birlikte yükleyin.

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

Varsayılan PHP yapılandırma dosyasını düzenleyin.

sudo nano /etc/php.ini

Aşağıdaki satırları bulun. Gösterildiği gibi açın ve değişiklikler yapın.

date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone

memory_limit = 512M
cgi.fix_pathinfo=0

PHP-FPM yapılandırma dosyasını düzenleyin.

sudo nano /etc/php-fpm.d/www.conf

PHP-FPM varsayılan olarak Apache ile çalışacak ve bağlantı noktasını dinleyecek şekilde yapılandırılmıştır 9000. Kullanıcıyı ve grubu ve üzerinde çalışacağı Unix soket dosyasını değiştirmemiz gerekecek. Aşağıdaki satırları bulun ve gösterildiği gibi gerekli değişiklikleri yapın.

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'yi başlatın ve önyüklemede başlamasını sağlayın.

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Nginx kullanıcısına PHP-FPM soket dosyasının sahipliğini sağlayın.

sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock

MariaDB'yi yükleyin

MariaDB, MySQL'in açık kaynaklı bir çatalıdır. MariaDB'yi yükleyin.

sudo yum -y install mariadb mariadb-server

MariaDB'yi başlatın ve önyüklemede otomatik olarak başlamasını sağlayın.

sudo systemctl start mariadb
sudo systemctl enable mariadb

MariaDB'nin varsayılan yüklemesi birkaç test veritabanı ve anonim kullanıcı ile birlikte gelir. Veritabanını yapılandırmadan önce, önce MariaDB sunucusunu güvenli hale getirmeniz gerekir. mysql_secure_installationKomut dosyasını çalıştırarak güvenli hale getirebilirsiniz .

sudo mysql_secure_installation

Geçerli MariaDB kök parolasını girmeniz istenecektir. Varsayılan olarak, yeni bir MariaDB kurulumunda kök parola yoktur. Devam etmek için Entertuşuna basın . MariaDB sunucunuzun kök kullanıcısı için güçlü bir parola Ybelirleyin ve sorulan diğer tüm soruları yanıtlayın. Sorulan sorular açıklayıcıdır.

OroCRM için Veritabanı Oluşturma

MySQL kabuğuna çalıştırarak kök kullanıcı olarak oturum açın.

mysql -u root -p

MariaDB kök kullanıcısının oturum açması için şifreyi girin.

OroCRM yüklemesi için bir veritabanı ve veritabanı kullanıcısı oluşturmak üzere aşağıdaki sorguları çalıştırın.

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;

Veritabanı adını oro_datave kullanıcı adını istediğiniz gibi değiştirebilirsiniz oro_user. StrongPasswordÇok güçlü bir şifreyle değiştirdiğinizden emin olun .

Node.js ve Composer'ı yükleyin

OroCRM ayrıca Node.js JavaScript çalışma zamanı gerektirir. Node.js, uygulamanın kullanıcı arabirimini oluşturmak için kullanılan JavaScript'i derlemek için OroCRM tarafından kullanılacaktır. CentOS'un varsayılan deposu Node.js'nin eski bir sürümünü içerir, bu nedenle en son sürümü edinmek için Nodesource deposunu sisteminize eklemeniz gerekir.

sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

Node.js ve Git'i yükleyin.

sudo yum -y install nodejs git

Git, OroCRM deposunu internetten klonlamak için kullanılacaktır. Composer'ı da kurmanız gerekir. Composer, PHP uygulamaları için bir bağımlılık yöneticisi aracıdır. OroCRM Symfony çerçevesinde yazıldığından, bağımlılıkları ve uygulamayı kurmak için Composer'a ihtiyacınız olacaktır.

Composer'ı yükleyin.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Composer'ı /usr/bindizinde, sistemin herhangi bir yerinden yürütülebilecek şekilde taşıyın .

sudo mv composer.phar /usr/bin/composer

Besteciye icra izni verin.

sudo chmod +x /usr/bin/composer

OroCRM'yi yükle

OroCRM'yi sunucunuza indirmenin birçok yolu vardır. En güncel sürümü almanın en uygun yolu, depoyu Git üzerinden klonlamaktır.

OroCRM deposunu klonlayın.

cd /usr/share/nginx/
sudo git clone -b 2.3 https://github.com/oroinc/crm-application.git orocrm

Örnek parametersdosyayı parametersOroCRM tarafından kullanılan varsayılan dosyaya kopyalayın.

cd orocrm
sudo cp app/config/parameters.yml.dist  app/config/parameters.yml

Daha fazla ilerlemeden önce, parameters.ymlveritabanı ve e-posta bilgileri sağlamak için dosyayı güncellemeniz gerekir .

sudo nano app/config/parameters.yml

Aşağıdaki satırları bulun.

database_driver:   pdo_mysql
database_host:     127.0.0.1
database_port:     ~
database_name:     oro_crm
database_user:     root
database_password: ~

Yukarıdaki yapılandırmayı OroCRM verilerini depolamak için oluşturduğunuz veritabanına göre güncelleyin. Bizim durumumuzda, böyle görünmelidir.

database_driver:   pdo_mysql
database_host:     127.0.0.1
database_port:     3306
database_name:     oro_data
database_user:     oro_user
database_password: StrongPassword

Hazır bir SMTP sunucunuz varsa ve e-posta gönderme özelliklerini hemen kullanmak istiyorsanız, posta gönderme ayarlarını gösterildiği gibi güncelleyebilirsiniz.

mailer_transport:  smtp
mailer_host:       mail.example.com
mailer_port:       456
mailer_encryption: ssl
mailer_user:       [email protected]
mailer_password:   EMailPassword

Hazır bir posta sunucunuz yoksa, varolan değerleri bırakarak şimdilik atlayabilirsiniz. E-posta yapılandırmasını her zaman gösterge tablosundan değiştirebilirsiniz.

secretDeğiştirerek rastgele bir dize ayarlayın ThisTokenIsNotSoSecretChangeIt. Oturum verilerini kodlamak için rastgele bir dize gerekir. Örnek bir dize şöyle görünecektir.

secret:            uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd

pwgenYardımcı programı kullanarak rastgele bir dize oluşturabilirsiniz . pwgenYardımcı programı çalıştırarak yükleyin sudo yum -y install pwgen. Rastgele bir dize oluşturmak için çalıştırın pwgen -s 64 1.

Dosyayı kaydedin ve editörden çıkın. Composer aracılığıyla gerekli PHP bağımlılıklarını kurun.

sudo composer install --prefer-dist --no-dev

Kullanılması --no-dev, Bestecinin yalnızca web sunucusunu üretim modunda çalıştırmak için gereken bağımlılıkları yüklemesini sağlar. Komut dosyasının gerekli PHP bağımlılıklarını indirmesi ve yüklemesi birkaç dakika sürecektir.

Uygulamayı yükleyin.

sudo php app/console oro:install --env=prod

Bu, web önbelleğini oluşturur ve veritabanını yazar. --env=prodParametre üretim modunda uygulamayı yüklemek için sağlanmıştır. Yükleme yalnızca gerekli tüm bağımlılıklar yüklendiyse ve yapılandırıldıysa devam eder.

Yükleme sırasında, yönetici hesabını ayarlamak için birkaç soru sorulacaktır. Sorular aşağıdaki gibidir.

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

Bilgileri sağlayın. Ürünü üretim için kullanmadan önce değerlendirmek için örnek verileri yükleyin.

API dokümanları önbelleğini ısıtın:

sudo php app/console oro:api:doc:cache:clear

Nginx, Güvenlik Duvarı ve İzinleri Yapılandırma

Uygulamayı kullanıcılara sunmak için bir Nginx sunucu blok dosyası oluşturun.

sudo nano /etc/nginx/conf.d/orocrm.conf

Dosyayı doldurun.

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.comAlan adını gerçek alan adınızla değiştirdiğinizden emin olun . Yukarıdaki yapılandırma ayrıca GZip sıkıştırması ve tarayıcı önbelleği için gereken yapılandırmayı içerir. Gzip sıkıştırması, verileri tarayıcıya göndermeden önce sıkıştırır. Tarayıcı önbelleğe almayı etkinleştirmek, statik kaynakları istemci bilgisayarın web önbelleğine depolar. Kullanıcı siteye bir sonraki erişiminde, statik içeriğin çoğu kullanıcının kendi web önbelleğinden yüklenir. Bu iki yöntem uygulamanın hızını önemli ölçüde artırır.

Nginx yapılandırma dosyasında hata olup olmadığını kontrol edin.

sudo nginx -t

Çıktı aşağıdaki gibi görünmelidir.

[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

Nginx kullanıcısına OrOCRM dosyalarının sahipliğini sağlayın.

sudo chown -R nginx:nginx /usr/share/nginx/orocrm

Yeni yapılandırmayı uygulamak için Nginx'i yeniden başlatın.

sudo systemctl restart nginx

Sunucunuzda bir güvenlik duvarı çalıştırıyorsanız, HTTP servisine bir istisna ayarlamak için güvenlik duvarını yapılandırmanız gerekir. Nginx'in ağ dışından bağlanmasına izin verin.

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

Artık uygulamaya adresinden erişebilirsiniz http://crm.example.com. Yükleme sırasında belirlediğiniz yönetici kullanıcı adını ve parolasını kullanarak oturum açın.

Zamanlanmış Görevleri ve Arka Plan İşlerini Ayarlama

Zamanlanan görevleri otomatik olarak çalıştırmak için bir Cron iş girişi ekleyebilirsiniz. Aç crontab.

sudo crontab -e

Aşağıdaki satırı dosyaya ekleyin.

*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null

Bu, e-posta kuyrukları gibi zamanlanmış görevlerin en erken işlenmesi için her dakika cron işini çalıştırır.

Message Queue hizmetini çalıştırmak için Süpervizör kurmanız da gerekecektir. Bir tüketicinin mesajları işlemesi için her zaman en az bir işlemin yürütülmesi gerekir. Bir tüketici normalde mesaj sürecini birçok yolla kesebilir. Hizmetin sürekli çalıştığından emin olmak için Süpervizör hizmetini kullanacağız. Süpervizörü dört süreci paralel çalıştıracak şekilde yapılandıracağız. Dört işlemden herhangi biri herhangi bir nedenle durdurulursa, Süpervizör yeniden başlatmayı dener.

Süpervizörü kurun.

sudo yum -y install supervisor

Supervisor yapılandırma dosyasını düzenleyin.

sudo nano /etc/supervisord.conf

Dosyanın sonuna aşağıdaki satırları ekleyin.

[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

Süpervizörün açılışta otomatik olarak başlamasını başlatın ve etkinleştirin.

sudo systemctl start supervisord
sudo systemctl enable supervisord

Aşağıdakileri çalıştırarak işlemlerin durumunu görüntüleyebilirsiniz.

sudo supervisorctl status

İşlemlerin çalıştığını görmelisiniz.

[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 artık sunucunuza yüklenmiştir. Artık uygulamayı kuruluşunuzun rutin görevlerini yönetmek için kullanabilirsiniz. OroCRM hakkında daha fazla bilgi edinmek için resmi web sitesini ziyaret edebilirsiniz .



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun