首页 > 系统相关 >Linux PHP多版本编译安装及快捷切换版本

Linux PHP多版本编译安装及快捷切换版本

时间:2023-04-14 16:36:26浏览次数:42  
标签:php php80 -- usr 版本 Linux PHP local

编译安装        
        安装多个版本的PHP其实毫无压力,主要是编译安装的时候--prefix和--with-config-file-path设置为不同的目录即可。

        分享我编译安装的命令:

./configure --prefix=/usr/local/php/ --enable-debug --enable-gd --with-freetype --with-jpeg --with-webp  --enable-fpm --with-config-file-path=/usr/local/php/etc/ --with-iconv  --enable-mbregex --with-openssl --enable-pcntl --with-curl  --with-pdo-mysql --enable-mbstring --with-mysql-sock=/var/lib/mysql/mysql.sock --with-zlib
        这是开了debug的版本,但是开发的同学一般都不需要,直接去掉 --enable-debug即可。

        编译安装完成后,记得初始化php.ini,将php.ini-production文件重命名为php.ini并放在--with-config-file-path定义的目录中即可。

        但是此时,还不能使用PHP命令,因此需要将PHP的运行目录写入到.bashrc中,即

sudo vim ~/.bashrc
在文件的末尾加上
export PATH=/usr/local/php/bin:$PATH
export PATH=/usr/local/php/sbin:$PATH
重新载入
source ~/.bashrc
        此时使用php --ini命令即可查看到php.ini文件的位置

[moxi@localhost ~]$ php --ini
Configuration File (php.ini) Path: /usr/local/php80/etc/
Loaded Configuration File:         /usr/local/php80/etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
 快捷切换
        安装了多个版本的PHP以后,每次都要通过编辑./bashrc来切换版本未免太过繁琐,有没有更便捷的方式呢?

方法1
        通过更新软链的方式切换PHP版本

sudo ln -sf /usr/local/php80/bin/php /usr/bin/php
 
/usr/local/php/bin/php是你的PHP安装目录,即--prefix定义的目录+/bin/php
        但是这种方法,还是不快捷!

        我们可以通过给命令取别名的方式,简化运行命令的成本

sudo vim ~/.bashrc
 
// 将下面的命令添加到文件末尾
 
alias php80='sudo ln -sf /usr/local/php80/bin/php /usr/bin/php'
 
// 保存并退出
 
// 重新载入
 
. ~/.bashrc
方法2
       增加一个配置文件,将配置环境变量的命令放入其中,需要切换版本的时候载入对应的配置文件即可

vim ~/php80 (以.开头的文件会被隐藏,这个配置文件不重要,所以没必要隐藏)
 
// 将下列命令写入
 
export PATH=/usr/local/php80/bin:$PATH
export PATH=/usr/local/php80/sbin:$PATH
 
// 保存并退出
        重新载入的命令还是太长了,我们再给这个命令起个别名

// 将下面的命令添加到~/.bashrc中并重新载入即可
 
alias php80='. ~/php80'
效果
[moxi@localhost ~]$ php80
[moxi@localhost ~]$ php -v
PHP 8.0.21 (cli) (built: Aug 15 2022 19:33:34) ( NTS DEBUG )
Copyright (c) The PHP Group
Zend Engine v4.0.21, Copyright (c) Zend Technologies
[moxi@localhost ~]$ php81
[moxi@localhost ~]$ php -v
PHP 8.1.6 (cli) (built: Jul 31 2022 03:26:52) (NTS DEBUG)
Copyright (c) The PHP Group
Zend Engine v4.1.6, Copyright (c) Zend Technologies


标签:php,php80,--,usr,版本,Linux,PHP,local
From: https://www.cnblogs.com/shanhubei/p/17318675.html

相关文章

  • PHP cli模式执行脚本 -- 通过getopt()接收参数
    学习记录留作参考祝君好运用于执行Linux定时任务的PHP文件,通过接收不同参数实现不同功能。使用cli模式执行一些操作PHP用于定时任务的代码使用getopt()获取命令行参数short_options注意:使用:使用cli模式执行一些操作PHP官方文档:执行PHP文件#可以使用下面两个......
  • Linux常用命令-个人使用
    Linux常用命令-个人使用本人在centos下常用的命令,其他系统机器不确定是否可以使用1.nmtui命令启动界面改IP信息首先要启动NetworkManager服务,然后运行nmtui命令就可以手动配置网卡信息,贼好用运行nmtui命令2.ls根据文件大小排序ll-hS|grep^-只显示文件且按文件大小......
  • Linux input and ouput command < symbol & > symbol All In One
    Linuxinputandouputcommand<symbol&>symbolAllInOneleftinput/rightoutput<向左侧输入#把文件内容复制到剪贴板中✅$pbcopy<filename.txt>向右侧输出#把剪贴板内容粘贴到文件中✅$pbpaste>filename.txtdemos$echo"helloworld">......
  • Linux内核进程管理并发同步与原子操作
    并发同步并发是指在某一时间段内能够处理多个任务的能力,而并行是指同一时间能够处理多个任务的能力。并发和并行看起来很像,但实际上是有区别的,如下图(图片来源于网络):上图的意思是,有两条在排队买咖啡的队列,并且只有一架咖啡机在处理,而并行就有两架的咖啡机在处理。咖啡机的数量......
  • Linux内核进程管理进程优先级
    **前言:**进程优先级实际上是系统对进程重要性的一个客观评价。根据这个评价的结果来为进程分配不同的系统资源,这个资源包括内存资源和CPU资源。为了保证“公平公正”的评价每个进程,Google工程师为此设计了一套评价系统。为什么要有进程优先级?这似乎不用过多的解释,毕竟自从多任......
  • linux中systemctl管理go服务 (gin)git部署
    go安装下载 https://golang.google.cn/dl/解压至指定目录,一般到/usr/localsudotar-C/usr/local-xzfgo**.linux-amd64.tar.gz设置环境变量#修改~/.bashrc文件$sudogedit~/.bashrc#在该文件最后一行插入$exportPATH=$PATH:/usr/local/go/bin$source~/......
  • Linux内核进程管理六种状态
    进程概念1)正在执行的程序2)正在计算机上执行的程序实例3)能分配处理器并由处理器执行的实体进程的两个基本元素是程序代码和代码相关联的数据集。Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。这就可以引入‘进......
  • Linux内核进程管理实时调度与SMP
    一,实时调度器类实时调度类有两类进程:循环进程SCHED_RR:循环进程有时间片,随着进程的运行时间会减少。当时间片用完时又将其置为初值,并将进程置于队列末尾。先进先出SCHED_FIFO:没有时间片调度,运行后可执行任意长时间直到自己放弃CPU。实际上两类进程在相同优先级队列上都是先进先出......
  • Linux内核进程管理原理详解(代码演示)
    **前言:**Linux内核里大部分都是C语言。建议先看《Linux内核设计与实现(LinuxKernelDevelopment)》,RobertLove,也就是LKD。Linux是一种动态系统,能够适应不断变化的计算需求。Linux计算需求的表现是以进程的通用抽象为中心的。进程可以是短期的(从命令行执行的一个命令),也可以是......
  • 如何去掉Linux vim文本中的^M
    正常情况如果vim只是发现行尾有^M,那么直接使用dos2unix就可以了dos2unixyourfile.txt但是有些文本只有^M没有换行。这是因为一般换行都是"0x0d0x0a",0x0d是回车键,0x0a是换行。只有^M没有换行,是因为只有0x0d没有0x0a,这时可以用sed替换sed-i"s/\x0D/\x0A/g"yourfile.txt......