PHP在部署时可能遇见的错误

都是手痒惹得祸

  之前的所有东西都GG了,电脑的数据没有了,所以一切都重新开始(我的环境,我的博客,我的壁纸,我的小程序...以哭晕在厕所)

环境

1. 系统:Linux
2. 服务器:PHP7+Apache+MySQL5.6

前言

  我们网站的服务器系统一般来讲都是Linux的,对于长期使用Windows,没怎么接触过Linux的同学来讲可能会造成一定的困惑,所以在这里给自己做一些笔记。我们在本地调试好了一些代码,本地预览是没有任何问题的,但是在我们部署后,我们在在浏览的时候可能会出现闲一些我们无法预知的错误。下面看看我遇到的一些错误!

无法加载图片(验证码)

  这是我遇到过的一个问题,困惑了我好久,差点就放弃了项目。在Linux中我们配置的环境可能和Windows有些不一样,所以就这样的话我们遇到的问题将无从下手。

原因

1. 没有安装GD库(我遇到的)
2. 没有清除缓存(很少遇到)

  在Linux安装PHP的时候可能他的扩展文件夹里面没有GD,所以就算我们在php.ini打开了扩展库,还是不能加载的。

解决

$ sudo apt-get install php7.0-gd

  成功安装了GD库之后就能加载图片了!

500状态码

  当我把项目部署上去,访问的时候,一个500状态码给我堵了回来,懵逼!

500 (服务器内部错误) 服务器遇到错误,无法完成请求。

原因

  鬼知道内部出了什么错误!侥幸的是我解决了他,其实就是权限问题。所以我们在部署的时候我们需要访问的文件夹一定要有相应的权限。

解决

  找到我们运行时需要的文件夹(自己的项目总知道吧),然后对对其设定权限。

$ sudo chmod -R 777 `项目文件夹`     //权限值根据所需权限

上传文件

  都知道我们数据库一般是不存文件的,它存的只是文件的相对路径,但我们上传文件过后我们的文件会临时存在缓存目录,当会话结束过后他会自动清除。所以我们必须要把它移动到一个目录,这个目录就是我们数据库存放的目录。

原因

  我们上传文件后,var_dump输出的时候[tmp_name]字段是有文件的,当我们使用move_uploaded_file()函数移动文件的时候发现我们根本移动不了,什么错误都不报。无从下手,无奈。

解决

  还是权限问题!

move_uploaded_file(['参数1'],['参数2'])

  参数1——移动前文件,参数2——移动后的文件(位置)。所以参数1就是我们的[tmp_name]字段,需要注意的是[参数2]Apache必须拥有他的读写权限,所以我们需要对他的权限进行修改。

$ sudo chmod -R 777 `[参数2]`

OK!以上是我在日常当中遇到过的问题。

【电脑恢复的差不多了,再见了我的Windows!】
桌面

Edit with markdown