www.php.net
1.解压
[root@server1 ~]# yum install bzip2.x86_64
[root@server1 ~]# tar jxf php-7.4.12.tar.bz2
2.定制,同时解决依赖性
首先,创建一个用户,
之前运行nginx的是nobody
创建一个名为nginx的用户,PHP和nginx都使用这个用户
修改mysql的用户和用户组
[root@server1 ~]# useradd -M -d /usr/local/nginx/ -s /sbin/nologin nginx
[root@server1 ~]# id nginx
uid=1002(nginx) gid=1002(nginx) groups=1002(nginx)
[root@server1 ~]# cd /usr/local/nginx/
[root@server1 nginx]# cd conf/
[root@server1 conf]# ls
fastcgi.conf koi-win scgi_params
fastcgi.conf.default mime.types scgi_params.default
fastcgi_params mime.types.default uwsgi_params
fastcgi_params.default nginx.conf uwsgi_params.default
koi-utf nginx.conf.default win-utf
[root@server1 conf]# vim nginx.conf
[root@server1 conf]# nginx -s reload
如果此时报错
安装以下几个软件
[root@server1 php-7.4.12]# yum install -y systemd-devel.x86_64
[root@server1 php-7.4.12]# yum install -y libxml2-devel
[root@server1 php-7.4.12]# yum install -y sqlite-devel.x86_64
[root@server1 php-7.4.12]# yum install -y libcurl-devel
[root@server1 php-7.4.12]# yum install -y libpng-devel
[root@server1 test]# yum install -y oniguruma-6.8.2-1.el7.x86_64.rpm oniguruma-devel-6.8.2-1.el7.x86_64.rpm
3.编译
[root@server1 php-7.4.12]# make
[root@server1 php-7.4.12]# make install
4.通过脚本重载php。在编译php时,configure后加了systemd,会生成systemctl的启动后台,但是,好像没有生成到我们应该在的位置
将启动systemd的脚本/test/php-7.4.12/sapi/fpm/init.d.php-fpm拷贝到/etc/init.d/下,
设定执行权限
这是在systemd以前,最常用的启动方式
直接调用该脚本,系统会打印响应的帮助
[root@server1 php-7.4.12]# systemctl status php-fpm
Unit php-fpm.service could not be found.
[root@server1 php-7.4.12]# cd sapi/fpm/
[root@server1 fpm]# ls
config.m4 init.d.php-fpm.in php-fpm.8.in status.html.in
CREDITS LICENSE php-fpm.conf.in tests
fpm Makefile.frag php-fpm.service.in www.conf.in
[root@server1 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
cp: cannot stat ‘init.d.php-fpm’: No such file or directory
[root@server1 fpm]# cp init.d.php-fpm.in /etc/init.d/php-fpm
[root@server1 fpm]# chmod +x /etc/init.d/php-fpm
[root@server1 fpm]# ll /etc/init.d/php-fpm
-rwxr-xr-x 1 root root 2390 Apr 11 16:43 /etc/init.d/php-fpm
[root@server1 fpm]# /etc/init.d/php-fpm
Usage: /etc/init.d/php-fpm {start|stop|force-quit|restart|reload|status|configtest}
[root@server1 fpm]#
5.在安装路径里看到php-fpm.conf.default是php控制器的配置文件(模板)
拷贝其生成配置文件;
修改配置文件中PID的位置;
配置文件中全部都是注释的内容,要注意的是注释后面是否有默认值,该有的不能为空
[root@server1 fpm]# cd /usr/local/php/etc/ //安装路径
[root@server1 etc]# cp php-fpm.conf.default php-fpm.conf
[root@server1 etc]# vim php-fpm.conf
####
17 pid = run/php-fpm.pid //告诉系统,php的PID放在哪个位置
取消17行的注释
6.修改用户权限
[root@server1 etc]# cd php-fpm.d/
[root@server1 php-fpm.d]# ls
www.conf.default
[root@server1 php-fpm.d]# vim www.conf.default
23 user = nginx
24 group = nginx
[root@server1 php-fpm.d]# cp www.conf.default www.conf
[root@server1 php-fpm.d]# ls
www.conf www.conf.default
8.拷贝主配置文件,并启动php
php.ini-productionPHP的生产文件
PHP配置文件的命名方式一定是php.ini