centos编译安装PHP7.4
我的服务器是阿里云的centos7.8
1:下载PHP源码包
一般我都是从官方网站下载:php.net
当然,我是直接在服务器上下载的:
bash
复制代码
mkdir -p /usr/local/download cd /usr/local/download wget https://www.php.net/distributions/php-7.4.11.tar.gz
2:为服务器安装编译环境
我使用的服务器是纯净的环境,没有编译的环境,因此需要安装:
r
复制代码
yum -y install gcc gcc-c++ autoconf automake build-essential zlib zlib-devel openssl openssl-devel pcre pcre-devel
3:安装PHP7.4所需要的的编译环境
复制代码
yum install -y openssl-devel libxml2-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel recode-devel libicu-devel libzip-devel sqlite-devel oniguruma-devel
4:编译安装php7.4
(1):解压刚刚下载的源码包
bash
复制代码
tar -zxvf php-7.4.11.tar.gz cd php-7.4.11
(2):编译(指定安装目录)并安装php-fpm
css
复制代码
./configure --prefix=/usr/local/php --with-mysql --with-mysqli --with-pdo_mysql --with-iconv-dir --with-zlib --with-libxml-dir --enable-xml --with-curl --enable-fpm --enable-mbstring --with-gd --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-bcmath
./configure --prefix=/usr/local/php --with-mysql --with-mysqli --with-pdo_mysql --with-iconv-dir --with-zlib --with-libxml-dir --enable-xml --with-curl --enable-fpm --enable-mbstring --with-gd --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-bcmath
如上图所示,编译成功
(3):安装
go
复制代码
make&&make install
5:简化PHP执行命令
上一步操作中我们已经将PHP安装成功。
在服务器端执行PHP文件格式是这个样子的:
bash
复制代码
/usr/local/php/bin/php index.php
但是我们使用yum源安装的PHP,在服务器上可以直接使用php命令来执行:
复制代码
php index.php
在当前登录用户(我是root)家目录下的.bash_profile中添加如下内容:
bash
复制代码
vim /root/.bash_profile
添加内容:
ruby
复制代码
alias php=/usr/local/php/bin/php alias phpfpm=/usr/local/php/sbin/php-fpm
修改之后文件内容:
bash
复制代码
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH alias php=/usr/local/php/bin/php alias phpfpm=/usr/local/php/sbin/php-fpm
重载一下文件:
bash
复制代码
source /root/.bash_profile
或者创建软连接
bash
复制代码
ln -s /usr/local/php/bin/php /usr/bin/php74 ln -s /usr/local/php/sbin/php-fpm /usr/bin/php-fpm74
理论上就可以使用php命令来执行PHP文件了
6:启动php-fpm报错解决方案
这里只记录在我安装的时候遇到的错误。
(1):找不到php-fpm.conf文件
vbnet
复制代码
[19-Apr-2018 16:02:08] ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2) [19-Apr-2018 16:02:08] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf' [19-Apr-2018 16:02:08] ERROR: FPM initialization failed
错误信息说是找不到php-fpm.conf
解决方案:
到php的配置目录
bash
复制代码
cd /usr/local/php/etc
有一个php-fpm.conf.default的文件,cp复制\
arduino
复制代码
cp php-fpm.conf.default php-fpm.conf
编辑 php-fpm.conf 找到以下配置项, 配置如下
javascript
复制代码
pid = /usr/local/php/var/run/php-fpm.pid
再次运行
bash
复制代码
/usr/local/php/sbin/php-fpm
进入下一个报错、
(2):找不到www.conf配置文件
csharp
复制代码
[root@iZuf60ynur81p6k0ysvtneZ etc]# /usr/local/php/sbin/php-fpm [13-Oct-2020 18:03:57] WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/*.conf' from /usr/local/php/etc/php-fpm.conf at line 145. [13-Oct-2020 18:03:57] ERROR: No pool defined. at least one pool section must be specified in config file [13-Oct-2020 18:03:57] ERROR: failed to post process the configuration [13-Oct-2020 18:03:57] ERROR: FPM initialization failed
解决方案:
进入php安装目录:
bash
复制代码
/usr/local/php/etc/php-fpm.d
当前目录下有一个www.conf.default文件
arduino
复制代码
cp www.conf.default www.conf
再次执行
bash
复制代码
/usr/local/php/sbin/php-fpm
我的php-fpm便启动成功。