如何在centos8自定义目录安装php7.3


Posted in PHP onNovember 28, 2019

1.目录结构

源码目录:/home/werben/pkgsrc/php-7.3.11

安装目录:/home/werben/application/php7.3.11

2.下载php源码

# 官网地址:https://www.php.net/downloads.php
wget https://www.php.net/distributions/php-7.3.11.tar.bz2

3.解压源码

tar --bzip -xvf php-7.3.11.tar.bz2 php-7.3.11

4.安装编译工具和库

yum install -y gcc gcc-c++
yum -y install libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel libicu-devel freetype-devel openldap-devel openldap openldap-devel

5.配置编译参数

#创建用户组和用户
groupadd www
useradd -g www www

#配置fpm的用户组和用户,以及安装其他扩展
./configure --prefix=/home/werben/application/php7.3.11 \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mysqlnd-compression-support \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--with-mcrypt \
--with-libmbfl \
--enable-ftp \
--with-gd \
--enable-gd-jis-conv \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--with-gettext \
--disable-fileinfo \
--enable-opcache \
--with-pear \
--enable-maintainer-zts \
--with-ldap=shared \
--without-gdbm


#上面的步骤可能会出现很多问题,如需要重新安装libzip,需要安装ldap,需要安装cmake

#重新安装libzip需要安装cmake,这里记录一下cmake的安装步骤,其他问题自己百度解决了,
#不记录了,中间自己去官网下了几个最新的cmake版本,编译过程中都出错了。
#发现宝塔用的是2.8.X的版本。这里我用的版本是3.5.2的版本

wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
tar xvf cmake-3.5.2.tar.gz
cd cmake-3.5.2
./bootstrap --prefix=/usr/local/cmake
gmake
gmake install

cd /usr/local/cmake/bin
ln -s /usr/local/cmake/bin/cmake /usr/bin/
cmake --version

#接下来安装libzip
wget https://libzip.org/download/libzip-1.5.2.tar.gz
tar -zxf libzip-1.5.2.tar.gz
cd libzip-1.5.2
mkdir build
cd build 
cmake ..
make -j4
make install

6.安装make工具

#如果提示make命令找不到,则才需要安装make工具
yum -y install gcc automake autoconf libtool make

7.编译安装

make && make install

8.映射全局命令

ln -s /home/werben/application/php7.3.11/sbin/* /usr/local/sbin/
ln -s /home/werben/application/php7.3.11/bin/* /usr/local/bin/

9.配置php.ini

#查看php.ini的位置
php -r "phpinfo();" | grep 'php.ini'

#将源码中的php.ini*拷贝到php.ini的位置
cp /home/werben/pkgsrc/php-7.3.11/php.ini-* /home/werben/application/php7.3.11/lib/

#重命名php.ini文件
cp /home/werben/application/php7.3.11/lib/php.ini-production /home/werben/application/php7.3.11/lib/php.ini

10.安装目录结构

#/home/werben/pkgsrc/php-7.3.11安装目录的结构
├── bin
│  ├── pear
│  ├── peardev
│  ├── pecl
│  ├── phar -> phar.phar
│  ├── phar.phar
│  ├── php
│  ├── php-cgi
│  ├── php-config
│  ├── phpdbg
│  └── phpize
├── etc
│  ├── pear.conf
│  ├── php-fpm.conf.default
│  └── php-fpm.d
├── include
│  └── php
├── lib
│  ├── php
│  ├── php.ini
│  ├── php.ini-development
│  └── php.ini-production
├── php
│  ├── man
│  └── php
├── sbin
│  └── php-fpm
└── var
  ├── log
  └── run

ps:下面将展示如何将PHP与Nginx和Apache集成。

配置PHP以与Apache一起使用

如果你将Apache用作Web服务器,请使用以下命令重新启动httpd服务,可以使用:

$ sudo systemctl restart httpd

配置PHP以与Nginx一起使用

默认情况下,PHP FPM以用户apache的身份运行,为避免权限问题,我们将用户更改为nginx,为此,请编辑相关的行,即user = nginx和group = nginx:

$ sudo nano /etc/php-fpm.d/www.conf
...
user = nginx
..
group = nginx

确保/var/lib/php目录具有正确的所有权:

$ chown -R root:nginx /var/lib/php

完成后,重新启动PHP FPM服务:

$ sudo systemctl restart php-fpm

接下来,编辑Nginx主机指令,并添加以下位置块,以便Nginx可以处理PHP文件:

server {

 # . . . other code

 location ~ \.php$ {

try_files $uri =404;

fastcgi_pass unix:/run/php-fpm/www.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

 }

}

为了使新配置生效,请重新启动Nginx服务:

$ sudo systemctl restart nginx

总结

以上所述是小编给大家介绍的如何在centos8自定义目录安装php7.3,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
如何在PHP中使用Oracle数据库(2)
Oct 09 PHP
PHP array 的加法操作代码
Jul 24 PHP
PHP文件注释标记及规范小结
Apr 01 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
php中rename函数用法分析
Nov 15 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
php nginx 实时输出的简单实现方法
Jan 21 PHP
PHP函数积累总结
Mar 19 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
May 14 PHP
php中yii框架实例用法
Dec 22 PHP
PHP的new static和new self的区别与使用
Nov 27 #PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 #PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 #PHP
php 使用expat方式解析xml文件操作示例
Nov 26 #PHP
thinkphp框架类库扩展操作示例
Nov 26 #PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 #PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 #PHP
You might like
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
jQuery ajax提交Form表单实例(附demo源码)
2016/04/06 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
浅析Python多线程下的变量问题
2015/04/28 Python
利用Python如何生成随机密码
2016/04/20 Python
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
自我评价的写作规则
2014/01/06 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
财务人员担保书
2014/05/13 职场文书
法人任命书范本
2014/06/04 职场文书
会议室标语
2014/06/21 职场文书
护士实习求职信
2014/06/22 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
大学同学聚会感言
2015/07/30 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL