**svn搭建XinhyAdmin:** *备注:以下文档提到的伪静态是:nginx 配置* 1.svn checkout 项目svn地址 2.复制.env.example 文件重命名 .env 3.在api目录 composer install 4.修改.env 文件 配置数据库连接 如果文件中没有[JWT] 需要运行 php think jwt:create 例如: ~~~ [JWT] SECRET=a44417d24e2f4a95521a8011df7930b7 ~~~ 5.绑定域名 例如:dev.catch-xinhyadmin.com:配置域名时可能host文件没有修改权限 可参考:https://jingyan.baidu.com/article/624e7459b194f134e8ba5a8e.html 修改权限 ![](https://img.kancloud.cn/24/d3/24d36d7bfed92d076dc4738c7d0465d9_420x274.png) 伪静态: ``` location / { if (!-e $request\_filename){ rewrite ^(.\*)$ /index.php?s=$1 last; break; } } ``` 5.在web目录先npm install 6. 修改.env.development 指定调用api的域名或者ip地址;端口号如果是80可以不用填写 ``` VUE_APP_API_BASE_URL=http://域名:端口/ ``` 7. 运行npm run serve **本地搭建新项目**: 在XinhyAdmin的基础上新开项目,不影响XinhyAdmin 1:新建项目目录 例如:AITeach ~~~ mkdir AITeach ~~~ 2.进入 AITeach 新建api 和web目录 ~~~ cd AITeach mkdir api mkdir web ~~~ 3.进入api 解压api.zip 解压到当前目录 4.在api目录下运行composer install 5.将sql文件导入数据库 新建库: ![](https://img.kancloud.cn/45/c2/45c253ff576ab023acace3a4159f144e_421x133.png) 导入数据时可能会碰到视图只导入一部分 查看日志会发现报错: # 1449The user specified as a definer('root'@'%') does not exist 解决方法参考:https://blog.csdn.net/CanXue6789/article/details/105893959/ mysql>8.0 ``` CREATE USER '用户名'@'%' IDENTIFIED BY '密码'; grant all privileges on *.* to 'root'@'%'; select @@global.sql_mode; set @@global.sql_mode  =’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’ ``` 6.修改.env 配置文件 (数据库连接) ~~~ [DATABASE] TYPE = mysql HOSTNAME = 127.0.0.1 DATABASE = ai-teach USERNAME = root PASSWORD = root HOSTPORT = 3306 CHARSET = utf8 DEBUG = true ~~~ 7.phpstudy 配置域名 配置伪静态 域名: ![](https://img.kancloud.cn/99/ae/99ae5a11a250f615fa1bc5f84be2fcd0_443x324.png) ~~~ 伪静态: if (!-e $request\_filename){ rewrite ^(.\*)$ /index.php?s=$1 last; break; } ~~~ 8. 进入web目录 解压web.zip 解压到当前目录 9 .在web目录下运行 npm install 10.修改.env.development (开发) ~~~ VUE_APP_API_BASE_URL=http://dev.ai.com:8080/ ~~~ 11.npm run serve ![](https://img.kancloud.cn/89/b3/89b35a6a12668cd94885c60e9cfeb2c5_474x110.png) 12.访问本地地址 : http://localhost:8082/ ![](https://img.kancloud.cn/8f/cf/8fcf96f42a9fa8f2395d6f39a337363d_1904x561.png) ***** ***** ***** **web打包项目安装** 1.修改配置文件.env.preview 域名为api接口配置的域名 端口号若为80可以不写 ``` VUE_APP_API_BASE_URL=http://域名:端口号/ ``` 3. 在web目录下运行命令 npm run build:preview 4. 生成dist文件 5. 绑定域名 ![](https://img.kancloud.cn/5a/0a/5a0a8a147a5b4923702ab50520430d24_451x287.png) 6.配置伪静态 ``` location / { try_files $uri $uri/ /index.html; } ``` 7. 访问页面 ![](https://img.kancloud.cn/04/3f/043f142f7110f77631b55dd52d8df301_776x442.png) 8. 本地跨域问题:注释掉TP框架自带的跨域中间件, ![](https://img.kancloud.cn/9e/d3/9ed3fef886329a4b24efad36474676e1_1105x446.png) 然后在conf配置文件中添加如下代码 ![](https://img.kancloud.cn/c3/7d/c37dd861a390c517606a3b85c46f9a73_1757x525.png) ~~~ add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods GET,POST,OPTIONS,PUT; add_header Access-Control-Allow-Credentials true; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; if ( $request_method = 'OPTIONS' ) { return 204; } ~~~ ***** ***** ***** ***** **linux配置项目需要注意的地方:** 1.linux 严格区分大小写 源码一定要注意 2.跨域请求解决方式 api域名配置需要添加(如果是本地需要加载反向代理的location 下面): ~~~ location / { add_header Access-Control-Allow-Methods GET,POST,OPTIONS,PUT; add_header Access-Control-Allow-Credentials true; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; if ( $request_method = 'OPTIONS' ) { return 204; } # URL重写支持 if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; } } ~~~ 3.宝塔面板修改api文件夹的所有者为www(解决创建文件没有权限的问题)