如何在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 相关文章推荐
我的论坛源代码(一)
Oct 09 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
PHP swfupload图片上传的实例代码
Sep 30 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
7个鲜为人知却非常实用的PHP函数
Jul 01 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
May 23 PHP
PHP的cookie与session原理及用法详解
Sep 27 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 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
PHP 配置后台登录以及模板引入
2017/01/24 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
js 幻灯片的实现
2011/12/06 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
js实现图片轮播效果学习笔记
2017/07/26 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
python list转dict示例分享
2014/01/28 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
python中Apriori算法实现讲解
2017/12/10 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
Python autoescape标签用法解析
2020/01/17 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
教师演讲稿范文
2014/01/08 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
保险内勤岗位职责
2015/04/13 职场文书
教师节获奖感言
2015/07/31 职场文书
施工安全责任协议书
2016/03/23 职场文书
python之json文件转xml文件案例讲解
2021/08/07 Python
正则表达式拆分url实例代码
2022/02/24 Java/Android
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL