您的位置 首页 php

跟老韩学Linux SRE系列-编译安装PHP8.1

1、安装依赖包

 yum -y install gcc gcc-c++  glibc  automake autoconf libtool make
rpm -q gcc gcc-c++ glibc automake autoconf libtool make |wc -l
yum -y install libxslt-devel libjpeg libjpeg-devel libpng libpng-devel
rpm -q libxslt-devel libjpeg libjpeg-devel libpng libpng-devel | wc -l
yum -y install freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel
rpm -q freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel |wc -l
yum -y install glibc glibc-devel glib2 bzip2-devel ncurses ncurses-devel
rpm -q glibc glibc-devel glib2 bzip2-devel ncurses ncurses-devel | wc -l
yum -y install curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel
rpm -q curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel | wc -l
yum -y install openssl openssl-devel sqlite-devel libcurl-devel libpng-devel libjpeg-devel
rpm -q openssl openssl-devel sqlite-devel libcurl-devel libpng-devel libjpeg-devel |wc -l
yum -y install freetype-devel libicu-devel libxslt-devel
rpm -q freetype-devel libicu-devel libxslt-devel | wc -l
yum -y install systemd-devel
rpm -q systemd-devel |wc -l
yum -y install oniguruma oniguruma-devel
rpm -q oniguruma oniguruma-devel
rpm -q oniguruma oniguruma-devel |wc -l  

2、gmp扩展

 yum -y install gmp-devel  
 rpm -q gmp-devel  

如果安装不了 oniguruma,请使用:

# 方案一:

 yum -y install 
yum -y install   

#方案二:

 yum -y install 
yum -y install   

3、升级 cmake

 cd /opt
yum -y install wget
yum remove cmake -y
 wget  -c 
tar xf cmake-3.21.0-linux-x86_64.tar.gz
mv cmake-3.21.0-linux-x86_64 /usr/local/cmake  

编辑并配置

 cat >/etc/profile.d/cmake.sh<<hanyw
 export  CMAKE_HOME=/usr/local/cmake
export PATH=\$CMAKE_HOME/bin:\$PATH
hanyw
# 执行
source /etc/profile.d/cmake.sh
cmake -version  

4、安装 libzip

 cd /opt
wget -c --no-check-certificate 
tar xf libzip-1.8.0.tar.gz
cd libzip-1.8.0
 mkdir  build && cd build;echo $?
cmake ..;echo $?
make install;echo $?
export PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig/":$PKG_CONFIG_PATH  

5、下载php源码包,编译安装

 groupadd php-fpm
useradd -s /sbin/nologin -g php-fpm -M php-fpm
cd /opt
wget -c 
tar xf php-8.1.3.tar.gz  

编译参数

./configure –help指令可查看编译版本的所有编译参数。

 cd php-8.1.3 ; ./configure --help  

本次编译参数如下。

 ./configure \
--prefix=/usr/local/php8 \
--with-config-file-path=/usr/local/php8 \
--with-config-file-scan-dir=/usr/local/php8/php.d \
--enable-mysqlnd \
--with-mysqli \
--with- PDO -mysql \
--enable-gd \
--with-gmp \
--with-jpeg \
--with-iconv \
--with-zlib \
--with-zip \
--with- openssl  \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-pcntl \
--enable-sockets \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-freetype \
--enable-opcache \
--enable-fpm \
--with-fpm-user=php-fpm \
--with-fpm-group=php-fpm \
--with-fpm-systemd \
--disable-fileinfo ; echo $?  

出现如下界面,表述预编译成功。

 +--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+
Thank you for using PHP.
0  

执行编译:

编译完毕之后,我们进行下一步

 make -j 4 && make install ; echo $?  

接下来需要等待大约10-20分钟 这个根据我们的服务器而定 如果觉得慢我们可以使用

 make -j 16 ; echo $?  

出现如下界面的提示字样,表示指令执行成功。

 Build complete.
Don't forget to run 'make test'.
0  

具体可参考如下指令查看CPU的核心数。

 [ root @itop-test php-8.1.3]# lscpu |grep ' CPU (s):'
CPU(s): 16
[root@itop-test php-8.1.3]# grep -c 'cpu cores' /proc/cpuinfo
16
make install ; echo $?  

输出过程如下。

 [root@itop-test php-8.1.3]# make install ;echo $?
