源码编译安装PHP7

Linux软件源码安装常用步骤

  1. wget下载压缩包
  2. 解压并进入源码目录
  3. ./configure 运行配置 添加配置常数(./configure --help)
  4. make 编译
  5. make install 安装

源码编译安装PHP

下载安装包

wget http://am1.php.net/get/php-7.2.4.tar.gz

wget [参数] [URL]

wget 指令介绍

解压安装包并进入源码目录

tar -zxvf php-7.2.4.tar.gz
cd php-7.2.4

tar 指令介绍

configure 配置

  • 可查看configure 配置参数

    ./configure --help

  • 指定安装目录

    --prefix=/usr/bin/php

  • 指定php.ini存放目录

    --with-config-file-path=/usr/bin/php/etc

    不设置默认是lib,配置参数指定的是cli的ini。fpm的ini要在fpm.conf中去设置

此步骤常见错误是缺少安装依赖软件如gcc,autoconfig,libxml2等,可根据提示安装对应的依赖软件sudo apt install xxx

编译

make

此步骤常见的错误是报内存不够用(virtual memory exhausted: Cannot allocate memory),可试着重新设置configure参数,不要安装fileinfo扩展,或者设置交换分区

安装

make install

测试是否安装成功

/usr/bin/php/bin/php -m

将PHP添加进环境变量

sudo ~/.bashrc
alias php7=/usr/bin/php
source ~/.bashrc

这种方法只为当前用户将php添加到环境变量,并没有为所有的用户。如果要为所有用户都添加环境变量,则需要修改/etc/profile

添加php.ini 文件

cp php.ini-development /usr/bin/php/etc
mv /usr/bin/php/etc/php.ini-development /usr/bin/php/etc/php.ini

当然上面的存放php.ini的目录不一定正确,php.ini存放的目录依赖于configure时配置的参数,所以,合理的是执行

php -i | grep php.ini 来获取应该存放的目录

源码编译安装php遇到的坑

缺少依赖的软件

  • 没有gcc

    sudo apt install gcc

  • autoconfig

    sudo apt install autoconfig

  • 没有libxml2

    sudo apt install libxml2-dev

事实上,如果报错缺少libxml2这个软件,apt install libxml2不一定能安装上,因为在你的apt源里,libxml2的软件包可能叫libxml2-dev,所以你可以根据错误提示搜索一下这个软件包相关的有哪些。

配置php.ini后不生效

这种情况,通常是因为php.ini存放的位置不正确引起的。如果configure的时候没有设置--with-config-file-path=Path,那么默认是在安装目录的lib目录下,有设置则在对应的目录。

可以通过php -i | grep php.ini获得php.ini应该存放在哪个目录下,对应的将php.ini引入就能生效

编译过程中内存不够

常见于内存小于2G的服务器( virtual memory exhausted: Cannot allocate memory)

有两种解决方案:

  • 不安装fileinfo扩展

    因为5.3以后会默认安装fileinfo扩展,如果你的服务器内存过小就会在编译的过程中报内存不够的错误。可通过重新设置./configure的参数--disable-fileinfo 再重新编译解决。当然这种方法治标不治本。建议还是通过设置虚拟内存来解决

  • 配置虚拟内存(交换分区)

    使用free可查看内存信息free

    使用sudo swapon -s 查看交换分区信息

    设置虚拟内存步骤:

创 建 swap 文 件
cd /var
sudo dd if=/dev/zero of=swapfile bs=1024 count=2048000
sudo mkswap swapfile
激 活
sudo chmod 600 swapfile
sudo swapon swapfile
开 机 自动 创建
sudo vim /etc/fstab
/swapfile   none    swap    sw    0   0

源码编译安装PHP扩展

下载安装包

wget

进入源码目录

cd

执行phpize(PHP目录下的bin目录下)生成configure文件

/usr/bin/php/bin/phpize

执行configure设置参数

./configure  --with-php-config=/usr/bin/php/bin/php-config

编译安装

make && make install

其他一键式安装方式:

  • apt install
  • pecl install (/usr/bin/php/bin/pecl)

