当前位置: 首页 > news >正文

二进制安装php

下载php二进制包:

官网地址:https://www.php.net/releases/

PHP: Releasesicon-default.png?t=N7T8https://www.php.net/releases/在里边可以选择自己要下载的包进行下载;

下载完成后进行解压:

tar xvzf  php-7.3.12.tar.gz

解压后  进入目录进行预编译:

cd php-7.3.12

选择要编译的模块进行配置(我这选择了常用的模块,根据自己实际情况来进行选择模块编译):

./configure --prefix=/usr/local/php-7.3.12  --with-config-file-path=/usr/local/php/etc --with-mysqli --with-pdo-mysql --with-mysql-sock=/usr/local/mysql/mysql.sock --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-curl --with-gd --with-gmp --with-zlib --with-xmlrpc --with-openssl --without-pear --with-snmp --with-gettext --with-mhash --with-libxml-dir=/usr --with-ldap-lib=/usr/lib64 --with-ldap-sasl --with-fpm-user=nginx --with-fpm-group=nginx --enable-xml --enable-fpm  --enable-ftp --enable-bcmath --enable-soap --enable-shmop --enable-sysvsem --enable-sockets --enable-inline-optimization --enable-maintainer-zts --enable-mbregex --enable-mbstring --enable-pcntl --enable-zip --disable-fileinfo --disable-rpath --enable-libxml --enable-opcache --enable-mysql

这里我指定用户和用户组是nginx,因为我在这之前已经安装了nginx,用nginx来做web服务器;

预编译后出现以下提示可以视为预编译成功:

然后执行 编译以及安装:

make && make install

安装成功后:

在编译的源码包中,找到 php.ini-production,复制重命名为php.ini

[root@slave php-7.3.12]# pwd
/usr/local/php-7.3.12

cp -a php.ini-production php.ini

[可选项] 设置让PHP错误信息打印在页面上,在php.ini中找到如下配置并修改:

display_errors = On

将 php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0 。

vim /usr/local/php/php.ini
#定位到 cgi.fix_pathinfo= 并将其修改为如下所示:
cgi.fix_pathinfo=0

修改配置信息:

cd /usr/local/php-7.3.12/etc/
#修改当前目录下的配置文件php-fpm.conf.default为 php-fpm.confcp php-fpm.conf.default php-fpm.conf
#编辑一下php-fpm.conf
vim php-fpm.confpid = run/php-fpm.pid
user = www
group = www#在进入php-fpm.d 目录下 
cd php-fpm.d#修改当前目录下的配置文件 www.conf.default为  www.conf
cp www.conf.default www.conf

这里的user和group我直接在编译的时候指定的是nginx,所以我这里直接使用nginx,没有配置www

新建用户组及用户(如果修改配置中的用户的话)

groupadd wwwuseradd -g www www

启动停止php-fpm

启动

/usr/local/php-7.3.12/sbin/php-fpm

没有任何的输出,表示成功了!!!

php-fpm占用的是9000端口,我们查看下进程:

ps -ef|grep php-fpm

这个监听端口号可以修改,可以在www.conf文件中修改;

修改完需要重启php-fpm

停止php

我们在新安装扩展后,是需要重新php-fpm的,已使扩展生效。

最简单粗暴的重新php-fpm的方式是:

先找到php-fpm的进程号,kill 掉,再用/usr/local/php/sbin/php-fpm 这样启动。

其实还有更多温和的方法,就是使用信号。

INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块
示例

php-fpm 关闭:

kill -INT `cat /usr/local/php/var/run/php-fpm.pid`

php-fpm 重启:

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

然后可以在nginx中配置来测试php:

server {listen 80;server_name localhost;location / {root html;index index.html index.htm;}location ~ \.php$ {root /usr/share/nginx/html;fastcgi_pass 127.0.0.1:9001;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}

在/usr/share/nginx/html中写了一个index.php文件以便访问:

<?php
phpinfo();
?>

使用phpinfo()函数可以在浏览器上查看php详细信息:

可参考:Linux编译安装PHP7.4.24及启动_linux安装php7.4-CSDN博客

http://www.lryc.cn/news/426649.html

相关文章:

  • 旧版Pycharm支持的python版本记录
  • java实现七牛云内容审核功能,文本、图片和视频的内容审核(鉴黄、鉴暴恐、敏感人物)
  • C++面试基础系列-struct
  • 代码随想录算法训练营 | 动态规划 part05
  • 英特尔XPU大模型应用创新
  • 仿Muduo库实现高并发服务器——socket网络通信模块
  • 模型 神经网络(通俗解读)
  • 事务的使用
  • 【免费】企业级大模型应用推荐:星环科技无涯·问知
  • 从〇 搭建PO模式的Web UI自动化测试框架
  • 在Ubuntu中重装Vscode(没有Edit Configurations(JSON)以及有错误但不标红波浪线怎么办?)
  • Oracle 用户-表空间-表之间关系常用SQL
  • 家政服务管理系统小程序的设计
  • 【算法】并查集的介绍与使用
  • Shell——运算符
  • SweetAlert2
  • c语言中比较特殊的输入函数
  • Java版自动化测试之Selenium
  • 【计算机网络】——计算机网络的性能指标
  • MongoDB数据类型介绍
  • 【SpringBoot】SpringBoot 中 Bean 管理和拦截器的使用
  • Spring IoCDI(中)--IoC的进步
  • 读软件开发安全之道:概念、设计与实施02经典原则
  • MySQL中处理JSON数据:大数据分析的新方向,详解与示例
  • 【图形学】TA之路-矩阵
  • LAMM: Label Alignment for Multi-Modal Prompt Learning
  • mac编译opencv 通用架构库的记录
  • Python 向IP地址发送字符串
  • 上升响应式Web设计:纯HTML和CSS的实现技巧-1
  • 利用java结合python实现gis在线绘图,主要技术java+python+matlab+idw+Kriging