linux下安装了两个php(如何安装两个linux系统)

本文目录一览:

linux下安装了两个php,怎么配置apache支持哪个php

:Apache中加载php模块

#cp php.ini-dist /usr/local/lib/php.ini

#vim httpd.conf

查看是否有下面这句话,没有则添加

LoadModule php5_module modules/libphp5.so

找到“#AddType application/x-gzip .gz .tgz”添加

AddType application/x-httpd-php .php .phtml

AddType application/x-httpd-php-source .phps

参考:

如何在linux下安装多个不同版本的PHP

进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:cd curl

执行phpize生成编译文件,phpize在PHP安装目录的bin目录下

/usr/local/php5/bin/phpize

运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and

the $PHP_AUTOCONF

environment variable is set correctly and then rerun this

script.,需要安装autoconf:

yum install autoconf(RedHat或者CentOS)、apt-get install

autoconf(Ubuntu Linux)

/usr/local/php5/bin/php -v

执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,

这里会报错,可以根据错误信息去排查!

如何在linux安装php开发环境

我一般会选用源码安装 php,安装 php 的过程指定要安装的扩展,但是避免不了缺少某个扩展未安装导致程序运行报错的问题。以 fileinfo 为例,介绍一下怎么添加 php 扩展。

1. 准备

通常遇到报错:xxx function undefined,而这个函数是系统函数的话,那一定是你缺少某个扩展。添加扩展也非常简单。首选要确认当前的 php 是哪个版本,不同版本的 php 扩展会有些许出入。然后找到 Php 源码目录,也就是从网上下载下来并且解压的 php 文件包。添加扩展的时候需要在源码包里面去执行命令。

2. 安装 fileinfo 扩展

1. 确认 php 版本

php -v

# PHP 7.4.4 (cli)

2. 找到 php 可执行文件的位置

whereis php

# php: /usr/local/php /usr/local/php/bin/php

可以看出 php 执行文件在 /usr/local/php/bin 目录里面

那么尝试执行 phpize,保证这个文件存在,phpize 命令在添加扩展的时候需要用到

/usr/local/php/bin/phpize -v

# Configuring for:

# PHP Api Version: 20190902

# Zend Module Api No: 20190902

# Zend Extension Api No: 320190902

3.进入php源码目录

我的习惯是网络下载的软件会放在 /usr/local/src 下面,

cd /usr/local/src/php-7.4.4

cd /etc

cd fileinfo

扩展都在源码目录的 etc 下面,里面有 curl,gd,ftp 等等扩展目录,我要安装 fileinfo,所以到 fileinfo 目录里面

4.开始安装

确定目录下面有 config.m4 文件,如果没有,应该会有 config0.m4 文件,把 config0.m4 复制一份为 config.m4,如果没有这个文件,会报错:can not found config.m4

/usr/local/php/bin/phpize

./configure

make make install

如果这几行命令运行下来都没有报错,那么说明扩展文件已经生成,并且已经自动移入相应位置。接下来就是修改 php.ini,追加 extension=fileinfo.so 到 php.ini 中。

5.修改php.ini,加载扩展文件

查看 php.ini 的位置

php -i | grep php.ini

#Configuration File (php.ini) Path = /usr/local/php/etc

#Loaded Configuration File = /usr/local/php/etc/php.ini

可以看到 php.ini 的位置: /usr/local/php/etc/php.ini

vim /usr/local/php/etc/php.ini

#添加extension=fileinfo.so,保存

php -m | grep fileinfo

#fileinfo

看到输出 fileinfo,至此,fileinfo 扩展安装完毕!另外可以使用 pecl 命令安装,更方便快捷!

linux 安装了2个php,怎么设置apache使用哪个,详细的设置方法???

在apache加载phpmodel时,是又路径的吧,把路径写成你要的那个就行

Linux系统中设置多版本PHP共存配合Nginx服务器使用

应用环境

LNMP的环境,当前PHP版本5.3.8,遇到一个应用需求只支持PHP

5.2.x,又希望保持现有应用还是用PHP

5.3.8。也就是说需要两个版本的PHP同时存在,供nginx根据需要调用不同版本。

思路

Nginx是通过PHP-FastCGI与PHP交互的。而PHP-FastCGI运行后会通过文件、或本地端口两种方式进行监听,在Nginx中配置相应的FastCGI监听端口或文件即实现Nginx请求对PHP的解释。

既然PHP-FastCGI是监听端口和文件的,那就可以让不同版本的PHP-FastCGI同时运行,监听不同的端口或文件,Nginx中根据需求配置调用不同的PHP-FastCGI端口或文件,即可实现不同版本PHP共存了。

配置记录

下面记录简单的配置流程,基于已经安装了lnmp的debian环境。当前版本的PHP是5.3.8,位于/usr/local/php。

1.下载PHP-5.2.14及相关的FPM、autoconf组件:

mkdir

~/php5.2

cd

~/php5.2

wget

-c

wget

-c

2.解压PHP-5.2.14,并打上PHP-FPM的补丁:

tar

zxvf

php-5.2.14.tar.gz

gzip

-cd

php-5.2.14-fpm-0.5.14.diff.gz

|

patch

-d

php-5.2.14

-p1

3.如果你已经通过lnmp安装,应该已经安装好了autoconf,如果没有,请自行下载并编译autoconf-2.13,然后设置autoconf环境变量:

export

PHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconf¬

export

PHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheader

3.编译安装PHP-5.2.14在新的路径(/usr/local/php-5.2.14)下,注意–prefix、–with-config-file-path的路径,并且打开fastcgi和fpm选项:

