共计 1750 个字符,预计需要花费 5 分钟才能阅读完成。
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 新的货色。
创作不易,欢送探讨,感激反对!