美文网首页
浅析php环境配置

浅析php环境配置

作者: Websoft9 | 来源:发表于2020-12-14 17:35 被阅读0次

    PHP 作为开源的服务器端脚本语言,在web应用方面非常广泛。如果你想下载某些开源应用,github上php开源软件选择往往比Java还多。

    最近,研究了linux下php的安装,主要有以下体会。

    PHP-INI

    php.ini文件是php的核心配置文件且只能命名为php.ini,它是对php应用程序全局起作用的设置文件,里面选项非常多,包含php页面使用内存大小限制,上传下载文件大小限制,浮点型的精度等。

    FPM-PHP

    fpm-php(FastCGI ProcessManager)本来是php的第三方包,在php5.3.3后成为了php的核心成员,不需要单独下载安装。

    FastCGI诞生之前,web端转发一个php请求后,需要重新加载php.ini,通过fpm-php创建master进程,收到多个php请求,创建子进程来共享master进程加载的php.ini信息。

    安装fpm-php后,启动php实际上通过启动的fpm-php.service来实现。fpm-php和web之间的通信可以通过两种方式实现,socket和tcp方式,通过/etc/php-fpm.d/www.conf的配置来配置。

    两种方式的差异主要在listen的配置不一样。一个是php-fpm.sock,一个是服务器的ip:9000。

    socket方式是长连接方式,适用于php和其他服务在同一台服务器上

    [www]
    user = nginx
    group = nginx
    listen = /run/php-fpm.sock
    

    tcp方式是http请求方式,适用于集群并发量高的多服务器上

    [www]
    user = nginx
    group = nginx
    listen = 127.0.0.1:9000
    

    再谈进程如何分配,以下面配置来说。

    start_servers=10说明php服务就启动10个worker子进程一直处于等待中,min_spare_servers=5是指最小活动进程。php启动时开启8个进程,如果没有收到web请求,fpm-php就会释放一些,最终达到5个进程。

    但是最大不能超过max_spare_servers = 35。至于max_children=50,那是静态配置方式,不变的,是一种浪费资源的方式,一直启动50个进程再那里等待,即使网站应用没有一个人访问也是一样。

    pm.max_children = 50
    pm.start_servers = 10
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    

    扩展包

    仅安装php往往不能满足应用软件的需求,还需要其他很多扩展包来支持php应用。

    例如,【odbc,common,ima,mongodb,xml等】,但是需要注意的是安装的时候下面这些包是基于pecl的【apcu,imagick,goeip,mcrypt,redis,zip,memcache】。

    尤其,zip包特别需要指定pecl,否则扩展包安装不成功,其他pecl包可以从remi源中自动找到响应包。

    yum install php-common
    yum install php-apcu
    yum install php-pecl-zip
    

    web服务器相关配置

    php和web服务器nginx,apache还需要做一些关联配置,在他们的配置文件里面加入以下:

    nginx:
    location ~ .*\.php$
    {
        fastcgi_pass  unix:/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
        try_files $uri = 404;
    }
    
    apache:
    <FilesMatch \.php$>
      SetHandler "proxy:unix:/run/php-fpm.sock|fcgi://localhost"
    </FilesMatch>
    

    但是,ubuntu系统下PHP应用使用apache服务器的情况下,需要配置,否则相反apache服务器报错无法启动。

    以上对php的配置理解,今后随着对它研究的加深,还会写一些关于php新的东西。

    本文由Websoft9原创发布,转载请注明出处。

    相关文章

      网友评论

          本文标题:浅析php环境配置

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