由于本地服务器为PHP5.3,项目部署需要PHP >= 7.0.*,所以选择docker容器化部署,服务器系统为centos7.3,所有的sql文件都在项目路径 public/sql下
目录
一.直接部署,不部署前端开发环境
安装docker
外网环境下安装docker,直接使用yum安装
yum install docker
安装完执行命令 docker -v 查看如果出现版本号则安装成功
docker 命令可以参考这个大佬写的文章https://blog.csdn.net/leilei1366615/article/details/106267225
安装完docker 拉取centos镜像
先查询在拉取
使用docker pull 拉取第一个镜像
docker images 查看拉取的镜像
新建容器(端口映射随生产环境变化)
docker run -i -d -p 80:80 8089:8089 -v /home/dockerData/:/home/dockerData/ -m 16G --privileged --name crm centos
进入容器后搭建环境,本人使用的是lnmp环境
使用oneinstack自动安装
wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --nginx_option 1 --php_option 6 --phpcache_option 3 --db_option 2 --dbinstallmethod 1 --dbrootpwd 123456 --redis --reboot
环境安装完毕后检查各项服务是否启动
检查完毕后将代码包放到 /data/wwwroot下
解压后给777权限
配置nginx,端口,域名,地址
配置完检查nginx
执行nginx -t
没有问题重启nginx服务
nginx -s reload
进入数据库文件夹导入数据库文件,原版中没有创建数据库,进入数据库之后先创建库
create database crm;
use crm
source 数据库文件
source 完退出
修改文件 config/database.php,源码中没有这个,
cp database_template.php database.php拷贝一份出来在修改
修改完保存退出
浏览器直接访问http://域名/ 出现下面图片搭建成功
二.部署前端开发环境
项目根目录创建frontend文件夹,将前端代码包放进这里
修改 config/index.js 控制接口接口转发,官方文档中提到不建议修改这个文件中的端口默认8080,但是11.0中端口号默认为8090 所以在docker映射的时候直接映射8090
target 指向后端接口 api改成index.php
修改完后安装npm
本人直接装的18
直接安装
npm install
npm run dev
浏览器访问
前端搭建完毕
三.部署遇到的问题
1. 如果不是docker部署忽略这条,在部署过程中,可能需要修改端口映射,又不想新建容器
参考Docker 修改容器端口_网心云docker修改端口_东京易冷的博客-CSDN博客
2.如果访问浏览器http://localhost/index.php/admin/install/index.html
只是出现悟空软件四个字 直接访问http://localhost/index.html
3.输入用户名和密码之后弹出“网络错误,请检查您的网络”
(1)数据库连接失败,提示not allowed to connect to this MySQL server
-
mysql> grant all privileges on *.* to 'root'@'%'identified by '你的密码';
-
mysql> flush privileges;
(2)nginx配置有问题,接口提示404
(3)数据库使用的5.7会出现这个问题,查看接口报错this is incompatible with sql_mode=only_full_group_by 参考https://blog.csdn.net/u012660464/article/details/113977173
4.访问域名之后只出现悟空软件,查看代码发现是路由访问错误,经过排查发现是nginx配置有问题,nginx默认不支持pathinfo
可以参考我的配置文件 只展示server段
server {
listen 80;
server_name IP地址;
access_log /data/wwwlogs/access_nginx.log combined;
root /data/wwwroot/72crm;
index index.html index.htm index.php ;
error_page 404 /404.html;
#error_page 502 /502.html;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location ~ \.php(.*)$ {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 7d;
access_log off;
}
location ~ ^/(\.user.ini|\.ht|\.git|\.svn|\.project|LICENSE|README.md) {
deny all;
}
location /.well-known {
allow all;
}
}
5.部署完没有默认密码,导入sql文件install.sql,账号18888888888密码123456a。不建议直接在数据库添加,字段不一致会导致登录不上去。
6.登录成功后发现模块较少是因为数据没有导全,将sql下的文件合并到一个重新导入
7.其他后端问题可以参考安装悟空crm的几种报错及解决办法_3A网络资讯门户
8.前端部署遇到问题,安装npm后发现npm install 报错 尝试修改package.json文件,将node-sass版本修改为6.0.1重新安装
9.nmp run dev 执行失败 出现错误Vue 报错error:0308010C:digital envelope routines::unsupported参考文档https://blog.csdn.net/zjjxxh/article/details/12717396
10.前端部署完毕之后测试能否登录,如果登录不上去,检查nginx,前端项目index.js是否配置正确