Installing shared extensions: /usr/local/php8/lib/php/extensions/no-debug-non-zts-20210902/
Installing PHP CLI binary: /usr/local/php8/bin/
Installing PHP CLI man page: /usr/local/php8/php/man/man1/
Installing PHP FPM binary: /usr/local/php8/sbin/
Installing PHP FPM defconfig: /usr/local/php8/etc/
Installing PHP FPM man page: /usr/local/php8/php/man/man8/
Installing PHP FPM status page: /usr/local/php8/php/php/fpm/
Installing phpdbg binary: /usr/local/php8/bin/
Installing phpdbg man page: /usr/local/php8/php/man/man1/
Installing PHP CGI binary: /usr/local/php8/bin/
Installing PHP CGI man page: /usr/local/php8/php/man/man1/
Installing build environment: /usr/local/php8/lib/php/build/
Installing header files: /usr/local/php8/ include /php/
Installing helper programs: /usr/local/php8/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php8/php/man/man1/
page: phpize.1
page: php-config.1
/opt/php-8.1.3/build/shtool install -c ext/phar/phar.phar /usr/local/php8/bin/phar.phar
ln -s -f phar.phar /usr/local/php8/bin/phar
Installing PDO headers: /usr/local/php8/include/php/ext/pdo/
0  

make install指令的返回值为0,说明编译安装PHP成功。

查看安装好的目录结构。

 [root@itop-test php-8.1.3]# tree /usr/local/php8/ -L 2
/usr/local/php8/
├── bin
│   ├── phar -> phar.phar
│   ├── phar.phar
│   ├── php
│   ├── php-cgi
│   ├── php-config
│   ├── phpdbg
│   └── phpize
├── etc
│   ├── php-fpm.conf.default
│   └── php-fpm.d
├── include
│   └── php
├── lib
│   └── php
├── php
│   ├── man
│   └── php
├── sbin
│   └── php-fpm
└── var
├── log
└── run
14 directories, 9 files  

6、配置php.ini

php.ini-development 测试 开发环境

php.ini-production 生产环境

复制一份到指定的目录下(根据自己的情况选用,自己可以对比下这两个文件的差异):

 cp -av php.ini-production /usr/local/php8/etc/php.ini  

7、配置php-fpm

# 设置目录

 mkdir -pv /home/log/
cd /usr/local/php8/etc
cp -av php-fpm.conf.default php-fpm.conf
vim php-fpm.conf  

设置pid和log

 vim php-fpm.conf
error_log = /home/log/php-fpm.log
pid = /home/log/php-fpm.pid  

注意:pid设置在php-fpm.conf文件的约18行处,error_log设置在php-fpm.conf配置文件的约26行处,可使用如下指令验证配置是否正确。

 [root@itop-test php-8.1.3]# grep -En "^pid|^error_log" /usr/local/php8/etc/php-fpm.conf
18:pid = /home/log/php-fpm.pid
26:error_log = /home/log/php-fpm.log  

配置www

 cd /usr/local/php8/etc/php-fpm.d
cp -av www.conf.default www.conf  

使用systemctl命令来控制php-fpm

 cd /opt/php-8.1.3
cp -av ./sapi/fpm/php-fpm.service /usr/lib/systemd/system/  

8、管理php-fpm

# 开机启动

 systemctl enable php-fpm  

# 启动

 systemctl start php-fpm  

# 查看状态

 systemctl status php-fpm  

# 停止

 systemctl stop php-fpm  

9、添加 环境变量 :

 vim /etc/profile  

# 末尾追加

 export PATH=$PATH:'/usr/local/php8/bin/'  

# wq 保存退出,执行

 source /etc/profile  

非交互式操作。

 cat >>/etc/profile<<hanyw
### hanyw20220802 begin###
export PATH=\$PATH:'/usr/local/php8/bin/'
### hanyw20220802 end###
hanyw
source /etc/profile  

测试:

 php -v
[root@itop-test php-8.1.3]# php -v
PHP 8.1.3 (cli) (built: Aug 2 2022 10:33:18) (NTS)
Copyright (c) The PHP Group
 Zend Engine  v4.1.3, Copyright (c) Zend Technologies  

文章来源:智云一二三科技

文章标题:跟老韩学Linux SRE系列-编译安装PHP8.1

文章地址:https://www.zhihuclub.com/149581.shtml

关于作者: 智云科技

热门文章

网站地图