cd

php-5.2.14/

./buildconf

–force

./configure

–prefix=/usr/local/php-5.2.14

–with-config-file-path=/usr/local/php-5.2.14/etc

–with-mysql=/usr/local/mysql

–with-mysqli=/usr/local/mysql/bin/mysql_config

–enable-fastcgi

–enable-fpm

make

ZEND_EXTRA_LIBS=’-liconv’

make

install

4.设置/usr/local/php-5.2.14/etc/php-fpm.conf,监听端口:

value

name=”listen_address”127.0.0.1:9001/value

或者监听文件:

value

name=”listen_address”/path/to/unix/socket/value

其他参数根据服务器环境和需求自行定制。

5.启动php-fpm,以后可以通过php-fpm进行管理:

/usr/local/php-5.2.14/sbin/php-fpm

start

字php5.3.3后,php已经将php-fpm继承到php中,而且内置的php-fpm默认不支持(start|stop|reload)的平滑启动参数,需要使用官方源代码中提供的启动脚本来控制:

cp

-f

(php

-5.3.x-source-dir)/sapi/fpm/init.d.php-fpm

/etc/init.d/php-fpm

chmod

755

/etc/init.d/php-fpm

/etc/init.d/php-fpm

start

php-fpm支持的操作:

start,启动PHP的FastCGI进程。

stop,强制终止PHP的FastCGI进程。

quit,平滑终止PHP的FastCGI进程。

restart,

重启PHP的FastCGI进程。

reload,

重新加载PHP的php.ini。

logrotate,

重新启用log文件。

5.3.3的php-fpm脚本支持的操作:start|stop|force-quit|restart|reload|status

6.配置好PHP-5.2.14的php.ini,重新加载生效:

vi

/usr/local/php-5.2.14/etc/php.ini

/usr/local/php-5.2.14/sbin/php-fpm

reload

7.修改nginx配置,对需要的服务配置使用PHP-5.2.14:

location

~

.*.(php|php5)?$

{

fastcgi_pass

127.0.0.1:9001;

fastcgi_index

index.php;

include

fcgi.conf;

}

8.记录一下自己编译php5.5.10使用的配置

./configure

–prefix=/usr/local/php-5.5.10

–with-config-file-path=/usr/local/php-5.5.10/etc

–with-mysql=mysqlnd

–with-mysqli=mysqlnd

–with-bz2

–with-curl=/usr/bin

–enable-ftp

–enable-sockets

–disable-ipv6

–with-gd

–with-jpeg-dir=/usr/local

–with-png-dir=/usr/local

–with-freetype-dir=/usr/local

–enable-gd-native-ttf

–with-iconv-dir=/usr/local

–enable-mbstring

–enable-calendar

–with-gettext

–with-libxml-dir=/usr/local

–with-zlib

–with-pdo-mysql=mysqlnd

–enable-dom

–enable-xml

–enable-fpm

–with-libdir=lib64

–with-mcrypt=/usr/bin

–enable-zip

–enable-soap

–enable-mbstring

–with-gd

–with-openssl

–enable-pcntl

–with-xmlrpc

–enable-opcache

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/250761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-13 13:30
下一篇 2024-12-13 13:30

相关推荐

  • 利用Python实现两个链表合并为一个有序链表

    对于开发工程师来说,实现两个链表合并为一个有序链表是必须掌握的技能之一。Python语言在链表处理上非常便利,本文将从多个方面详细阐述如何利用Python实现两个链表合并为一个有序…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • 如何在树莓派上安装Windows 7系统?

    随着树莓派的普及,许多用户想在树莓派上安装Windows 7操作系统。 一、准备工作 在开始之前,需要准备以下材料: 1.树莓派4B一台; 2.一张8GB以上的SD卡; 3.下载并…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Python定义两个列表的多面探索

    Python是一种强大的编程语言,开放源代码,易于学习和使用。通过Python语言,我们可以定义各种数据类型,如列表(list)。在Python中,列表(list)在处理数据方面起…

    编程 2025-04-29
  • 分销系统开发搭建

    本文主要介绍如何搭建一套完整的分销系统,从需求分析、技术选型、开发、部署等方面进行说明。 一、需求分析 在进行分销系统的开发之前,我们首先需要对系统进行需求分析。一般来说,分销系统…

    编程 2025-04-29
  • Python两个线程交替打印1到100

    这篇文章的主题是关于Python多线程的应用。我们将会通过实际的代码,学习如何使用Python两个线程交替打印1到100。 一、创建线程 在Python中,我们可以使用Thread…

    编程 2025-04-28
  • leveldb和unqlite:两个高性能的数据库存储引擎

    本文将介绍两款高性能的数据库存储引擎:leveldb和unqlite,并从多个方面对它们进行详细的阐述。 一、leveldb:轻量级的键值存储引擎 1、leveldb概述: lev…

    编程 2025-04-28
  • Python中两个冒号连用

    Python中的“两个冒号”是指“::”,它在Python中有着很多用途,包括循环语句、切片、函数注解等。下面我们从多个方面来详细阐述Python中两个冒号的用法。 一、循环语句f…

    编程 2025-04-28
  • 云盘开源系统哪个好?

    本文将会介绍几种目前主流的云盘开源系统,从不同方面对它们做出分析比较,以此来确定哪个云盘开源系统是最适合您的。 一、Seafile Seafile是一款非常出色的云盘开源系统,它的…

    编程 2025-04-28

发表回复

登录后才能评论