由于本地服务器为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
浏览器访问
前端搭建完毕
如果不是docker部署忽略这条,在部署过程中,可能需要修改端口映射,又不想新建容器
参考Docker 修改容器端口_网心云docker修改端口_东京易冷的博客-CSDN博客
如果访问浏览器http://localhost/index.php/admin/install/index.html
只是出现悟空软件四个字 直接访问http://localhost/index.html
输入用户名和密码之后弹出“网络错误,请检查您的网络”
(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
访问域名之后只出现悟空软件,查看代码发现是路由访问错误,经过排查发现是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; } }
部署完没有默认密码,导入sql文件install.sql,账号18888888888密码123456a。不建议直接在数据库添加,字段不一致会导致登录不上去。
登录成功后发现模块较少是因为数据没有导全,将sql下的文件合并到一个重新导入
其他后端问题可以参考安装悟空crm的几种报错及解决办法_3A网络资讯门户
前端部署遇到问题,安装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
前端部署完毕之后测试能否登录,如果登录不上去,检查nginx,前端项目index.js是否配置正确
来源地址:https://blog.csdn.net/weixin_44821826/article/details/130488892