OroCRM是在OroPlatform上建立的一个免费的开源客户关系管理器(CRM)应用。OroPlatform是完全可定制的开源商业应用平台软件。OroPlatform提供了创建自定义应用程序所需的所有特性。OroCRM是使用PHP Symfony框架构建的,并将其数据存储到MySQL / MariaDB数据库服务器中。它是一个提供大量特性的企业级CRM应用程序。它还集成了许多第三方应用程序,如Magento Store、MailChimp、Zendesk等,它是多语言的,并且具有完全响应性的用户界面,这为您提供了使用移动设备管理它的能力。
准备:
一个搬瓦工服务器实例。
sudo用户。
在本文中,笔者将使用crm.banwagongvps.com作为指向服务器的域名。用你的实际域名替换所有的crm.banwagongvps.com。
更新CentOS 7。
安装Nginx和PHP 7
OroCRM可以安装在任何支持PHP的web服务器上。OroCRM支持所有版本的PHP大于7.0。在本文中,我们将使用带有PHP - fpm和PHP 7.1的Nginx。
安装Nginx。
sudo yum -y install nginx
启动Nginx并使它自动启动。
sudo systemctl start nginxsudo systemctl enable nginx
PHP 7在默认的YUM存储库中是不可用的,但是我们可以使用Remi存储库来获取和安装PHP 7的最新版本。首先,添加并启用Remi存储库。
sudo rpm -Uvh
http://rpms.remirepo.net/enterprise/remi-release-7.rpmsudo yum -y
install yum-utilssudo yum-config-manager --enable remi-php71
安装最新版本的PHP 7以及OroCRM所需的PHP模块。
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 timezonememory_limit = 512Mcgi.fix_pathinfo=0
编辑php - fpm配置文件。
sudo nano /etc/php-fpm.d/www.conf
默认情况下,php - fpm配置为运行Apache并监听端口9000。我们需要更改用户和组,以及它将运行的Unix套接字文件。找到以下几行,并按所示进行必要的更改。
user = nginxgroup = 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.socklisten.owner = nobodylisten.group = nobody
启动php - fpm并使其启动。
sudo systemctl start php-fpmsudo systemctl enable php-fpm
向Nginx用户提供php - fpm socket文件的所有权。
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 mariadbsudo systemctl enable mariadb
MariaDB的默认安装有几个测试数据库和匿名用户。在配置数据库之前,您需要先保护MariaDB服务器。您可以通过运行mysql_secure_installation脚本来保护它。
sudo mysql_secure_installation
您将被询问当前的MariaDB根密码。默认情况下,在新的MariaDB安装中没有根密码。按Enter键继续。设置一个强大的密码,为您的MariaDB服务器的根用户,并回答所有其他问题。这些问题是不言自明的。
创建OroCRM数据库
通过运行以root用户身份登录到MySQL shell。
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和username oro_user。一定要将强密码更改为非常强的密码。
安装Node.js 和 Composer
OroCRM还要求Node.js
JavaScript运行时。Node.js将被OroCRM用来编译JavaScript,用于构建应用程序的用户界面。CentOS的默认存储库包含一个过时的节点版本。因此,您需要将Nodesource存储库添加到您的系统以获得最新版本。
sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
安装Node.js 和 Git.
sudo yum -y install nodejs git
Git将被用于从internet克隆OroCRM存储库。您还需要安装Composer。Composer是PHP应用程序的依赖关系管理器。因为OroCRM是在Symfony框架中编写的,所以您需要编写器来安装依赖项和应用程序。
安装的作曲家。
php -r "copy('https://getcomposer.org/installer',
'composer-setup.php');"php -r "if (hash_file('SHA384',
'composer-setup.php') ===
'669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410')
{ echo 'Installer verified'; } else { echo 'Installer corrupt';
unlink('composer-setup.php'); } echo PHP_EOL;"php composer-setup.phpphp
-r "unlink('composer-setup.php');"
将Composer移动到/ 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复制到OroCRM使用的默认 parameters。
cd orocrmsudo cp app/config/parameters.yml.dist app/config/parameters.yml
在进一步进行之前,您需要更新parameters.yml 文件提供数据库和电子邮件信息。
sudo nano app/config/parameters.yml
找到下面几行
database_driver: pdo_mysqldatabase_host:
127.0.0.1database_port: ~database_name:
oro_crmdatabase_user: rootdatabase_password: ~
根据您创建的数据库存储OroCRM数据,更新上述配置。在我们的例子中,它应该是这样的。
database_driver: pdo_mysqldatabase_host:
127.0.0.1database_port: 3306database_name:
oro_datadatabase_user: oro_userdatabase_password: StrongPassword
如果您已经准备好了一个SMTP服务器,并且您希望立即使用电子邮件发送特性,那么您可以像所显示的那样更新mailer设置。
mailer_transport: smtpmailer_host:
mail.example.commailer_port: 456mailer_encryption:
sslmailer_user: mails@example.commailer_password: EMailPassword
如果您没有准备好邮件服务器,您可以通过保留现有值来跳过它。您总是可以通过仪表板更改邮件配置。
设置一个随机字符串ThisTokenIsNotSoSecretChangeIt替换secret。需要一个随机字符串来对会话数据进行编码。一个示例字符串看起来是这样的。
secret: uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd
您可以使用pwgen实用程序生成一个随机字符串。安装pwgenn实用程序,运行sudo yum -y install pwgen。要生成一个随机字符串,运行pwgen -s 64
保存文件并退出编辑器。通过编写器安装所需的PHP依赖项。
sudo composer install --prefer-dist --no-dev
使用——no dev将确保编写器只安装在生产模式下运行web服务器所需的依赖项。这个脚本需要几分钟的时间来下载和安装所需的PHP依赖项。
安装应用程序。
sudo php app/console oro:install --env=prod
这将构建web缓存并编写数据库。提供了在生产模式下安装应用程序的参数env = prod参数。只要安装并配置了所有必需的依赖项,安装就会继续进行。
在安装过程中,您将被问及设置管理员帐户的几个问题。问题如下。
Administration setup.Application URL (http://localhost):
http://crm.example.comOrganization name (OroCRM): My
OrganizationUsername (admin):Email: mail@example.comFirst name: JohnLast
name: DoePassword: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压缩在发送给浏览器之前压缩数据。启用浏览器缓存将静态资源存储到客户机计算机的web缓存。当用户下一次访问站点时,大多数静态内容都是从用户自己的web缓存中加载的。这两种方法极大地提高了应用程序的速度。
检查Nginx配置文件是否有任何错误。
sudo nginx -t
输出应该如下所示。
[user@bandwagon~]$ sudo nginx -tnginx: the configuration file
/etc/nginx/nginx.conf syntax is oknginx: configuration file
/etc/nginx/nginx.conf test is successful
向Nginx用户提供OrOCRM文件的所有权。
sudo chown -R nginx:nginx /usr/share/nginx/orocrm
重新启动Nginx以应用新的配置。
sudo systemctl restart nginx
如果在服务器上运行防火墙,则需要配置防火墙以设置HTTP服务的异常。允许Nginx从网络外部连接。
sudo firewall-cmd --zone=public --permanent --add-service=httpsudo
firewall-cmd --zone=public --permanent --add-service=httpssudo
firewall-cmd --reload
现在可以在http://crm.banwagongvps.com上访问该应用程序。使用在安装期间设置的管理员用户名和密码登录。
设置计划任务和后台作业
要自动运行预定的任务,您可以添加一个Cron作业条目,开放的crontab.
sudo crontab -e
将以下行添加到文件中。
*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null
这将每分钟运行cron作业,这样就可以尽早处理诸如电子邮件队列之类的调度任务。
您还需要设置主管来运行消息队列服务。需要至少有一个进程在任何时候都在运行,以供使用者处理消息。消费者通常可以通过多种方式中断消息过程。为了确保服务持续运行,我们将使用主管服务。我们将配置主管并行运行四个进程。如果四个过程中的任何一个因任何原因被停止,主管将尝试重新启动它。
安装Supervisor.
sudo yum -y install supervisor
编辑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:consumeprocess_name=%(program_name)s_%(process_num)02dnumprocs=4autostart=trueautorestart=truestartsecs=0user=nginxredirect_stderr=true
启动并使 Supervisor在启动时自动启动。
sudo systemctl start supervisordsudo systemctl enable supervisord
您可以通过运行以下命令来查看流程的状态。
sudo supervisorctl status
您应该看到进程正在运行。
[user@bandwagon ~]$ sudo supervisorctl
statusoro_message_consumer:oro_message_consumer_00 RUNNING pid
13596, uptime 0:02:13oro_message_consumer:oro_message_consumer_01
RUNNING pid 13595, uptime
0:02:13oro_message_consumer:oro_message_consumer_02 RUNNING pid
13594, uptime 0:02:13oro_message_consumer:oro_message_consumer_03
RUNNING pid 13593, uptime 0:02:13
OroCRM现在安装在您的服务器上。现在可以使用应用程序来管理组织的常规任务。想了解更多关于OroCRM的信息,你可以访问它的官方网站。
网友评论