在Cent OS云服务器上部署基于TP5后端代码踩坑记录_艾孜尔江撰
推荐使用镜像安装Cent OS系统,或者在纯净安装完成之后在完成Apache+MySQL+PHP的时候不要每个单独安装,因为这样会出一些三者之间版本不配的问题,网上各种说法都有,查起来也非常困难,版本匹配之后又会遇到什么问题也无从知晓,反正这种单独安装的方式不适合一般的开发需求,商业开发也基本上都是使用现成的镜像直接安装环境,作为普通开发者,也不要太在这种没有技术含金量的事情上面画太多的时间。
如果不采用直接安装系统镜像的方式,还是想纯净安装,那我比较推荐的方式是,在安装好纯净的Cent OS系统之后,下一个XAMPP-Installer,下个匹配于自己在开发过程中使用过的版本。然后安装这个XAMPP。需要注意的是,装还这个之后实际上会显示MariaDB+Apache+PHP,这个不用见怪,因为度娘说MariaDB实际上就是MySQL的超集,我们在该情形下就拿他当MySQL对待就好。在安装好XAMPP之后,需要检查一下自己的TP5服务端代码中的config文件,将里面的数据库相关的IP地址改成公网的IP地址,不然会报错说没办法通过root进入到处在127.0.0.1这个位置上的数据库,网上搜,一大堆解决方式,但是鲜有适合于TP5开发的,因为产生这类问题的原因太多太多,而网上的各种解决方式基本上都是针对于不同的情况而论,实施之后虽然没有什么大问题,并且感觉上像是解决了,但实际上没有找到问题的根源——网上的解决方式具有特普遍性而不具有特殊性,我们在部署TP5服务器的时候所具有的特殊性是“忘了将config配置文件中的数据库所在IP地址改成公网服务器的IP地址”。
在设置好之后需要将数据库sql文件引入到服务器上的数据库中,这里有两种方式,一个是通过终端页面进去之后用命令行导入数据库文件,对于新手不太推荐;比较推荐的是使用Navicat数据库管理工具远程连接数据库并在连接成功后将数据库文件导入进去进行管理,这个方式的详细做法可以上哔哩哔哩去看我的视频。但是需要提醒的是,还是因为我们的这个问题具有特殊性——在TP5代码的数据库config文件夹中设置了数据库登录的用户名密码,所以远程连接数据库的时候总会遇到各种拒绝,这时候我们就得看一下有没有输入和配置文件中一致的用户名密码,建议将用户名密码改成和XAMPP数据库用户名密码一致的,比如说我先前设置的XAMPP工具中的MySQL的密码是空,那么我在这里也吧TP5代码中的数据库密码设为空,这样做就是为了能够顺利连接上远程数据库并在远程数据库上新建数据库后载入本地数据库文件进行运行。
在这些工作都完成之后再去测试接口,会发现跟写入文件操作的接口没法用了,如果前期在这里处理的太好了,比如说我的这个情形,就是在前期就已经吧各种异常处理做好了,这时候因为无法写入文件,除了异常只能看到前期我自己写的抛出异常的语句,鉴于生产环境下很难进行调试,而发现又没有生成关于这个异常的log日志,这时候就很令人不耐烦,找来找去发现自己之前在抛出异常的这个语句上面进行了关于开发环境于生产环境的判断,而部署的时候很自主地将开发模式给关了,换成了生产模式,于是就一直抛出自己写地异常处理响应语句,这时候就需要把生产模式再关掉去看看TP5框架自己返回的异常是什么异常。直到这时,才发现,原来是mkdir()函数没能再Linux系统上正常运行,网上一搜,发现这种坑不会见于Windows开发中,而知见于对运行时权限管理比较注重的Linux操作系统上,也正是因为没能够执行mkdir()函数,我才在生产模式下没有看到任何日志记录,于是我遍将TP5中记录日志的runtime文件夹的权限设置成了777,同时还需要面的两个cache文件夹和log文件夹的权限也都设置成777!,这样之后,我写的关于文件操作的函数就能够顺利被调用起来了,大功告成。
注意,一些所谓的“服务器内部错误”,细心查看log文件不难发现,就是忘了将runtime文件夹设置权限777;同时更要记住把runtime文件夹里面的cache文件夹、log文件夹也要设置成777权限。设置命令是:chmod 777 fileName
<p align="right">2020年5月1日</p>
<p align="right">艾孜尔江撰稿</p>
在Cent OS云服务器上部署基于TP5后端代码踩坑记录_艾孜尔江撰的更多相关文章
- unigui在阿里云服务器上部署
unigui在阿里云服务器上部署 客户租用了阿里云WINDOWS2008服务器,部署UNIGUI发现死活不行,WINDOWS2008自带的IE9浏览器打开URL,卡死在loading...... 我远 ...
- PHP--腾讯云服务器上部署LNMP环境
本文参考 云服务器上部署Laravel的实例教程 腾讯云 创建 Laravel5.4 项目 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PH ...
- 使用Windows下的git工具往github上传代码 踩坑记录
使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己 ...
- [原创]在HP DL380 G7服务器上部署基于Ubuntu Server 16.04 和 VirtualBox的云平台
对于一线开发人员来说,一提到虚拟机平台,往往会让人联想到在价格昂贵的服务器上部署VMware vSphere之类软件来实现. 笔者作为一个资深码农,也是一直梦寐着在自己家中打造一个真正的家庭私有云,秒 ...
- Linux学习2-在阿里云服务器上部署禅道环境
前言 以前出去面试总会被问到:测试环境怎么搭建?刚工作1-2年不会搭建测试环境还可以原谅自己,工作3-5年后如果还是对测试环境搭建一无所知,面试官会一脸的鄙视. 本篇以最简单的禅道环境搭建为例,学习下 ...
- Ubuntu 云服务器上部署自己的 Rails 应用
自学rails一段时间了,之前只用heroku部署了网站,想尝试把网站以一个更“正经”的方式呈现出来,就买了一个阿里云服务器.参考了网上部分rails部署教程,过程中也遇到了一些问题,所以在完成之后总 ...
- 使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识
---恢复内容开始--- 一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserv ...
- 如何在 Ubuntu 云服务器上部署自己的 Rails 应用
安装步骤 参考:https://ruby-china.org/topics/32851 在云服务器上安装Ruby|Rails : http://www.cnblogs.com/znsongshu/p ...
- 基于Cent os 云服务器中SVN 服务器的搭建---具体实践是可行的 一次备注便于后续查找
https://blog.csdn.net/shadowyingjian/article/details/80588544http://www.hongyanliren.com/2015m04/329 ...
随机推荐
- (PSO-BP)结合粒子群的神经网络算法以及matlab实现
原理: PSO(粒子群群算法):可以在全局范围内进行大致搜索,得到一个初始解,以便BP接力 BP(神经网络):梯度搜素,细化能力强,可以进行更仔细的搜索.数据: ...
- Java pdf转高清图片
为什么80%的码农都做不了架构师?>>> package com.hyb.kai.web.controller; import java.awt.image.BufferedIm ...
- 图论--拓扑排序--HDU-1285确定比赛名次
Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委 ...
- python selenium(键盘事件 Keys 类)
1.导入Keys类 from selenium.webdriver.common.keys import Keys Keys.BACK_SPACE 删除输入框内结尾的单个字符 Keys.SPACE ...
- postman(动态数据获取)
一:返回报文为 json 格式 示例:因为充值记录接口中需要用到登录接口返回报文中的信息如下 1.以获取token(JWT)和uid为例 2.在登录接口的tests中写入代码(因为登录接口报文信息中有 ...
- C++11的mutex和lock_guard,muduo的MutexLock 与MutexLockGuard
互斥锁是用来保护一段临界区的,它可以保证某段时间内只有一个线程在执行一段代码或者访问某个资源. C++11的mutex和lock_guard C++11新增了mutex,使用方法和linux底下的常用 ...
- C :uthash
参考: [1] uthash | 学步园 [2] 源码 [3] 官方文档 [4] [5] 一.哈希表的概念及作用 在一般的线性表或者树中,我们所储存的值写它的存储位置的关系是随机的.因此,在查找过程中 ...
- Spring Cloud学习 之 Spring Cloud Hystrix(流程分析)
Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 我们还是从流程图入手: 创建HystrixCommand或者HystrixObserv ...
- [hdu4416 Good Article Good sentence]后缀自动机SAM
题意:给出串A和串集合B={B1,B2,...,Bn},求串A的所有不同子串中不是B中任一串的子串的数目. 思路:把A和B中所有字符串依次拼接在一起,然后构造后缀自动机,计算每个状态的R集合元素的最大 ...
- SpringBoot + SpringCloud的爬坑之旅
1,application.yaml中配置没有生效问题解决 如果配置文件确认没有错误但是没有生效首先是要到编译目录去查看是否被编译过去了,如果没有,请先将项目clean在重启 但是idea启动项目时也 ...