温馨提示×

php配置中centos网络设置有哪些

小樊
44
2025-11-27 17:43:03
栏目: 编程语言

CentOS 网络设置与 PHP 相关要点

一、操作系统层面的网络设置

  • 网卡配置文件路径与关键参数
    配置文件位于:/etc/sysconfig/network-scripts/ifcfg-<接口名>(如 ifcfg-eth0、ifcfg-ens33)。常用参数:DEVICE、BOOTPROTO=static|dhcp、ONBOOT=yes、IPADDR、NETMASK、GATEWAY、DNS1/DNS2。修改后执行:systemctl restart network(或按系统版本执行相应重启命令)。示例片段:
    DEVICE=eth0
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=223.5.5.5
    DNS2=8.8.8.8
    说明:接口名可能为 eth0/ens33/enp0s3 等,需以实际为准。DNS也可写入 ifcfg 的 DNS1/DNS2 字段,由网络服务统一应用。

  • 主机名与网关
    全局主机名与网关可在:/etc/sysconfig/network 中设置,例如:
    NETWORKING=yes
    HOSTNAME=web01.example.com
    GATEWAY=192.168.1.1
    修改后同样需要重启网络服务使生效。

  • 防火墙放行 Web 访问
    CentOS 7 常用 firewalld
    firewall-cmd --permanent --add-service=http
    firewall-cmd --permanent --add-service=https
    firewall-cmd --reload
    如必须使用 iptables,可在 /etc/sysconfig/iptables 中添加规则放行 80/443(注意规则顺序)。

二、PHP 与网络相关的配置

  • 基础访问与资源限制(php.ini)

    • allow_url_fopen:是否允许通过 URL 使用文件/网络函数(如 file_get_contents)。
    • allow_url_include:是否允许通过 URL 包含文件(安全风险较高,生产常关闭)。
    • default_socket_timeout:套接字默认超时(秒),影响基于流的远程访问。
    • max_execution_time:脚本最大执行时间(秒),网络请求耗时需与之匹配。
    • post_max_size / upload_max_filesize:POST 与上传大小限制,影响接收与处理网络数据的能力。
  • 超时与 cURL 细粒度控制

    • cURL 建议显式设置:
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); // 连接超时(秒)
      curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 整个请求超时(秒)
    • 脚本层面可配合:set_time_limit(60); 与 default_socket_timeout 共同确保长时任务不被中断。
  • 套接字与 HTTP 上下文选项(流与 HTTP 封装)
    通过 stream_context_create/stream_context_set_option 可设置:

    • 套接字:bindto(绑定源地址)、tcp_nodelay(禁用 Nagle)、so_reuseport 等。
    • HTTP:method、header、user_agent、content、proxy、follow_location、max_redirects、timeout 等,用于精细控制 HTTP 客户端行为。
  • 启用网络相关扩展
    常见需求包括:extension=sockets(套接字)、以及数据库/缓存客户端扩展(如 php-mysqlnd 等),确保 PHP 具备网络通信与后端连接能力。

三、部署与连通性检查清单

  • 确认网卡与地址:ip addr;查看路由:ip route;测试外联:ping 8.8.8.8;解析测试:nslookup example.com。
  • 核对 DNS:cat /etc/resolv.conf;若使用 ifcfg 的 DNS1/DNS2,确认网络服务已重载。
  • 防火墙与端口:firewall-cmd --list-services 或 iptables -S;确保 80/443(或 FPM 端口)已放行。
  • PHP-FPM 监听与 Web 服务器对接:
    • FPM 池配置(如 /etc/php/<版本>/fpm/pool.d/www.conf)中的 listen(如 127.0.0.1:9000 或 unix socket)。
    • Nginx/Apache 与 FPM 的 fastcgi_pass 一致;修改后重启:systemctl restart php<版本>-fpm 与 Web 服务。
  • 应用层连通性:在 PHP 中测试 file_get_contents/curl 访问上游接口,验证超时与返回码;必要时调整 default_socket_timeout、max_execution_time、cURL 超时

0