您正在查看:标签 php 下的文章

给老博客升级一下:从 PHP 7.4 到 PHP 8.5

php7-to-php85-cover-1200.webp

不知不觉,用 PHP 7 跑博客已经十个年头了 滑稽.png ,服务器上的版本还停留在 PHP 7.4.x。

这套环境用了这么多年,也是时候升级到 PHP 8 了! 哈哈.png 这次选的是 PHP 8.5.10,顺便把之前的 Dockerfile 整理了一下。

从一键安装包到 Docker

最开始,我用 LNMP 一键包在服务器上直接编译安装运行环境。后来虽然换成了 OneinStack,但还是在宿主机上编译安装,本质上没什么变化。

这样用起来倒也方便,就是时间一长,各种依赖和配置都堆在宿主机上,升级、迁移都不太省心。稍有不慎环境就搞挂了,恢复起来简直就是灾难。

后来容器化流行起来,我就把运行环境都搬进了 Docker,一直沿用到现在。

换成容器之后,确实省心了不少。以前换台服务器,还得重新装环境、配依赖、改配置;现在把镜像、配置和网站文件准备好,启动容器就能继续用。后面再升级或者迁移,也不用在宿主机上折腾一遍依赖了。

顺手整理一下 Dockerfile

- 阅读剩余部分 -

Centos下给PHP开启fileinfo扩展

由于需要用到fileinfo,而编译安装php的时候恰巧忘了安装fileinfo,现在给php配置fileinfo扩展,并记录下过程仅供参考。


首先如何查看php是否安装了fileinfo扩展?
在vps上直接运行php -m命令即可查看PHP已经安装了哪些扩展;
或者新建一个PHP文件,写上如下内容:

<?php
    phpinfo();
?>

将PHP文件上传至网站目录,访问文件即可在线查看PHP的配置信息。


下面看如何开启PHP的fileinfo扩展
1.找到phppize目录,一般在安装好的php目录下,可使用find / -name fileinfo命令来查找,找到在哪后进入该目录;
QQ截图20181130153434.png

2.在fileinfo目录下执行/www/server/php/72/bin/phpize命令,命令中的命令为自己服务器的实际路径为准;
执行成功后会有如下提示:

Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718

3.找到安装PHP文件的源目录,如果实在找不到的话可重新下载相同版本的PHP解压即可,
这里我目录为:/www/server/php/72/bin/php-config

4.配置php-config路径,以自己服务器的实际路径为准;

./configure --with-php-config=/www/server/php/72/bin/php-config

5.编译安装

make && make install

如果安装成功,会有类似以下信息

Installing shared extensions:     /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/

6.修改PHP配置文件php.ini,这里我的文件路径为:/www/server/php/72/etc/php.ini
在后面加入如下一行:

extension = fileinfo.so;

7.最后重启nginx以及php-fpm这个时候phpfinfo信息里就会出现fileinfo,到此fileinfo安装完毕~ 太开心.png

恭喜成功升级 PHP7

一搞就是大半夜
本来就想升级下 php
可是折腾了半天 还是折腾废了
果然还是重装了系统
一口气装了最新的 lnmp
可总算把所有的东西都搞完了
庆祝下睡觉了

毕竟是世界上最好的语言呢

QQ截图2016092002507.png