linux - 怎样让 php 在 cli 与 fpm 环境下运行时加载不同的扩展 ?
问题:
由于开启了 xdebug 扩展, 导致使用 composer 时提示:
<code>You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug </code>
所以想在 cli 下不再加载 xdebug
环境:
linux 为 archlinux
php 通过 pacman 安装, 版本 7.0.1
web服务通过 php-fpm 运行
配置文件分布:
<code>/etc/php ├── conf.d │ └── xdebug.ini ├── fpm.d ├── pear.conf ├── php-fpm.conf ├── php-fpm.d │ └── www.conf ├── php.ini └── php.ini.pacnew </code>
对比 ubuntu 下 通过 apt 安装的 php 配置文件分布:
<code>/etc/php5/ ├── cli │ ├── conf.d │ └── php.ini ├── fpm │ ├── conf.d │ │ ├── 20-xdebug.ini -> ../../mods-available/xdebug.ini │ ├── php-fpm.conf │ ├── php.ini │ └── pool.d │ └── www.conf └── mods-available └── xdebug.ini </code>
---update ---
https://launchpadlibrarian.net/92790964/buildlog_ubuntu-hardy-amd64.php5_5.2.4-2ubuntu5.23_BUILDING.txt.gz
https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/php
在不自行编译安装,重新指定各项config参数
的情况下, 也只好手动指定 php.ini 运行了
回复内容:
问题:
由于开启了 xdebug 扩展, 导致使用 composer 时提示:
<code>You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug </code>
所以想在 cli 下不再加载 xdebug
环境:
linux 为 archlinux
php 通过 pacman 安装, 版本 7.0.1
web服务通过 php-fpm 运行
配置文件分布:
<code>/etc/php ├── conf.d │ └── xdebug.ini ├── fpm.d ├── pear.conf ├── php-fpm.conf ├── php-fpm.d │ └── www.conf ├── php.ini └── php.ini.pacnew </code>
对比 ubuntu 下 通过 apt 安装的 php 配置文件分布:
<code>/etc/php5/ ├── cli │ ├── conf.d │ └── php.ini ├── fpm │ ├── conf.d │ │ ├── 20-xdebug.ini -> ../../mods-available/xdebug.ini │ ├── php-fpm.conf │ ├── php.ini │ └── pool.d │ └── www.conf └── mods-available └── xdebug.ini </code>
---update ---
https://launchpadlibrarian.net/92790964/buildlog_ubuntu-hardy-amd64.php5_5.2.4-2ubuntu5.23_BUILDING.txt.gz
https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/php
在不自行编译安装,重新指定各项config参数
的情况下, 也只好手动指定 php.ini 运行了
使用两个不同的 php.ini 配置文件配置不同的运行参数(包括扩展参数),在开启 cli 或者 fpm 时,通过 -c 参数指定运行所使用的 php.ini 即可。
PHP和PHP-FPM都可以用参数-c指定php.ini配置文件.
执行下列命令可见:
<code>strace -f -o strace.log \ /png/php/5.4.45/bin/php -v && \ cat strace.log|egrep 'open|read'|grep 'ini' 3080 open("/png/php/5.4.45/bin/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 3080 open("/png/php/5.4.45/lib/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 3080 open("/png/php/5.4.45/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 3080 open("/png/php/5.4.45/lib/php.ini", O_RDONLY) = 3 </code>
PHP会优先读取php程序所在目录下的php-cli.ini,访问到则不再读取其他ini文件.
PHP-FPM情况如下:
<code>strace -f -o strace.log \ /png/php/5.4.45/sbin/php-fpm -v && \ cat strace.log|egrep 'open|read'|grep 'ini' 3537 open("/png/php/5.4.45/lib/php-fpm-fcgi.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 3537 open("/png/php/5.4.45/lib/php.ini", O_RDONLY) = 3 </code>
PHP-CGI情况如下:
<code>strace -f -o strace.log \ /png/php/5.4.45/bin/php-cgi -v && \ cat strace.log|egrep 'open|read'|grep 'ini' 3568 open("./php-cgi-fcgi.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 3568 open("/png/php/5.4.45/bin/php-cgi-fcgi.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 3568 open("/png/php/5.4.45/lib/php-cgi-fcgi.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 3568 open("./php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 3568 open("/png/php/5.4.45/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) 3568 open("/png/php/5.4.45/lib/php.ini", O_RDONLY) = 3 </code>
可以把cli目录下的conf.d 的20-xdebug.ini 设置为禁用应该就可以了

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

CentOS 和 Ubuntu 的关键差异在于:起源(CentOS 源自 Red Hat,面向企业;Ubuntu 源自 Debian,面向个人)、包管理(CentOS 使用 yum,注重稳定;Ubuntu 使用 apt,更新频率高)、支持周期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社区支持(CentOS 侧重稳定,Ubuntu 提供广泛教程和文档)、用途(CentOS 偏向服务器,Ubuntu 适用于服务器和桌面),其他差异包括安装精简度(CentOS 精

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

CentOS 安装步骤:下载 ISO 映像并刻录可引导媒体;启动并选择安装源;选择语言和键盘布局;配置网络;分区硬盘;设置系统时钟;创建 root 用户;选择软件包;开始安装;安装完成后重启并从硬盘启动。

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

如何使用 Docker Desktop?Docker Desktop 是一款工具,用于在本地机器上运行 Docker 容器。其使用步骤包括:1. 安装 Docker Desktop;2. 启动 Docker Desktop;3. 创建 Docker 镜像(使用 Dockerfile);4. 构建 Docker 镜像(使用 docker build);5. 运行 Docker 容器(使用 docker run)。

PHP在过去几十年中塑造了网络,并将继续在Web开发中扮演重要角色。1)PHP起源于1994年,因其易用性和与MySQL的无缝集成成为开发者首选。2)其核心功能包括生成动态内容和与数据库的集成,使得网站能够实时更新和个性化展示。3)PHP的广泛应用和生态系统推动了其长期影响,但也面临版本更新和安全性挑战。4)近年来的性能改进,如PHP7的发布,使其能与现代语言竞争。5)未来,PHP需应对容器化、微服务等新挑战,但其灵活性和活跃社区使其具备适应能力。
