我把我的laravel项目clone到了linux云主机上(个人第一次部署,以前没有过经历,并且第一次用云主机),解决了一堆问题之后终于显示出来了前端页面,但是却没有从那个主机中的mysql里查询到数据。
我的解决思路:
1,在服务器上写了个小的test.php,里面用的pdo连接mysql,可以正常echo出来数据。可以排除mysql本身的问题。
2,故意在env文件里面把数据库信息配置错误,可以出现laravel报错页面,提示我SQLSTATE[HY000] [1049] Unknown database,数据库名字错误。所以问题应该可以锁定在项目里。
3,不知道是不是Vue前端的问题,我并不了解把整个laravel项目放在云主机之后前端需要做什么,我运行不开的时候,执行了npm run watch,尚未解决的应该是个router之类的什么错误,但是网上说好像是无关紧要。然后我不放心,又全部删除了 node_modules 什么 重新npm install了一遍,但是还是没有数据。。
4,项目在本机上拷贝到云主机上并没有什么变动,项目配置的端口也改了,以下是env文件内容
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:jL6pQJ6ZONO7Kfwd1D5/MhDSIy1XymnVxoanwZ1w150=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=online
DB_USERNAME=root
DB_PASSWORD=****(已改过)
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
个人感觉配置是没问题的。
以防万一我再贴上我的 前端请求axios的代码!
getFormList() {
axios
.get('/getAll', { params:{authorId: 1}})
.then(result => {
this.formList = result.data
this.$message.success('表单列表加载成功')
})
.catch(err => {
this.$message.error('数据加载失败,请刷新重试')
})
},
再以防万一,贴上我的云主机上页面的请求header。。
求大佬过目执教!
请求成功了,有没有返回数据(Preview里面),如果没有数据,是不是数据库没有对应的数据呢,先排查这两个问题吧,然后都没有问题的话,那就把接口里面的PHP代码贴一下吧