EspoCRM 开源 CRM 如何部署:从源码到安装完成的 5 个关键步骤
【免费下载链接】espocrmEspoCRM – Open Source CRM Application项目地址: https://gitcode.com/GitHub_Trending/es/espocrm
EspoCRM 是一款免费开源的客户关系管理系统(CRM),帮助团队把客户、联系人、销售机会、营销活动和支持工单集中在一个系统里管理。它适合两类人:想把客户数据从表格和邮件里搬出来的中小团队,以及希望拥有完整源码、能深度定制的开发者。本文基于仓库真实代码说明技术栈,并给出一条可落地的部署路径和装完之后的检查清单。
项目全貌:技术栈与架构
EspoCRM 是一个 Web 应用:前端是单页应用(SPA),构建在自研框架之上,核心部分使用 TypeScript;后端用 PHP 编写,基于 Slim 框架提供 REST API,ORM 层自研,邮件解析、PDF 生成(dompdf)、Excel 处理(phpspreadsheet)、OAuth(league/oauth2-server)等能力都由 Composer 管理。所有业务数据存在关系型数据库里,前端通过/api/v1与后端交互。
| 项目 | 要求 | 依据 |
|---|---|---|
| PHP | 8.3 – 8.5 | composer.json |
| 数据库 | MySQL 8.0+ / MariaDB 10.6+ / PostgreSQL 15+ | README |
| PHP 扩展 | openssl、json、zip、gd、mbstring、xml、dom、curl、exif、pdo、ctype | composer.json |
后端代码集中在 application/Espo/ 目录,按 Core、Entities、Controllers、Tools 分层;安装流程位于 install/;自定义扩展预留了custom/Espo/Modules/和custom/Espo/Custom/两个目录(composer.json 的 PSR-4 映射里已声明),升级源码不会覆盖它们。
部署前的环境自检
PHP 是唯一的硬性运行时。部署前先确认版本和扩展都到位,否则安装向导会在系统检查页直接卡住:
php -v php -m | grep -E '^(openssl|json|zip|gd|mbstring|xml|dom|curl|exif|pdo|pdo_mysql|ctype)$'输出应与composer.json中require列表的扩展名一一对应。如果选择 PostgreSQL 数据库,把pdo_mysql换成pdo_pgsql。数据库侧只需确认能连通、账户具备建表权限;推荐参数(如字符集)会在安装时由系统列出,按需调整即可。
最小可行部署:四步跑起安装向导
- 获取源码:
git clone https://gitcode.com/GitHub_Trending/es/espocrm - 安装 PHP 依赖:
composer install - 开放写权限:
chmod -R 775 data/ custom/ - 浏览器访问站点域名,进入安装向导,完成数据库连接、管理员账户和系统参数(时区、语言、默认货币)设置
安装向导的每一步都是独立动作,代码在install/core/actions/下(环境检查、权限检查、数据库构建、用户创建),按页面顺序走完即可。向导会逐项校验 PHP 版本、扩展、数据库版本和目录可写性,全部通过后才会执行建表。
装完先改这三处
- 删除 install 目录。安装成功后
data/config.php已生成,若保留install/,任何人都能再次触发安装流程。 - 配置定时任务。EspoCRM 的定时作业(通知、队列清理等)由
cron.php驱动,挂一条 crontab 即可:* * * * * php /path/to/espocrm/cron.php >/dev/null 2>&1。不配 cron,依赖计划任务的功能会静默失效。 - 确认 URL 重写生效。站点根目录
.htaccess会把请求转发到public/,并禁止直接访问data/、application/、custom/、vendor/;Nginx 部署时仓库在install/core/config.php中内置了完整参考配置(try_files、/api/v1/重写、deny all规则),照抄后重载服务即可。
最容易踩的三个坑:
- 安装页空白 / 500→ 多半是 PHP 扩展缺失或版本不满足 8.3 → 看 PHP 错误日志补齐扩展。
- 页面 404、URL 里出现 index.php→ 重写模块未启用 → Apache 执行
a2enmod rewrite,Nginx 核对 location 规则。 - 安装提示目录不可写→ Web 用户对
data/无写权限 → 用chown把目录属主改为 Web 进程用户。
进阶方向:缓存、安全与扩展
- 性能:配置默认写入
data/config.php,缓存类型除文件外还支持 Redis、Memcached(composer 依赖predis/predis),生产环境建议换掉文件缓存;邮件收发依赖 IMAP,ext-ldap、ext-zmq为可选增强项。 - 安全:启用 HTTPS;数据库账户只授业务所需权限;定期查看
data/logs/下的日志,data/与application/目录已被 Web 层禁止访问,不要自行放开。 - 扩展:REST API 位于
/api/v1,OAuth 端点在/oauth/,客户门户在/portal/;自建模块放入custom/Espo/Modules/,升级时不受影响。
下一步:把备份策略跑起来——对 MySQL 定期执行mysqldump,连同data/目录一起归档,这是 CRM 部署后最不能省的一步。
【免费下载链接】espocrmEspoCRM – Open Source CRM Application项目地址: https://gitcode.com/GitHub_Trending/es/espocrm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考