PHP配置文件解析-php.ini与php-cli.ini、php-fpm.conf

php.ini是PHP解析器的配置文件
php-cli.ini是PHP命令行解析器的配置文件
php-fpm.conf是PHP-FPM进程管理器的配置文件,对单一进程进行配置
  • cli命令行模式与fpm模式

cli是命令行模式,直接在命令行运行。
FPM模式,fpm结合Nginx/Apache,作为其扩展对php文件进行处理。

当通过命令行(cli)执行php脚本时,使用的php-cli.ini配置
当通过FPM运行,使用的php.ini内的配置
//获取php.ini地址获取
php --ini 

//php-cli.conf配置命令行查看
php -ini

  • 注意(内存修改不起作用的问题)

pid:12583 Worker[12583] process terminated with ERROR: E_ERROR "Allowed memory size of 134217728 bytes exhausted (tried to allocate 995328 bytes)

1、当服务在命令行执行启动时,修改内存限制,需要修改php-cli.ini内的memory_limit参数,修改php.ini是不生效的。

2、当服务通过FPM模式,结合apache/nginx运行时,修改php.ini内的memory_limit。

此时如果php-fpm.conf或其引入的扩展文件对内存进行了配置,即php_admin_value[memory_limit]在扩展内配置(一般默认处于注释状态或不配置,将使用php.ini内的配置),将使用php_admin_value[memory_limit]内配置的内存值(phpinfo()内也将展示优先级最高的配置)。

这里是有一个优先级关系的,php-fpm.conf内配置的参数会覆盖php.ini内的配置

php-fpm.conf > ini_set( ) > php.ini

php_admin_value[memory_limit]=256 > 
ini_set('memory_limit', '256M')  >
memory_limit = 256M

关于memory_limit辅助文档 

