Ubuntu18.04 + PHP7.37全网最全 -- 源码安装手册

Ubuntu18.04 + PHP7.37全网最全 – 源码安装手册


作者:困难户
联系QQ:3169560
首发:52wiki 、CSDN


PHP 源码安装方式

1、官网下载源代码安装程序

# wget https://www.php.net/distributions/php-7.3.7.tar.gz

2、解压缩文件

# tar -zxvf php-7.3.7.tar.gz

3、进入解压文件夹,进行编译操作

root@ubuntu18-2:~/download/php-7.3.7# ./configure

报错信息处理 (详解安装过程中问题,可忽略观看,下条有全部依赖库安装名称)

1、libxm2 报错信息

解决方法,安装依赖

# sudo apt install libxml2-dev

####很遗憾,Ubuntu18.04.2 LTS默认安装方式,前续安装了Nginx,所以configure后,未再报错。
在这里插入图片描述

罗列PHP编译安装所需要的依赖库
sudo apt update
sudo apt install gcc
sudo apt install make
sudo apt install openssl
sudo apt install curl
sudo apt install libbz2-dev
sudo apt install libxml2-dev
sudo apt install libjpeg-dev
sudo apt install libpng-dev
sudo apt install libfreetype6-dev
sudo apt install libzip-dev
2、配置PHP

在编译前,需要对PHP进行配置,以供其生成对应的makefile文件

  • prefix=/usr/local/php7 代表将程序安装至此目录
  • file-path=/usr/local/ 系统默认解析路径
./configure --prefix=/usr/local/ --with-config-file-path=/usr/local/ --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-ftp --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zt
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7 --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl

配置成功后会出现如下字样

  • 不加载后续参数也可以编译,但后续解析路径将会在当前所编译目录
    在这里插入图片描述

!!建议加载编译安装至个人习惯使用之路径

增加参数编译出错信息
  • Ubuntu 安装php 7.3遇到的错误

configure: error: Cannot find OpenSSL's <evp.h>
这个问题是缺少openssl-devel apt-get install libssl-dev 安装即可

  • checking for cURL 7.15.5 or greater… configure: error: cURL version 7.15.5 or later is required to compile php with cURL support

这个问题是cURL版本问题卸载重装下curl就好了

网上找了半天都说是少了这个包 libdb-dev 我的却不行 安装 libgdbm-dev 这个包才ok

  • Configure: error: libpng.(also) not found.

# apt-get install libjpeg9-dev libpng-dev

  • configure: error: freetype-config not found.

# apt-get -y install libfreetype6-dev

  • configure: error: Please reinstall the libzip distribution

# apt install libzip-dev

  • configure: error: png.h not found.

# apt install libpng-dev

  • configure: error: jpeglib.h not found.

# apt install libjpeg9-dev

  • configure: error: freetype-config not found.

# apt install libfreetype6-dev

###安装了几个依赖库,终于编译不再出错了!
在这里插入图片描述
##安装完成,验证PHP

  • 可以使用如下指令来输出PHP的版本,来验证是否正确安装
/usr/local/php/bin/php -v

如果正确安装,将会出现如下内容

PHP 7.3.1 (cli) (built: Jan 18 2019 20:11:04) ( ZTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies
在这里插入图片描述

到这一步为止,PHP7.3.1便成功从源代码编译安装了。

  • 复制php.ini

编译安装后的目录并不会有现成的php.ini,需要手动复制过去。
在解压出来的源代码目录中,
有供开发环境使用的php.ini-development
和供生产环境使用的php.ini-production
输入命令来复制(以开发环境为例)

sudo cp php.ini-development /usr/local/php/etc/php.ini

##配置Nginx 支持解析php文件

  • 创建php.php
# touch /usr/local/nginx/html/php.php
<?php
  
phpinfo();

?> 

php-fpm相关错误分析

####无法解析.php文件,未发现9000端口启用探索问题集
#####php-fpm无法启动,故障分析:无法装载.conf文件,且143行错误。

# /usr/local/php7/sbin/php-fpm

在这里插入图片描述
解决方法:

# cd /usr/local/php7/etc/php-fpm.d/
# ls
www.conf.default
# cp www.conf.default www.conf
# /usr/local/php7/sbin/php-fpm -t
[14-Jul-2019 10:19:35] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successful

#####故障: 未发现用户组

# /usr/local/php7/sbin/php-fpm
[14-Jul-2019 10:20:07] ERROR: [pool www] cannot get gid for group 'nobody'
[14-Jul-2019 10:20:07] ERROR: FPM initialization failed

解决方法:

# groupadd nobody   ///增加 nobody 用户组
# /usr/local/php7/sbin/php-fpm  ///开启fpm服务
# netstat -apn|grep 9000    ///监测9000端口是否启用

在这里插入图片描述

php-fpm 配置套接字sock方式(快速解析访问php文件)

####首先保证9000服务能正常访问php文件,然后略作修改即可

  • 修改/usr/local/nginx/conf/nginx.conf文件
    注释原有9000端口服务,增加.sock指向
    fastcgi_pass unix:/var/run/php-fpm.sock;
    在这里插入图片描述
  • 修改/usr/local/php7/etc/php-fpm.d/www.conf
;listen = 127.0.0.1:9000    ///注释原有9000端口
listen = /var/run/php-fpm.sock

在这里插入图片描述

  • 重新启动php-fpm和nginx服务
# /etc/init.d/php-fpm restart
# systemctl restart nginx.service
# systemctl status php-fpm.service
# systemctl status nginx.service

最重要一步!
php-fpm服务启动无错后,生成/var/run/php-fpm.sock文件

chmod 777 php-fpm.sock  ///赋于权限即可解析php文件了

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值