全部文章


MySQL 5.7 新特性 JSON 的创建,插入,查询,更新

作者: 我不是鱼 (2016-08-31 16:13) 分类: MySQL    

从 MySQL 5.7.8 开始,MySQL 支持原生的 JSON 数据类型。

创建 JSON

类似 varchar,设置 JSON 主要将字段的 type 是 json, 不能设置长度,可以是 NULL  但不能有默认值。

mysql> CREATE TABLE lnmp (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `category` JSON,
    `tags` JSON,
    PRIMARY KEY (`id`)
);

mysql> DESC lnmp;
+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Ex...

查看原文


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...

查看原文


安装 yii2 出现 Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist

作者: 我不是鱼 (2016-05-22 21:21) 分类: PHP    

yii2 官网给出的安装命令是:

composer global require "fxp/composer-asset-plugin:~1.0.0"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic

原本以为会很顺利,没想到按这个做却没能成功,出现这个错误:

Thomass-MacBook-Pro:projects Thomas$ composer global require "fxp/composer-asset-plugin:~1.0.0"
Changed current directory to /Users/Thomas/.composer
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
&nb...

查看原文


安装 PHP 出现 cannot find -lltdl 错误

作者: 我不是鱼 (2016-05-19 00:38) 分类: Linux    

在编译 PHP 的过程中遇到这个错误:

/usr/bin/ld: cannot find -lltdl
collect2: error: ld returned 1 exit status
make: *** [sapi/fpm/php-fpm] Error 1

解决办法是:

yum install libtool-ltdl-devel

查看原文


LNMP 环境下安装多个 PHP 版本(PHP7, PHP5)

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

因为还有不少的开源程序未兼容 PHP 7,所以在已有的 CentOS 7, PHP 7,MySQL 5.7 和 Nginx 1.8 环境下再安装 PHP 5. 关于 PHP 7 的安装,请参考:http://www.lnmp.cn/installing-php7-mysql57-nginx18-under-centos7.html

安装 PHP 5.6

PHP 5 和 PHP 7 的安装其实是大同小异。目前最新版本是 php-5.6.21。先下载源码:

[root@lnmp ~]# cd /usr/local/src
[root@lnmp src]# wget -c http://cn2.php.net/distributions/php-5.6.21.tar.gz

解压:

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

configure. 其中安装路径为 /usr/local/php5

[root@lnmp src]# cd php-5.6.21/
[root@lnmp p...

查看原文


PHP 5.3 中用 mb_detect_encoding 检测字符串是否为 UTF-8 的问题

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

PHP 提供了 mb_detect_encoding 来检测字符串的编码。例如:

mb_detect_encoding('LNMP笔记', 'UTF-8', true);


将返回 UTF-8,如果不是UTF-8将返回false。不过这种判断并不是百分百的,例如 gbk 编码的 希腊 :

mb_detect_encoding(mb_convert_encoding('希腊', 'gbk', 'UTF-8'), 'UTF-8', true);


PHP 7 中返回 false
PHP 5.3 返回 UTF-8
貌似是PHP的bug,但在PHP7总已经修复。在PHP 5.3可以用正则替代 mb_detect_encoding 检查字符串是否是 UTF-8:

preg_match('//u', mb_convert_encoding('希腊', 'gbk', 'UTF-...

查看原文


FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream

作者: 我不是鱼 (2016-05-12 23:13) 分类: Nginx    

打开网址出 404 File not found. 错误,但文件的确是存在的,找查nginx error log,发现这个

2016/05/12 00:01:01 [error] 24257#0: *166460 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 223.73.106.97, server: www.lnmp.cn, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.lnmp.cn"

这个是因为nginx配置文件中fastcgi_param没有设置对路径引起的,在nginx的 default.conf 配置文件中有这么一段:

    #location ~ \.php$ {
&n...

查看原文