服务器部署篇(四):使用现代化工具 Capistrano 自动部署应用代码到生产环境

PHP 代码早期使用 FTP 部署到生产环境,不过这种方式显然不适合集群部署,也不安全,本教程主要讨论如何使用现代化工具自动部署,这种方式简单、可预知结果,而且可逆。 版本控制 把代码纳入版本控制是现代开发人员的基本素养,我们可以使用 Git,也可以使用 SVN,对于应用开发者来说,版本控制有助于记录代码的变化,我们可以把一个时间点的代码标记为发布版本,可以回滚到之前的状态,还可以在单独…

服务器部署篇(三):php.ini 配置调优 —— 让 PHP 应用性能维持在更高水平

上一篇我们讨论了如何配置运行 PHP 应用的服务器,接下来我们要讨论的是如何调优服务器,让 PHP 应用的性能维持在更高水平。 默认安装的 PHP 就像是在百货商店里购买的普通套装,虽然合身,却不完美。调优的 PHP 就像是定做的套装,完全匹配你的尺寸。不过,需要注意的是,调优 PHP 只是提升 PHP 性能和效率的举措,对拙劣的代码和无响应的 API 调用无计可施。 php.ini文件…

服务器部署篇(二):在服务器上对 PHP-FPM 和 Nginx 进行安装配置详解

PHP-FPM PHP-FPM(PHP FastCGI Process Manager),是用于管理 PHP 进程池的软件,用于接收和处理来自 Web 服务器(如Nginx)的请求。PHP-FPM会创建一个主进程(通常以操作系统中根用户的身份运行),控制何时以及如何把 HTTP 请求转发给一个或多个子进程处理。PHP-FPM 主进程还控制着什么时候创建和销毁 PHP 子进程。PHP-FP…

[ PHP 内核与扩展开发系列] INI 配置文件:声明和访问 php.ini 设置

在前面的章节中,我们已经学会了 MINIT、MSHUTDOWN,以及 RINIT 和 RSHUTDOWN 等函数的使用,这里我们将介绍并学习 php.ini 设置的使用。 INI 条目被定义在一个完整的独立块,位于 MINIT 方法所在的同一个源文件,并且用下面的一对宏来定义,并在这对宏之间放入一个或者多个条目:PHP_INI_BEGIN() 和 PHP_INI_END()。 这些宏方法…

[ PHP 内核与扩展开发系列] PHP 启动与终止那点事:MINFO 与 phpinfo() 函数

如果你并不打算做出一个只有你自己使用的扩展,那么你可能需要告诉用户一些关于你的扩展的信息。比如:其环境和特定版本的可用功能、版本信息、作者信息,以便在发生问题的时候可以寻求帮助,甚至可以加上一个 LOGO 等等。 如果你仔细看过 phpinfo() 或者 php -i 的输出,相信你已经注意到,所有这些信息会组合成一个格式良好的、易于解析输出的数据块。你的扩展可以轻松地通过模块信息函数 …

通过 PHP OPcache 让你的 Laravel 应用运行速度飞起来

什么是 Opcache 每一次执行 PHP 脚本的时候,该脚本都需要被编译成字节码,而 OPcache 可以对该字节码进行缓存,这样,下次请求同一个脚本的时候,该脚本就不需要重新编译,这极大节省了脚本的执行时间,从而让应用运行速度更快,同时也节省了服务器的开销。 用数字说话 我们当然很想知道到底进行了怎样的优化,尽管性能提升高度依赖于应用和服务器的配置,不过我们可以通过运行基准测试(be…

[ PHP 内核与扩展开发系列] 配置编译环境并编译安装 PHP

准备工作 从一个 PHP 程序员,到一个想为 PHP 开发扩展的程序员,此间的进化有一步是跳不过去的,那就是你必须熟知如何编译 PHP 的源码。 *nix Tools C 语言的编译器是我们使用 C 语言的必备工具,你的系统应该已经自带了一种 C 语言的编译器,而且它极有可能是大名鼎鼎的 gcc。通过检测你本机 gcc 或者 cc 程序的版本,可以很方便的知道你机器上是否已经安装的某种 …

[ Laravel 5.4 文档 ] 综合话题 —— 包开发

1、简介 包是添加功能到 Laravel 的主要方式。包可以提供任何功能,小到处理日期如 Carbon,大到整个 BDD 测试框架如 Behat。 当然,有很多不同类型的包。有些包是独立的,意味着可以在任何框架中使用,而不仅是 Laravel。比如 Carbon 和 Behat 都是独立的包。所有这些包都可以通过在 composer.json 文件中请求以便被 Laravel 使用。 另…

[ Laravel 5.4 文档 ] 起步 —— 配置

1、简介 Laravel 的所有配置文件都存放在 config 目录下,每个配置项都有注释,以保证浏览任意配置文件的配置项都能直观了解该配置项的作用。 2、环境配置 基于应用运行的环境不同设置不同的配置值能够给我们开发带来极大的方便,比如,我们通常在本地和线上环境配置不同的缓存驱动,这一机制在 Laravel 中很容易实现。 Laravel 使用 Vance Lucas 开发的 PHP …

[ Laravel 5.4 文档 ] 起步 —— 安装

1、服务器要求 Laravel 框架有对服务器有少量要求,当然,Laravel Homestead 已经满足所有这些要求,所以我们强烈推荐使用 Homestead 作为 Laravel 本地开发环境(Mac的话还可以使用Valet作为本地开发环境)。 不过,如果你没有使用 Homestead,那么需要保证开发环境满足以下要求: PHP版本 >= 5.6.4 PHP扩展:OpenSS…