在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 ...
随机推荐
- Kudu,支持快速分析的新型Hadoop存储系统
Kudu是Cloudera开源的新型列式存储系统,是Apache Hadoop生态圈的新成员之一(incubating),专门为了对快速变化的数据进行快速的分析,填补了以往Hadoop存储层的空缺.本 ...
- 使nfs同步生效
我们在使用nfs的时候会遇到往nfs server端写个文件,client需要很久才能生效,我们想让立刻生效有两种办法:1.mount -t nfs -o noac IP:/data/xxxx /xx ...
- 一句话教你分清楚UML组合聚合和联系!
组合:组合后的实体消失,则所有构成实体的部件都无意义,可以理解为不能独立存在 定义: 与聚合相比,组合描述的是这样的关联关系,部分离开整体后就没有实际意义了.所以我们说组合是一种很强的关联关系. 例子 ...
- unittest 管理用例生成测试报告
# 登录方法的封装 from appium import webdriver from time import sleep from python_selenium.Slide import swip ...
- docker overlay network
下载binary consul wget https://releases.hashicorp.com/consul/1.2.2/consul_1.2.2_linux_amd64.zip unzip ...
- css属性、样式、边框、选择器
CSS 层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言, 用来描述 HTML或 XML(包括如 SVG.MathML.XHTML 之类的 XML 分 ...
- 什么才是Python的高级编程?大牛总结,绝对让你受益匪浅
很多刚入门或者还在了解的小伙伴们都会遇到迷茫期吧,就是学完这些基础,函数,字典啥的,好像也做不了什么东西,其实你基础学的扎实的话,是能做很多的事的,学完基础也不要迷茫,因为每门语言都是博大精深的,不是 ...
- C# 基础知识系列- 17 实战篇 编写一个小工具(1)
0. 前言 这是对C# 基础系列的一个总结,现在我们利用之前学到的知识做一个小小的工具来给我们使用. 如果有看过IO篇的小伙伴,应该有印象.当时我提过一个场景描述,我们在平时使用系统的时候,经常会为了 ...
- 为什么要学习微信小程序直播开发?最新的小程序直播介绍和优势分析!
小程序直播的介绍 “小程序直播”是微信提供给开发者的实时视频直播工具,包括直播管理端.主播端和观众端等模块,支持提供常用的用户互动和营销促销工具. 开发者只需在小程序中引入相关代码并在管理后台完成配置 ...
- 解决php获取不到Authorization问题
我用的是thinkphp3.2.3, 在使用jwt的时候通过Authorization传递token,但是每次都接收不到,通过修改..htaccess文件,问题成功解决了,下面是的.htaccess文 ...