Author: admin

Nginx+php FastCGI到底是谁影响超时时间

需求

一个php程序要跑一段时间,但是时间不确定。

问题

当该php程序运行超过一段时间被强制断开连接。

PHP本身超时处理

在 php.ini 中,有一个参数 max_execution_time 可以设置 PHP 脚本的最大执行时间,但是,在 php-cgi(php-fpm) 中,该参数不会起效。真正能够控制 PHP 脚本最大执行时:

    

如何为开源PHP软件包做贡献

介绍

鉴于即将举行的Hacktoberfest,我想为初学者分享一些技巧,这些初学者可能想专门为PHP 软件包做出第一笔贡献。从我自己的经验来看,与“常规”(Laravel)应用程序相比,在一个程序包上工作可能看起来很艰巨。

这篇文章旨在为初学者贡献一些开源PHP软件包的指导。…

        

使用Composer时的PHP部署最佳实践

Composer是PHP应用程序的事实依赖管理器,最初在大约8年前于2012年3月发布。

在PHP中使用Composer可用于提高代码的可重用性,并使您的项目能够轻松地集成来自主要PHP Composer仓库Packagist的维护的PHP库。今天,我们将重点介绍一些部署最佳实践。

composer会变慢

这篇文章将重点介绍如何使Composer更快,以及在每次部署应用程序时无需重新安装Composer就可以安装软件包。

Magento是需要大量内存的Composer项目的一个示例。您能想象如果需要为每个部署进行composer安装时需要多少内存?Composer可能会因“内存不足”错误而失败,此错误将在此Stack Overflow帖子中进行介绍

尽管将软件包添加到项目很容易,但出于以下原因,在Amezmo,我们采用保守的方法添加新的项目依赖项。

  • 减慢初始 composer install
  • 每个composer软件包都会增加出现新安全问题的机会

最佳实践

这是不言而喻的。审核我们的composer.json文件,当然删除所有不需要的程序包引用。

第二个,这就是我发表这篇文章的原因,是要确保您使用以下标志运行composer。

composer
    --no-ansi \
    --no-interaction \
    --optimize-autoloader \
    --no-progress \
    
        

彻底弄懂浏览器缓存策略

Web 缓存介绍

  • Web 缓存是指一个 Web 资源(如 html 页面,图片,js,数据等)存在于 Web 服务器和客户端(浏览器)之间的副本。
  • 缓存会根据进来的请求保存输出内容的副本;当下一个请求来到的时候,如果是相同的 URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求。
            

一文详解PHP的内存泄露

FPM 的黑魔法

首先,传统的跑在 FPM 下的 PHP 代码是没有“内存泄漏”一说的,所谓的内存泄漏就是忘记释放内存,导致进程占用的物理内存(附1)持续增长,得益于 PHP 的短生命周期,PHP 内核有一个关键函数叫做php_request_shutdown此函数会在请求结束后,把请求期间申请的所有内存都释放掉,这从根本上杜绝了内存泄漏,极大的提高了 PHPer 的开发效率,同时也会导致性能的下降,例如单例对象,没必要每次请求都重新申请释放这个单例对象的内存。(这也是Swoolecli方案的优势之一,因为 cli 请求结束不会清理内存)。…

如何选择软件版本,是选择一般版本,还是LTS长期支持版本?

如何选择软件版本,是选择一般版本,还是LTS长期支持版本?我们以laravel为例。

很久以前在一个话题里面聊到的观点,很多同学在 Laravel 版本选择时候比较混淆,这里说下我的看法。

对 Laravel 框架发布周期不熟悉的同学请参阅 - Laravel 的发布路线图。

什么是 LTS
首先你需要明白 LTS 的概念。…

优化 PHP 和 Laravel 以提高 Web 应用的性能

 

Laravel 有很多东西。但是快不是其中之一。让我们学习一些优化技巧,以加快运行速度!

自从 Laravel 诞生以来,没有一个 PHP 开发人员不受她的影响。他们是喜欢 Laravel 提供的快速开发的初级或中级开发人员,或者是由于市场压力而被迫学习 Laravel 的高级开发人员。

不管怎样,不可否认的是,Laravel 已经振兴了 PHP 生态系统(我确定,如果没有 Laravel,早就离开了 PHP 世界了)。