如何在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 header函数分析详解
Aug 06 PHP
php日期转时间戳,指定日期转换成时间戳
Jul 17 PHP
php启动时候提示PHP startup的解决方法
May 07 PHP
PHP中$_SERVER的详细参数与说明介绍
Oct 26 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
PHP获取毫秒级时间戳的方法
Apr 15 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
删除PHP数组中的重复元素的实现代码
Apr 10 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
Oct 12 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
对盗链说再见...
2006/10/09 PHP
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
PHP 上传文件的方法(类)
2009/07/30 PHP
PHP实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
php实现加减法验证码代码
2014/02/14 PHP
PHP children()函数讲解
2019/02/03 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
js控制不同的时间段显示不同的css样式的实例代码
2013/11/04 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
最实用的JS数组函数整理
2017/12/05 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
layUI实现前端分页和后端分页
2019/07/27 Javascript
vue.config.js中配置Vue的路径别名的方法
2020/02/11 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
python实现定制交互式命令行的方法
2014/07/03 Python
python实现媒体播放器功能
2018/02/11 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
django输出html内容的实例
2018/05/27 Python
tensorflow 打印内存中的变量方法
2018/07/30 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
Python socket处理client连接过程解析
2020/03/18 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
国际贸易毕业生求职信范文
2014/02/21 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
2015公司年度工作总结
2015/05/14 职场文书
公务员处分决定书
2015/06/25 职场文书