# php

ubuntu18.04编译安装php7.0

起因

虽然7.0已经停止维护了,但有些老项目也只是过度,后期直接用新项目替换,没有必要在进行升级。所以服务器还是需要用到7.0的运行环境。
本来想用apt简单按一下,结果发现apt里面已经没有php7.0了。只能自己源码安装。

vscode打造php开发环境

文档注释

借助于 PHP DocBlocker 插件,可以快速地在类名、变量名、方法/函数名 上方添加注释。

自动补全

借助于 PHP Intelephense 插件,可以实现代码智能提示。
安装后选择 file->preferences->settings 选择右上角{}进入配置模式,添加"php.executablePath": "/usr/bin/php",配置上php的路径

代码格式化

借助于 php-cs-fixer 插件,可以方便地按照某一规则格式化代码,让你时刻保持代码可读性和风格统一。

docker环境下php使用指南

最近由于业务原因,需要将 php7.0 升级到 7.2。升级要考虑一下几点
要满足以下需求

  1. php7.0 和 7.2 要共存,以免升级 7.2 以后出现问题,及时切换回来。
  2. 升级操作要简单,服务器数量比较多,原生方式安装太过复杂,操作步骤太多,就算携程 shell 脚本,维护起来也比较麻烦
  3. nginx 保持原样,只对项目相关的配置文件做简单调整即可。如果 nginx 变更日志处理等模块都收到牵连。

考虑到上面的因素,用 docker 显然是非常符合的。于是就开启了踩坑之旅。
主要遇到了两个问题,一个是502,还有一个是File not found。下面进行分析

前后端分离session跨域解决方案

session

php的session比cookie安全,这是好多人知道的常识。session的数据是存放在服务端的,那么程序是如何取到对应的session呢?
那是因为每一个session都有一个身份证号,那就是session id。这个东西一般情况下,服务器会发送给客户端,客户端将它放在cookie里。
cookie是存在跨域问题的,什么叫跨域呢?a.domain.com下创建的cookie,在b.domain.com下是无法使用的,我们需要进行跨域设置。

axios

用过vue开发前后端分离程序的人对axios相比都不陌生了,js前后端分离,如果前后端用两个域名,也存在跨域问题。