一、背景介绍
PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。 PHP同时支持面向对象和面向过程的开发,使用上非常灵活。
二、卸载其他版本
停止运行
1)、通过ps命令
ps axf | grep php-fpm

2)、得到上述进程id
master进程可以理解以下信号INT, TERM 立刻终止QUIT 平滑终止USR1 重新打开日志文件USR2 平滑重载所有worker进程并重新载入配置和二进制模块
3)、关闭进程
kill -INT 27761
删除旧的版本
1)、如果是yum安装
yum remove phpxxx具体版本
2)、如果是源码安装
rm -rf php目录
三、安装
1)、安装依赖
yum install mysql-devel -yyum install libxml2 -yyum install libxml2-devel -yyum install curl curl-devel -yyum install -y libicu-develyum install gcc-c++ -yyum -y install unixODBC-*yum -y install postgresql-develyum install libtidy-devel libtidy -yyum install nc -yyum install -y libjpeg-turbo-devel libpng-devel freetype-devel libtiff-devel libXpm-devel libwebp-devel fontconfig-develyum install autoconf -y
1)下载源码并解压
下载wget https://www.php.net/distributions/php-7.2.13.tar.gz解压tar -zxvf php-7.2.13.tar.gz进入源码目录cd /usr/local/src/php-7.2.13
2)编译和安装
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/etc/php.d --with-fpm-user=www --with-fpm-group=www --enable-fpm --enable-mysqlnd --enable-opcache --enable-pcntl --enable-mbstring --enable-soap --enable-zip --enable-calendar --enable-bcmath --enable-exif --enable-intl --with-mysqli --with-pdo-mysql --with-pdo-odbc=unixODBC,/usr/ --with-pdo-pgsql --with-zlib --with-curl --with-freetype-dir --with-gettext --with-mhash --with-openssl --with-tidy --enable-wddx --with-xmlrpc --with-jpeg-dir#安装makemake install
扩展安装
以event为例
### install eventcd /usr/local/src/php-7.2.13tar zxvf event-2.5.4.tar.gzcd event-2.5.4/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmakemake install
将生成的.so文件添加到php.ini中,然后重启php-fpm
四、php配置
在这个 /usr/local/php/etc/php-fpm.conf配置文件修改
pid = /usr/local/php/var/run/php-fpm.piderror_log = /var/run/log/php-fpm.loginclude=/usr/local/php/etc/php-fpm.d/*.conf
下面是php配置文件www.conf的主要几项配置
[www]user = wwwgroup = wwwlisten = 127.0.0.1:9000pm = static# 根据自己的服务器配置进行设定pm.max_children = 20pm.start_servers = 2pm.min_spare_servers = 1pm.max_spare_servers = 3#根据自己的需要来设定upload_max_filesize=10M
五、启动、停止、管理
使用服务systemctl来管理
1、新建服务管理文件/usr/lib/systemd/system/php-fpm.service
[Unit]Description=The PHP FastCGI Process ManagerAfter=network.target[Service]Type=simplePIDFile=/usr/local/php/var/run/php-fpm.pidExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.confExecReload=/bin/kill -USR2 $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target
2、重新加载配置
执行命令 systemctl daemon-reload
3、常用命令
systemctl start php-fpmsystemctl status php-fpmsystemctl stop php-fpmsystemctl restart php-fpmsystemctl enable php-fpmsystemctl didable php-fpm
六、nginx的配置
现在都是单入口应用,基本都是php接管请求。nginx的配置添加到http的配置段落里面
location / {try_files $uri $uri/ /index.php?$query_string;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}location ~* \.php$ {fastcgi_index index.php;fastcgi_pass 127.0.0.1:9000;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param SCRIPT_NAME $fastcgi_script_name;}
