美文网首页LNMP开发我用 Linux
[LNMP]php-fpm生产环境配置

[LNMP]php-fpm生产环境配置

作者: tumg的LNMP_IOS小集 | 来源:发表于2016-02-21 21:51 被阅读768次

    基础环境

    centos 6.x

    安装&启动

    目前php5.4 以上需编译安装(或remi源安装),本文档只针对php5.3版本,yum安装需配置epel的源,yum源配置详见[LNMP]Linux的Web服务基础配置
    <pre>
    yum install -y phpphp-fpm php-cli php-common php-pdo php-mysql php-mbstring php-mcrypt php-gdphp-xml php-pear php-pecl-apc php-pecl-memcache
    chkconfig php-fpm on
    service php-fpm start
    </pre>

    配置

    php配置

    由于php 配置较多,以下只列出生产环境需要配置的部分(检查以下配置),文件路径:/etc/php.ini
    <pre>
    ;debug、error、版本显示相关配置
    error_reporting =E_ALL & ~E_DEPRECATED
    display_errors =Off
    display_startup_errors= Off
    log_errors = On
    track_errors = Off
    html_errors = Off
    mysqlnd.collect_memory_statistics= Off
    session.bug_compat_42= Off
    session.bug_compat_warn= Off

    ;安全相关配置
    short_open_tag =Off
    expose_php = Off
    enable_dl = Off
    disable_functions= eval,passthru,exec,system,chroot,scandir,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,ini_set,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru

    ;时区配置
    date.timezone =Asia/Shanghai

    ;上传文件大小限制
    post_max_size =16M
    upload_max_filesize= 16M

    ;脚本执行时间限制
    max_execution_time= 60
    max_input_time =60

    ;脚本内存限制,一般设为128M,如非必要(无可避免的上传大文件/处理大数组)不增加

    memory_limit =128M
    </pre>

    php-fpm配置

    公共配置:/etc/php-fpm.conf,需要修改的参数如下,其余参数使用默认值
    <pre>
    ;设置pid
    pid =/var/run/php-fpm/php-fpm.pid

    ;错误日志处理
    error_log =/var/log/php-fpm/error.log
    log_level = notice

    ;异常自启(表示60s内出现 60次 SIGSEGV orSIGBUS 异常时候,自动重启)
    emergency_restart_threshold= 60
    emergency_restart_interval= 60s

    ;设置子进程接受主进程复用信号的超时时间
    process_control_timeout= 0

    ;后台执行php-fpm
    daemonize = yes
    </pre>

    资源池配置

    在/etc/php-fpm.d/*.conf(每个文件代表一个资源池,机器性能足够时候,可以区分多个资源池,隔绝不同的php应用),默认是 /etc/php-fpm.d/www.conf,需要修改的参数如下,其余参数使用默认值
    <pre>
    [www]
    ;监听方式,用tcp方式较稳定
    listen = 127.0.0.1:9000

    ;backlog,排队长度设置
    listen.backlog = 4096

    ;php-fpm进程的用户&用户组(即程序读写文件/目录所使用的用户&用户组)
    user = nobody
    group = nobody

    ;设置php-fpm进程,一般大于8G内存建议用 static 模式,max_children的计算方式,每个php-fpm进程约占 20~30M 的内存,根据预计给php-fpm的内存计算出合理值,例如预计给php-fpm 预留6G使用内存,那max_children 应设置为 200~300 之间
    pm = static
    pm.max_children = 300

    ;子进程接收n个请求后,自动重启
    pm.max_requests = 600

    ;慢处理日志,表示超过45秒则记录为慢处理
    request_slowlog_timeout = 45s
    slowlog = /var/log/php-fpm/www-slow.log
    </pre>

    相关文章

      网友评论

        本文标题:[LNMP]php-fpm生产环境配置

        本文链接:https://www.haomeiwen.com/subject/vevvkttx.html