Centos7.4编译安装php8.1

安装依赖包:

yum -y install gcc gcc-c++ glibc automake autoconf libtool make
yum -y install libxslt-devel libjpeg libjpeg-devel libpng libpng-devel 
yum -y install freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel 
yum -y install glibc glibc-devel glib2 bzip2-devel ncurses ncurses-devel 
yum -y install curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel 
yum -y install openssl openssl-devel sqlite-devel libcurl-devel libpng-devel libjpeg-devel 
yum -y install freetype-devel libicu-devel libxslt-devel
yum -y install systemd-devel
yum -y install oniguruma oniguruma-devel
# gmp扩展
yum -y install gmp-devel 

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

# 方案一:
yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-6.7.0-1.el7.x86_64.rpm
yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-devel-6.7.0-1.el7.x86_64.rpm

#方案二:
yum -y install http://down.24kplus.com/linux/oniguruma/oniguruma-6.7.0-1.el7.x86_64.rpm
yum -y install http://down.24kplus.com/linux/oniguruma/oniguruma-devel-6.7.0-1.el7.x86_64.rpm

升级cmake

cd /usr/local/src
yum -y install wget
yum remove cmake -y
wget https://cmake.org/files/v3.21/cmake-3.21.0-linux-x86_64.tar.gz
tar zxvf cmake-3.21.0-linux-x86_64.tar.gz
mv cmake-3.21.0-linux-x86_64 /usr/local/cmake

编辑并配置

vim /etc/profile.d/cmake.sh 
export CMAKE_HOME=/usr/local/cmake
export PATH=$CMAKE_HOME/bin:$PATH
# 执行
source  /etc/profile.d/cmake.sh 

安装 libzip

wget https://libzip.org/download/libzip-1.8.0.tar.gz
tar -zxvf libzip-1.8.0.tar.gz
cd libzip-1.8.0
mkdir build && cd build
cmake ..
make install
export PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig/":$PKG_CONFIG_PATH

下载php源码包,编译安装

groupadd php-fpm
useradd -s /sbin/nologin -g php-fpm -M php-fpm
cd /usr/loca/src
wget https://www.php.net/distributions/php-8.1.3.tar.gz
tar zxvf php-8.1.3.tar.gz

编译参数

./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 

执行编译:

make && make install

配置php.ini

php.ini-development 测试开发环境
php.ini-production 生产环境

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

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

配置php-fpm:

# 设置目录
mkdir /home/log/
cd /usr/local/php8/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf

设置pid和log

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

配置www

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

使用systemctl命令来控制php-fpm

cd /usr/local/src/php-8.1.3
cp ./sapi/fpm/php-fpm.service  /usr/lib/systemd/system/

管理php-fpm

# 开机启动
systemctl enable php-fpm
# 启动
systemctl start php-fpm
# 查看状态
systemctl status php-fpm
# 停止
systemctl stop php-fpm

添加环境变量:

vim  /etc/profile
# 末尾追加
export PATH=$PATH:'/usr/local/php8/bin/'
# wq 保存退出,执行
source /etc/profile

测试:

php -v

问题

为啥需要给php-fpm 设置一个log目录呢? 默认的不行吗?
php-fpm的systemd配置文件(/usr/lib/systemd/system/php-fpm.service)中,
当ProtectSystem=true时php-fpm进程将以只读的方式挂载/usr、/boot目录;
当ProtectSystem=full时php-fpm进程将以只读的方式挂载/usr、/boot和/etc目录。
解决方法:

  1. 打开php-fpm的systemd配置文件/usr/lib/systemd/system/php-fpm.service,把ProtectSystem=true改成ProtectSystem=false,这种方式会对系统造成一定风险,生产环境不建议使用;
  2. 修改php-fpm的配置文件php-fpm.conf,把error_log设置为除/usr、/boot、/etc以外的目录中的文件。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
以下是在CentOS 7上编译安装PHP 7.4的步骤: 1. 安装依赖项 在安装PHP之前,需要安装一些依赖项。运行以下命令: ``` sudo yum install epel-release sudo yum install wget gcc gcc-c++ make autoconf libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel libmcrypt-devel readline-devel libxslt-devel ``` 2. 下载PHPPHP官方网站下载PHP源代码,运行以下命令: ``` cd /usr/src sudo wget https://www.php.net/distributions/php-7.4.0.tar.gz ``` 3. 解压文件 解压下载的文件,运行以下命令: ``` sudo tar zxvf php-7.4.0.tar.gz cd php-7.4.0 ``` 4. 配置PHP 运行以下命令来配置PHP: ``` sudo ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-fpm-user=www-data --with-fpm-group=www-data --with-mysqli --with-pdo-mysql --with-openssl --with-zlib --enable-mbstring --with-gd --with-jpeg --with-png --with-zlib --with-libxml --enable-soap --enable-zip --enable-xml --enable-intl --with-curl --with-mcrypt --with-readline --enable-fpm ``` 5. 编译安装PHP 编译安装PHP,运行以下命令: ``` sudo make sudo make install ``` 6. 配置PHP-FPM 运行以下命令来配置PHP-FPM: ``` sudo cp /usr/src/php-7.4.0/sapi/fpm/php-fpm.conf.in /usr/local/php/etc/php-fpm.conf sudo cp /usr/src/php-7.4.0/sapi/fpm/www.conf.in /usr/local/php/etc/php-fpm.d/www.conf ``` 7. 启动PHP-FPM 运行以下命令来启动PHP-FPM: ``` sudo /usr/local/php/sbin/php-fpm ``` 现在,您已经成功地在CentOS 7上编译安装PHP 7.4。您可以通过创建一个phpinfo.php文件并在浏览器中输入IP地址或域名来验证PHP是否正常工作:http://your_server_ip_address/phpinfo.php

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值