分类: PHP


从 PHP 7 升级到 PHP 7.2

作者: 我不是鱼 (2018-01-16 14:38) 分类: PHP    

在 PHP 7.1 发布差不多1年后,PHP 7.2 终于发布。本文是从 PHP 7.1.0 升级到 PHP 7.2.1,从 PHP 7 的其他版本升级到 PHP 7.2.1 也是大同小异。如果是新安装,请参考: http://www.lnmp.cn/installing-php7-mysql57-nginx18-under-centos7.html


我之前是把 PHP 7.1.0 安装在

/usr/local/php-7.1.0

为了方便以后升级,加了这个软链,链接到 php-7.1.0

/usr/local/php

使用到 PHP 路径的时候一般都是使用这条软链路径。

 

先下载 PHP 7.2.1 源码,我下载的源码都是统一放到 /usr/local/src

[root@lnmp lnmp.cn]# cd /usr/local/src
[root@lnmp src]# wget -c http://cn2.php.net/get/php-7.2.1.tar.gz/from/this/mi...

查看原文


http 扩展已经加载,但 http 函数全部不可以用

作者: 我不是鱼 (2017-06-21 11:54) 分类: PHP    

pecl_http 已经安装好,并且成功加载,在 phpinfo() 中可以看到,但 http 函数全部不可用,提示未定义:

Fatal error: Uncaught Error: Call to undefined function http_get()
Fatal error: Uncaught Error: Call to undefined function http_parse_headers()
Fatal error: Uncaught Error: Call to undefined function http_parse_cookie()

这里首先要确认安装的 pecl_http 是什么版本,因为版本1及以下和版本2及以上是完全不同的两个api。

https://pecl.php.net/package/pecl_http

如果安装的是版本1,最新 1.7.6 那么如下函数是可用的

http://php.net/manual/fa/ref.http.php

但如果安装的是2以上版本,最新 3.1.0 ,那么以上的 ht...

查看原文


pecl_http configure: error: please install and enable pecl/raphf

作者: 我不是鱼 (2017-06-20 21:16) 分类: PHP    

本文是在 PHP 7.1 下用 pecl 安装 HTTP 3.1,关于 HTTP 都有哪些具体功能请参考:
https://mdref.m6w6.name/http

我这里主要是想用其中解析cookie的一些函数。

[root@lnmp lnmp.cn]# pecl install pecl_http

中途有几个提示输入库路径的,默认留空回车就是。

然而安装并不成功,具体错误如下:

checking whether ext/raphf is enabled... no
configure: error: please install and enable pecl/raphf
ERROR: `/tmp/pear/temp/pecl_http/configure --with-php-config=/usr/local/php7/bin/php-config --with-http-zlib-dir=/usr --with-http-libcurl-dir=/usr --with-http-libevent-dir=/usr --with-...

查看原文


PHP 7.1 安装 ssh2 扩展

作者: 我不是鱼 (2017-03-06 08:56) 分类: PHP    

最近的项目要将文件从一台服务器上传到另外一台。本想着搭建ftp服务器,但为了节省时间,没有去做,而直接想着使用 sftp 或 scp 上传。这里就要用到 ssh2 扩展,下面说下如何在 PHP 7.1 下安装 ssh2,因为安装过程不算很顺利。

首先要安装 libssh2 开发库,否则安装扩展的时候会出现这个错误:

checking for gawk... gawk
checking for ssh2 support... yes, shared
checking for ssh2 files in default path... not found
configure: error: The required libssh2 library was not found.  You can obtain that package from http://sourceforge.net/projects/libssh2/
ERROR: `/tmp/pear/temp/ssh2/configure --with-php-config=/usr/local/...

查看原文


安装 PHP 5.3 时出现 configure: error: Cannot find libmysqlclient under /usr.

作者: 我不是鱼 (2017-02-24 18:04) 分类: PHP    

在安装 PHP 5.3,configure 的时候出现错误, configure 如下:

[root@lnmp php-5.3.29]# ./configure  --prefix=/usr/local/php5 --enable-fpm --with-mysql  --with-mysqli --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo

错误信息如下:

checking for MySQL support... yes
checking for specified location of the MySQL UNIX socket... no
configure: error: Cannot find libmysqlclient u...

查看原文


从 PHP 7.0 升级到 PHP 7.1

作者: 我不是鱼 (2016-12-05 14:38) 分类: PHP    

在 PHP 7.0 发布一年之后,终于看到 PHP 7.1 稳定版发布,有不少新特性,迫不及待地想尝试一下这个版本。本文是介绍从 PHP 7.0.5 升级到 PHP 7.1.0,如果是新安装,可以参考这里:http://www.lnmp.cn/installing-php7-mysql57-nginx18-under-centos7.html 大同小异

PHP 7.0.5 之前是安装在  /usr/local/php-7.0.5

首先下载源码,我一般都是放在 /usr/local/src 中

[root@lnmp lnmp.cn]# cd /usr/local/src
[root@lnmp src]# wget -c http://cn2.php.net/get/php-7.1.0.tar.gz/from/this/mirror -O php-7.1.0.tar.gz

然后解压并进入解压后的源码目录

[root@lnmp src]# tar -zxvf php-7.1.0.tar.gz
[root@lnmp src]# ...

查看原文


PHP7 下安装 memcache 和 memcached 扩展

作者: 我不是鱼 (2016-07-30 01:04) 分类: PHP    

Memcached 是高性能的分布式内存缓存服务器,而PHP memcache 和 memcached 都是 Memcached 服务器的 PHP 扩展。其中memcache 比 memcached 早出现,所以一些老的代码可能还在用 memcache 扩展。memcached 后来出现,并且大部分框架都支持 memcached,现在相对较流行。可以根据自己需要,安装一个就可以。这里两个的安装方法都说一下。
 

安装依赖

首先是 memcached,这个扩展需要 libmemcached 客户端库,否则会出现如下错误

checking for libmemcached location... configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR> to specify the prefix where libmemcached headers and library are located
ERROR: `/v...

查看原文


Laravel No supported encrypter found. The cipher and / or key length are invalid.

作者: 我不是鱼 (2016-06-26 09:17) 分类: PHP    

克隆了一个Laravel的项目到本地,运行是出现这个错误:

RuntimeException in EncryptionServiceProvider.php line 29:
No supported encrypter found. The cipher and / or key length are invalid.

这个是因为项目根目录下的 .env 文件中的 APP_KEY 没设置对,默认是 APP_KEY=SomeRandomString,这个要改成自己的,但也不是随便改就行,Laravel 有提供可以通过命令行生成这个 key,在项目根目录下执行:

php artisan key:generate

完成后 .env 文件中的 APP_KEY 被修改成类似:

APP_KEY=4Hdy4BkW5JB0IyYAM9z7eV6HTtoXtX1c

至于这个命令做了什么,可以看这里 \Illuminate\Foundation\Console\KeyGenerateCommand :

$key = $th...

查看原文