PHP

分类下相关文章

centos 6 安装 php 7.1

查看 centos 系统版本号 cat /etc/redhat-release CentOS release 6.9 (Final) 安装 php 7.1 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm yum install mod_php71w php71w-opcache yum install php71w-cli php71w-mysql php71w-bcma ...

阅读全文...

php-fpm 配置文件检测

用过 Nginx 的兄弟都知道,修改 Nginx 配置文件之后,可以使用 nginx -t 来检测配置文件是否有语法错误。 今天配置 opcache 的时候,发现 php-fpm 也可以检测 php-fpm.conf , php.ini 等配置文件的正确与否。 sudo php-fpm7.0 -t [28-Dec-2018 08:57:02] NOTICE: configuration file /etc/php/7.0/fpm/php-fpm.conf test is successful sudo php-fpm7.0 -t Fri Dec 28 09:03:22 2018 (336 ...

阅读全文...

GuzzleHttp 请求设置超时时间

之前调用一个三方的 WEB API,大量的请求超时,导致 PHP 进程被占用完。整个网站一直报 504。 其中一个优化措施就是对三方 API 调用设置超时时间。 use GuzzleHttp\Client; $client = new Client(); $url = 'https://www.sunzhongwei.com'; try { $res = $client->request('GET', $url, ['timeout' => 1.5]); $res = $res->getBody(); } catch(\Throwable $ ...

阅读全文...

PHP 调用系统命令行,system() / exec()

system 与 exec 的区别 exec,可以指定 output 变量,且返回的结果是 array 结构。 >>> exec('ls', $output, $ret) => "some_file.txt" >>> $ret => 0 >>> $output => [ "app", "artisan", "bootstrap", "composer.json", "composer.lock", ] ...

阅读全文...

PHP 日期时间类 Carbon 的常见用法

Carbon 继承了 PHP DateTime 类,所以 DateTime 类的方法同样适用于 Carbon 类。 初始化一个日期 use Carbon\Carbon; $today = new Carbon('2018-08-01'); 本月第一天,上月第一天 $first_day = new Carbon('first day of this month'); $first_day = new Carbon('first day of last month'); return $month->format('Y-m'); // 2018-08 今日日期 echo Carbo ...

阅读全文...

PHP FPM status page

PHP FPM status page 用于查看 PHP FPM 进程池状态。 php7.0 的配置方法 首先配置 Nginx 的页面路径 location /status { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/run/php/php7.0-fpm.sock; log_not_found off; } 再修改 www.conf 文件 /etc/php/7.0/fpm/po ...

阅读全文...

composer 安装依赖缓慢,查看 composer 的详细执行日志

在 windows WSL 上安装 composer 依赖 composer install 发现执行异常缓慢,怀疑没有走国内的镜像,而是直接访问的 github。 需要能看到 composer 的执行日志 composer -h 发现 composer 的参数支持 -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug 于是 composer -vvv install 果然,都是走 ...

阅读全文...

PHP: POST Content-Length of xxx bytes exceeds the limit of 8388608 bytes

用户上传了 4 个附件,每个小于 5M,但是总大小超过了 15 M。 在 Nginx 日志中找到了如下错误信息,还没有到 Laravel 日志那一层。 2018/08/13 10:14:38 [error] 8326#8326: *11432788 FastCGI sent in stderr: "PHP message: PHP Warning: POST Content-Length of 14424838 bytes exceeds the limit of 8388608 bytes in Unknown on line 0" while reading res ...

阅读全文...

解决 composer 安装 phpunit 失败问题

$ composer require --dev phpunit/phpunit Using version ^7.2 for phpunit/phpunit ./composer.json has been updated ...

阅读全文...

对以内部 git 仓库为 composer 依赖的 package,加上版本号

现实问题 之前同事做了一个 composer package,做为公司大量 laravel 项目的通用模块。 但是,在实际使用中,每个项目对改 package 的依赖版本是有所不同的。否则 composer update 会默认拉取最新的 dev-master 中的代码。 术语 VCS Version control systems (VCS) composer 依赖的 package 版本号来自哪里 实际上就是 VCS 中的版本号,例如,git 打的 version tag。 $ git tag v1.0 v1.0.1 v1.0.2 composer 在识别 version 的时候,会自动 ...

阅读全文...

PHP 中 Error 与 Exception 的区别,及如何捕获

写了一段 JSON 解析的代码,由于数据源不能保证一定是 JSON,所以解析可能失败。 但是 PHP 的 json_decode 遇到无法解析的字符串,是不报错的,会直接返回空。而即使能解析出来,我也不太敢相信里面的字段是始终一致的。所以,不但需要判断能否解析成 JSON,还要判断字段是否缺少。出于偷懒的考虑,我想只捕获异常就好了,例如要捕获 Trying to get property of non-object 但是,下面的 try catch 怎么也捕获不到异常 try { // Code that may throw an Exception or Error. } cat ...

阅读全文...

Ubuntu 18.04 安装 PHP 7.1

sudo apt update sudo apt-get install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php7.1-fpm php7.1-mcrypt php7.1-cli php7.1-xml php7.1-mysql php7.1-gd php7.1-imagick php7.1-recode php7.1-tidy php7.1-xmlrpc php7.1-mbstring php7.1-curl 确认安装成功 php ...

阅读全文...

升级 php composer 版本

在执行 composer update 时,报错 You made a reference to a non-existent script @php artisan package:discover 网上说是 composer 的版本太低,查看了一下当前安装的版本 composer -V Composer version 1.2.1 2016-09-12 11:27:19 解决方法,升级 composer 版本 composer selfupdate Updating to version 1.6.3 (stable channel). Downloading: 100% ...

阅读全文...

PHP 将数组的值赋值给一组变量

经常需要将一个字符串分割成一组值,然后赋值给不同的变量。 逐行赋值非常繁琐,于是查了一下 PHP 中是否有类似 python 中 a, b = (a, b) 的操作。 果然有 $info = array('coffee', 'brown', 'caffeine'); list($drink, $color, $power) = $info; echo "$drink is $color and $power makes it special.\n"; list 这个关键字,是专门为这个操作而生的。 可以忽略一个值。 list($drink, , $power) = $in ...

阅读全文...

PHP 日期时间处理汇总

解析字符串中的日期 $date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009'); echo $date->format('Y-m-d'); ...

阅读全文...

近期节日

2019年04月01日 愚人节
2019年04月01日 复活节
2019年04月02日 国际儿童图书日
2019年04月04日 寒食节
2019年04月05日 清明节
2019年04月07日 世界卫生日
2019年04月11日 世界帕金森病日
2019年04月20日 谷雨
2019年04月22日 世界地球日
2019年04月23日 世界读书日
2019年04月26日 知识产权日
2019年04月30日 全国交通安全反思日
查看更多节日