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
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.
Bu öğreticide, crm.example.com
sunucuya işaret eden etki alanı adı olarak kullanacağız . İle ilgili tüm tekrarlamaları crm.example.com
gerç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.
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, 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_installation
Komut 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 Enter
tuşuna basın . MariaDB sunucunuzun kök kullanıcısı için güçlü bir parola Y
belirleyin ve sorulan diğer tüm soruları yanıtlayın. Sorulan sorular açıklayıcıdır.
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_data
ve kullanıcı adını istediğiniz gibi değiştirebilirsiniz oro_user
. StrongPassword
Çok güçlü bir şifreyle değiştirdiğinizden emin olun .
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/bin
dizinde, 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 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 parameters
dosyayı parameters
OroCRM 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.yml
veritabanı 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.
secret
Değ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
pwgen
Yardımcı programı kullanarak rastgele bir dize oluşturabilirsiniz . pwgen
Yardı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=prod
Parametre ü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
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.com
Alan 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.
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 .
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
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.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
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, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek 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, 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!
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.
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