如何在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测试程序运行时间的类
Feb 05 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
Apr 01 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
Apr 08 PHP
ThinkPHP之N方法实例详解
Jun 20 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
thinkPHP内置字符串截取函数用法详解
Nov 15 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
php修改数组键名的方法示例
Apr 15 PHP
Yii框架实现记录日志到自定义文件的方法
May 23 PHP
PHP检查网站是否宕机的方法示例
Jul 24 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
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
2015/03/18 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
php生成HTML文件的类方法
2019/10/11 PHP
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
2014/03/18 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
小程序实现多选框功能
2018/10/30 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
详解Golang 与python中的字符串反转
2017/07/21 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
python实现交并比IOU教程
2020/04/16 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
html5+css如何实现中间大两头小的轮播效果
2018/12/06 HTML / CSS
如何设置Java的运行环境
2013/04/05 面试题
.net软件工程师应聘上机试题
2015/03/10 面试题
如何写出好的Java代码
2014/04/25 面试题
DIY手工制作经营店创业计划书
2014/02/01 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
教师节感谢信
2015/01/22 职场文书
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL