如何在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
require(),include(),require_once()和include_once()区别
Mar 27 PHP
php处理文件的小例子(解压缩,删除目录)
Feb 03 PHP
php导入大量数据到mysql性能优化技巧
Dec 29 PHP
php程序总是提示验证码输入有误解决方案
Jan 07 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
Jan 21 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
Feb 26 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
PHP 模拟登陆功能实例详解
Sep 10 PHP
PHP mkdir创建文件夹实现方法解析
Nov 13 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中循环语句的用法介绍
2012/01/30 PHP
php封装的mysqli类完整实例
2016/10/18 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
详解JavaScript 异步编程
2020/07/13 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
用Python给文本创立向量空间模型的教程
2015/04/23 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
美国糖果店:Sugarfina
2019/02/21 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
商务日语毕业生自荐信范文
2013/11/14 职场文书
药剂专业自荐信范文
2014/04/16 职场文书
伊琍体标语
2014/06/25 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
复兴之路展览观后感
2015/06/02 职场文书
Python time库的时间时钟处理
2021/05/02 Python
Python中异常处理用法
2021/11/27 Python