原文地址:https://www.cnblogs.com/Vultr/p/8955185.html

时间: 2024-11-06 03:51:04

源码编译安装PHP7的相关文章

Centos6.8源码编译安装PHP7

一.下载源码包 打开php官网http://php.net/点击导航栏的Downloads进入下载页面:http://php.net/downloads.php下载想要安装的版本,这里下载最新版的php-7.1.8 的源码包. 下载环境源码包wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz   可以选择版本,这里下载最新版libiconv-1.15.tar.gz 二.解压源码包并安装环境包 1 tar zxvf libi

源码编译安装php7.0.5

源码包下载地址 http://219.239.26.3/files/4255000007F687B2/cn2.php.net/distributions/php-7.0.5.tar.gz 安装epel扩展yum源 [[email protected] ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [[email protected] ~]# yum clean all

Ubuntu 16.04 源码编译安装PHP7

一.下载PHP7的最新版源码 php7.0.9  下载地址 http://php.net/get/php-7.0.9.tar.gz/from/a/mirror 二.解压 tar -zxf /tmp/php-7.0.9.tar.gz 三.安装相关依赖库 sudo apt-get update sudo apt-get install libxml2-dev #安装gcc sudo apt-get install build-essential sudo apt-get install openss

CentOS7源码编译安装PHP7.2

一.环境 CentOS7 二.相关资源 PHP官方网站 PHP官方下载页 三.编译安装 1. 下载php 下载并解压 # 下载php wget https://www.php.net/distributions/php-7.2.16.tar.gz # 解压 tar -zxvf php-7.2.16.tar.gz 查看目录 [[email protected] ~]# ll 总用量 19232 drwxrwxr-x 14 root root 4096 3月 5 19:05 php-7.2.16 -

Linux源码编译安装php7.3

---恢复内容开始--- ps:一切从简 一.安装所需环境 yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libzip-devel pcre-devel 二.下载及安装nginx 1.下载php wget http://cn2.php.net/distributions/php-7.3.3

源码编译安装Mysql5.7版本

1.源码编译安装mysql(5.7版本) 下载地址: https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz #(MySQL从5.7版本之后,boost是必须的,建议把系统自带的boost库卸载,源码编译安装高版本 Boost库是为C++语言标准库提供扩展的一些C++程序库的总称) (1)环境准备: [[email protected] ~]# ls mysql-boost-5.7.18.tar.gz  nginx

CentOS7.4 源码编译安装LNMP

1.基于CentOS7.4源码编译安装得lnmp 系统环境CentOS 7.4 系统最小化安装,只安装了一些常用包(vim.lirzs.gcc*.wget.bash-completion) nginx版本1.14.0 mysql版本5.7.20 php版本7.2.6 1.1 下载网络yum源 [[email protected]_4 ~]# wget http://mirrors.aliyun.com/repo/Centos-7.repo -P /etc/yum.repos.d/    #这里安

CentOS7.6源码编译安装PHP 7.3.8

安装步骤 PHP官网下载链接:https://www.php.net/downloads.php 1. 使用wget命令下载源码安装包 wget https://www.php.net/distributions/php-7.3.8.tar.gz --no-check-certificate [说明]如果报SSL Certification错误信息的话,就加上 --no-check-certificate选项,一般不需要添加. 2. 解压.tar.gz文件 tar -xzvf php-7.3.8

马哥linux学习笔记:源码编译安装

由于rpm包在作者制作封装的时候已经把程序的一些特性固定了,如果我们根据自己的需求,需要运用程序的一些没有普适性相关特性,就需要下载程序的源码手动编译安装了,这里只是简单的介绍一下C代码的程序包编译安装方法. 为了能更直观的看到源码编译安装的过程,我演示一下在centos7.2环境中编译安装httpd2.2: 首先,编译的前提是得有称手的工具及环境了,编译c源代码就需要用到开发工具,make,gcc了,环境就需要开发库跟头文件了,如果系统中没有这些,就需要yum安装了. 这里我运行yum gro