<think>好的,我现在需要处理用户关于安装和配置PHP-FPMNginx的查询。首先,用户希望得到教程或指南,所以应该分步骤说明安装和配置过程,同时确保引用提供的三个参考资料中的信息。 首先,我需要回顾用户提供的三个引用内容。引用[1]提到了克隆一个GitHub项目,修改Nginx配置并启动服务。引用[2]讨论了php.iniphp-fpm.conf配置文件。引用[3]涉及使用systemctl启动Nginx和PHP-FPM服务,以及配置文件的介绍。这些信息需要整合到回答中。 接下来,用户的问题是关于安装和配置的教程,所以步骤应该包括安装、配置、启动服务以及验证。需要检查每个步骤是否在引用中有支持,比如安装命令、配置文件的位置、启动服务的命令等。 可能需要注意不同操作系统的差异,比如Ubuntu和CentOS的包管理器不同,但用户提供的引用中没有明确提到系统类型,所以可能需要保持一般性,或者假设使用常见的系统如Ubuntu。例如,安装Nginx和PHP-FPM可能使用apt-get或yum,但引用中没有具体说明,可能需要用通用命令,或参考引用中的信息。 引用[1]提到克隆项目到本地,并进入目录修改配置,这部分可能需要详细说明,比如用户是否需要使用这个特定的GitHub项目,或者是否需要手动配置。需要判断用户是否需要从零开始配置还是使用现有项目。可能两种方法都要提到,但根据引用中的信息,可能需要建议用户克隆项目作为示例,但也要说明手动配置的步骤。 配置部分,Nginx的配置文件需要指向PHP-FPM的socket或TCP端口。引用[2]提到php.iniphp-fpm.conf的配置,可能需要调整这些文件中的设置,比如listen = 127.0.0.1:9000或者使用Unix socket。引用[3]提到Nginx配置文件的位置,可能需要指导用户修改server块,添加处理PHP脚本的部分。 启动服务方面,引用[3]提到了使用systemctl启动nginx和php-fpm,所以需要包括这些命令。同时,可能需要提醒用户启用服务以便开机启动,比如systemctl enable。 验证部分,可能需要创建一个phpinfo文件并通过浏览器访问,确保Nginx正确处理PHP请求。此外,权限问题也是常见的,比如PHP-FPM的用户和组是否Nginx一致,可能需要检查www-data用户或类似。 最后,生成相关问题需要考虑用户可能的后续疑问,比如性能优化、常见错误处理、多站点配置等,基于安装和配置的步骤,提出相关的问题。 现在需要将上述思考整理成结构化的步骤,确保每个部分都有引用支持,并正确标注引用来源。同时,注意使用中文,行内公式正确,独立公式单独成段,但当前问题不涉及数学公式,所以可能不需要处理这部分。但需要遵守用户给出的系统级指令,比如使用正确的LaTeX格式,不过在这个问题中可能用不上,但需要确保其他格式正确,如代码块和引用标识。 总结步骤: 1. 安装Nginx和PHP-FPM:根据引用[2]和[3],使用包管理器安装,可能涉及apt或yum命令。 2. 配置PHP-FPM:编辑php.iniphp-fpm.conf(引用[2]),确保监听方式正确。 3. 配置Nginx:修改nginx.conf或sites-available中的server块,处理PHP请求(引用[1]和[3])。 4. 启动服务:使用systemctl启动并启用服务(引用[3])。 5. 验证配置:创建测试PHP文件,检查是否解析正确。 6. 权限和优化:调整用户/组,日志配置等(引用[2]可能涉及)。 需要确保每个步骤中的具体命令和文件路径正确,并正确标注引用来源。例如,启动服务的命令来自引用[3],配置文件的修改来自引用[1]和[2]。 可能需要注意用户是否需要详细代码示例,比如具体的Nginx配置块,PHP-FPM的配置参数。例如,在Nginx的server块中添加location ~ \.php$部分,指定fastcgi_pass的参数,这需要根据PHP-FPM的监听方式(如127.0.0.1:9000或unix socket)。 此外,用户提供的引用中有GitHub项目,可能需要建议用户参考该项目,如引用[1]中的项目,以便获取示例配置,但也要说明手动配置的方法。 最后,生成相关问题要考虑用户可能的后续需求,比如如何配置多个站点、HTTPS设置、性能调优、日志管理等。</think>### 分步安装配置PHP-FPMNginx教程 以下是安装和配置PHP-FPMNginx的核心步骤: --- #### **1. 安装NginxPHP-FPM** - **Ubuntu/Debian系统** ```bash sudo apt update sudo apt install nginx php-fpm php-cli ``` - **CentOS/RHEL系统** ```bash sudo yum install epel-release sudo yum install nginx php-fpm php-cli ``` 安装完成后,验证PHP-FPM版本: ```bash php-fpm -v ``` --- #### **2. 配置PHP-FPM** - **修改PHP配置文件** 编辑`php.ini`(路径通常为`/etc/php/<版本>/fpm/php.ini`)[^2]: ```ini cgi.fix_pathinfo=0 # 提升安全性 ``` - **调整PHP-FPM监听方式** 修改`php-fpm.conf`或池配置文件(如`www.conf`)[^2],确保监听地址Nginx匹配: ```ini listen = /run/php/php-fpm.sock # 使用Unix Socket(推荐) ; 或 listen = 127.0.0.1:9000 # 使用TCP端口 ``` 设置用户和组Nginx一致(例如`www-data`)。 --- #### **3. 配置Nginx** - **修改Nginx虚拟主机配置** 编辑站点配置文件(如`/etc/nginx/sites-available/default`),添加PHP支持[^1][^3]: ```nginx server { listen 80; server_name example.com; root /var/www/html; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php-fpm.sock; # PHP-FPM监听方式一致 # 或 fastcgi_pass 127.0.0.1:9000; } } ``` - **检查配置语法并重载服务** ```bash sudo nginx -t sudo systemctl reload nginx ``` --- #### **4. 启动验证服务** - **启动并启用服务** ```bash sudo systemctl start nginx php-fpm sudo systemctl enable nginx php-fpm ``` - **创建测试文件** 在网站根目录(如`/var/www/html`)创建`info.php`: ```php <?php phpinfo(); ?> ``` 访问`http://服务器IP/info.php`,若显示PHP信息页面则配置成功。 --- #### **5. 权限日志管理** - **确保文件权限正确** Nginx用户(如`www-data`)需有网站目录的读取权限: ```bash sudo chown -R www-data:www-data /var/www/html ``` - **查看日志排查问题** - Nginx错误日志:`/var/log/nginx/error.log` - PHP-FPM日志:`/var/log/php-fpm.log` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红尘炼炼心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值