标签 php 下的文章

当你在修改 php.ini 文件时出现错误读取锁文件,并且提到 .php.ini.swp 文件,这通常与Vim文本编辑器有关。

 .php.ini.swp 是Vim创建的交换文件,用于在编辑文件时保存临时数据和提供恢复功能。当Vim打开一个文件进行编辑时,它会创建一个交换文件来跟踪文件的更改。如果Vim意外关闭或出现错误,交换文件可以帮助恢复未保存的更改。

出现错误读取锁文件的提示,可能是因为有另一个程序或进程正在使用 php.ini 文件,或者交换文件已损坏。以下是一些可能的解决方法:

  • 检查文件是否被其他程序占用:确保没有其他文本编辑器或进程正在访问 php.ini 文件。如果有,关闭其他程序后再尝试修改。
  • 删除交换文件:如果交换文件损坏,可以尝试删除 .php.ini.swp 文件。但在删除之前,要确保你已经保存了 php.ini 文件中的重要更改。删除交换文件后,再次打开 php.ini 文件进行编辑。
  • 以管理员权限运行编辑器:如果你没有足够的权限访问或修改 php.ini 文件,尝试使用管理员权限运行文本编辑器,然后再进行修改。

修改 php.ini 通常涉及以下几个方面的常见配置:

性能优化

  •  memory_limit :设置PHP脚本可使用的最大内存量,如将其设置为 256M 以满足复杂脚本或处理大量数据的需求。
  •  max_execution_time :规定PHP脚本的最大执行时间,单位为秒。若脚本执行时间可能较长,可将其调大,如设置为 60 秒。
  •  opcache.enable :开启OPcache,可提高PHP脚本的执行速度。将其设置为 1 表示开启。

错误处理与日志

  •  display_errors :设置是否在页面上显示错误信息。开发环境可设为 On ,生产环境建议设为 Off ,以避免暴露敏感信息。
  •  error_reporting :指定报告哪些类型的错误。开发时可设为 E_ALL ,生产环境则根据实际情况选择,如 E_ERROR | E_WARNING | E_PARSE 。
  •  log_errors :设为 On 时,PHP会将错误信息记录到日志文件中,便于排查问题。

安全设置

  •  disable_functions :列出禁止PHP执行的函数,可防止一些危险操作,如 system 、 exec 等函数,根据安全需求进行配置。
  •  session.cookie_secure :设为 1 时,仅通过HTTPS连接发送会话Cookie,提高会话安全性。

数据库连接

  •  pdo_mysql.default_socket :指定PDO连接MySQL时使用的套接字文件路径,确保能正确连接到数据库。

文件上传

  •  upload_max_filesize :限制上传文件的最大大小,如设为 20M 。
  •  post_max_size :限制通过POST方法提交的数据最大大小,一般应大于 upload_max_filesize 。

如果 /etc/php/7.3/fpm/php.ini 文件不存在,可以从以下几个地方获取最初的配置文件:

PHP安装包:
在PHP 7.3的安装包中,通常会包含 php.ini 的示例文件,如 php.ini-production 和 php.ini-development 。这些示例文件位于安装包的特定目录下,解压安装包后可以找到。例如,在Linux系统中,从源代码编译安装PHP时,可在解压后的源代码目录中查找。
官方网站:
可以从PHP官方网站下载PHP 7.3的源代码或安装包,其中包含了默认的 php.ini 配置文件模板。
系统包管理器缓存:
如果是通过系统包管理器(如Linux中的 apt 、 yum 等)安装的PHP 7.3,包管理器可能会在本地缓存中保留安装包的副本。可以在包管理器的缓存目录中查找PHP安装包,并从中提取 php.ini 文件。例如,在使用 apt 的系统中,缓存目录可能是 /var/cache/apt/archives/ 。

找到示例文件后,将其复制到 /etc/php/7.3/fpm/ 目录下并命名为 php.ini ,然后根据实际需求进行修改配置即可。

FPM是“FastCGI Process Manager”的缩写,即“FastCGI进程管理器”。

FastCGI是一种交互程序(如PHP)与Web服务器之间的通信协议,旨在减少网页服务器与CGI程序之间交互的开销,使服务器能同时处理更多网页请求。PHP - FPM就是专门为PHP设计的FastCGI进程管理器,它提供了更好的PHP进程管理方式,能有效控制内存和进程、平滑重载PHP配置,相比其他类似工具具有更多优点。

在安装PHP 7.3后, fpm 的 php.ini 和 cli 下的 php.ini 分别用于配置不同运行环境下PHP的行为:

 /etc/php/7.3/fpm/php.ini 

主要用于配置PHP通过FastCGI进程管理器(FPM)运行时的相关设置。当PHP作为Web服务器(如Nginx或Apache)的后端,处理HTTP请求时,PHP - FPM会根据这个配置文件来初始化PHP环境。比如设置 listen 指定FPM监听的地址和端口, pm 相关配置用于控制FPM的进程管理,包括进程数、最大请求数等,这些设置对Web应用的性能和稳定性有重要影响。

 /etc/php/7.3/cli/php.ini 

用于配置PHP在命令行界面(CLI)下运行时的环境。当通过命令行执行PHP脚本,如运行定时任务(Cron Jobs)或执行一些命令行工具时,PHP会依据这个配置文件来启动。例如, cli 下的 php.ini 可以设置 error_reporting 来控制在命令行中显示的错误级别,还能配置 include_path 来指定命令行脚本查找包含文件的路径。

虽然两个配置文件有很多相同的配置项,但根据不同的运行场景,它们的一些配置值可能会有所不同,以满足各自环境的特定需求。