linux-php安装优化

1. 前言
2. 安装
2.1. php扩展编译
3. 相关参数说明
3.1. php-fpm.conf
4. windows_php

1. 前言

记录一个php的安装过程,仅作为个人使用记录,可参考
基础环境:

  1. CentOS 7.6
  2. php 5.6.38

2. 安装

[root@00 ~]# mkdir /opt/software [root@00 ~]# cd /opt/software [root@00 software]# useradd -d /var/ftproot -s /sbin/nologin www [root@00 software]# yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel openssl openssl-devel mhash libmcrypt-devel mcrypt [root@00 software]# wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz --no-check-certificate [root@00 software]# tar xzf libiconv-1.15.tar.gz [root@00 software]# cd libiconv-1.15 [root@00 libiconv-1.15]# ./configure --prefix=/usr/local/libiconv [root@00 libiconv-1.15]# make && make install ## ---- 过程省略 ---- ## ## ---- 过程错误自行排查 ---- ## [root@00 libiconv-1.15]# cd /opt/software [root@00 software]# wget http://mirrors.sohu.com/php/php-5.6.38.tar.gz [root@00 software]# tar -xzf php-5.6.38.tar.gz [root@00 php-5.6.38]# cd php-5.6.38 ## 标准的生产环境编译参数(nginx) ## ------------------------ ## ## apache取消以下参数(apache+php时是不需要将php启动的,php是将模块直接编译进入apache的) ## --enable-opcache=no ## --enable-fpm ## --with-fpm-user=www ## --with-fpm-group=www ## 添加以下参数,指向apache的apxs ## --with-apxs2=/opt/apache/bin/apxs ## ------------------------ ## [root@00 php-5.6.38]# ./configure \ --prefix=/opt/php5.6.38 \ --with-config-file-path=/opt/php5.6.38/etc \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-iconv-dir=/usr/local/libiconv \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir \ --enable-xml \ --disable-rpath \ --disable-debug \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --with-curl \ --enable-mbregex \ --enable-fpm \ --enable-mbstring \ --with-mcrypt \ --with-gd \ --enable-gd-native-ttf \ --with-openssl \ --with-mhash \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-zip \ --enable-soap \ --enable-short-tags \ --enable-static \ --with-xsl \ --with-fpm-user=www \ --with-fpm-group=www \ --enable-ftp \ --enable-opcache=no # # --enable-opcache 此扩展可能不稳定,因此关闭, # 也可以使用--disable-opcache 进行关闭,默认是启用的 # (现当前版本不知道是否稳定些了) # # 5.3 添加的额外参数 # --with-curlwrappers # --enable-safe-mode # --enable-zend-multibyte [root@00 php-5.6.38]# make && make install ## ---- 过程省略 ---- ## ## ---- 过程错误自行排查 ---- ## [root@00 php-5.6.38]# cp -v ./php.ini-production /opt/php5.6.38/etc/php.ini [root@00 php-5.6.38]# cp -v /opt/php5.6.38/etc/php-fpm.conf.default /opt/php5.6.38/etc/php-fpm.conf [root@00 php-5.6.38]# ln -s /opt/php5.6.38/ /opt/php # 优化路径,用于后续可能的升级 ## --- 安装完成 --- ##

若需要将php-fpm 加入到系统服务当中, 在/opt/software/php-5.6.38/sapi/fpm目录下,将php-fpm.service文件中对应的${prefix}${exec_prefix}改为程序编译后的对应目录,让后将文件cp/usr/lib/systemd/system/下, 然后执行systemctl daemon-reload重加载即可,然后就可以使用systemctl {start|stop|restart} php-fpm.servicesphp-fpm进行管理了(CentOS 6.x 的不知道)

2.1 php 扩展编译

扩展安装的操作步骤(以xcache为例):

  1. 下载需要安装的扩展源码,解压进去后,先执行 /opt/php5.6.38/bin/phpize 生成configure配置文件
  2. 配置当前扩展编译./configure --enable-xcache --with-php-config=/opt/php5.6.38/bin/php-config
  3. 编译并安装 make && make install,编译并安装成功后会在/opt/php5.6.38/lib/php/extensions目录下生成对应目录,里面包含一个xcache.so的文件.

3. 相关参数说明

3.1. php-fpm.conf

pid = run/php-fpm.pid error_log = log/php-fpm.log user = www group = www # 设置接受 FastCGI 请求的地址 可为socket路径,(socket默认位置php根目录) listen = 127.0.0.1:9000 #允许连接到 FastCGI 的服务器 IPV4 地址 listen.allowed_clients = 127.0.0.1 # 设置进程管理器如何管理子进程,dynamic动态设置,必须配合 # pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers参数进行设置 pm = dynamic # 设置最大可创建的子进程的数量(仅代表动态设置) pm.max_children = 300 # 设置启动时创建的子进程数目 pm.start_servers = 30 # pm.*_spare_servers 设置空闲服务进程的最低/最大数目 pm.min_spare_servers = 30 pm.max_spare_servers = 300 # 设置每个子进程重生之前服务的请求数 pm.max_requests = 65535 # 设置文件打开描述符的 rlimit 限制,默认系统定义值 rlimit_files = 65535

详细参数说明:

https://secure.php.net/manual/zh/install.fpm.configuration.php

4. windows_php

  1. iis 可直接安装为web-platfrom,然后搜索php manager

https://www.iis.net/downloads/microsoft/web-platform-installer

  1. 若无法正常使用,需要先安装vc2012

  2. 1无法安装,一般只是php manager无法安装,而url重写模块是安装好了的,这个时候直接去github上去下载一个整合的phpmanager,安装即可。

https://github.com/phpmanager/phpmanager/releases/tag/v2.0

  1. 上述第三步,也有可能url重写模块也未安装成功,这个时候需要去microsoft官网下载一个重写模块即可。另如果通过为web-platfrom安装phpmanager失败后安装的url重写模块,可能会导致iis中的.net程序异常,这个时候也需要手动卸载通过web-platfrom安装的url重写模块,然后安装microsoft下载的对应重写模块,理论上来说iis中安装的这个应该就是官网提供的,但是我遇到过的一次就是不行,卸载后重新安装官网的后,.net就正常了。