Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP7 编译安装

PHP7 编译安装

作者头像
康怀帅
发布于 2018-02-28 07:12:36
发布于 2018-02-28 07:12:36
2.6K00
代码可运行
举报
文章被收录于专栏:康怀帅的专栏康怀帅的专栏
运行总次数:0
代码可运行

本文介绍了手动编译安装 PHP 的具体步骤。

修订记录

  • Debian9 Ubuntu17.04 出现错误请详细查看后边说明(PHP 7.1.9 不会报错了)。出现错误强烈建议使用 https://stackoverflow.com 进行搜索!

macOS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ brew tap homebrew/homebrew-php

$ brew install php71

安装依赖包

RedHat

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ yum install gcc \
              gcc-c++ \
              libxml2 \
              libxml2-devel \
              openssl \
              openssl-devel \
              libcurl \
              libcurl-devel \
              freetype \
              freetype-devel \
              libjpeg \
              libjpeg-devel \
              libpng \
              libpng-devel \
              libxslt \
              libxslt-devel \
              systemd-devel \
              libicu-devel \
              libedit-devel

Debian

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo apt install autoconf \
                   dpkg-dev \
                   file \
                   libc6-dev \
                   make \
                   pkg-config \
                   re2c \
                   gcc g++ \
                   libedit-dev \
                   zlib1g-dev \
                   libxml2-dev \
                   libssl-dev \
                   libsqlite3-dev \
                   libfreetype6-dev \
                   libxslt1-dev \
                   libcurl4-gnutls-dev \
                   libpq-dev \
                   libmemcached-dev \
                   libzip-dev \
                   libpng-dev \
                   libjpeg-dev

                   # ubuntu 16.04 没有 libargon2-017.04 + 才有,php 7.2.0 新特性
                   # libargon2-0 \

编译

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ./configure --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --with-config-file-scan-dir=/usr/local/php/etc/conf.d \
    --disable-cgi \
    --enable-fpm \
    --with-fpm-user=www-data \
    --with-fpm-group=www-data \
    --enable-ftp \
    --with-curl \
    --with-gd \
    --with-gettext \
    --with-iconv-dir \
    --with-kerberos \
    --with-libedit \
    --with-openssl \
    --with-pcre-regex \
    --with-pdo-mysql \
    --with-pdo-pgsql \
    --with-xsl \
    --with-zlib \
    --with-mhash \
    --with-png-dir=/usr/lib \
    --with-jpeg-dir=/usr/lib\
    --with-freetype-dir=/usr/lib \
    --enable-mysqlnd \
    --enable-bcmath \
    --enable-libxml \
    --enable-inline-optimization \
    --enable-gd-native-ttf \
    --enable-gd-jis-conv \
    --enable-mbregex \
    --enable-mbstring \
    --enable-opcache \
    --enable-pcntl \
    --enable-shmop \
    --enable-soap \
    --enable-sockets \
    --enable-sysvsem \
    --enable-xml \
    --enable-zip \
    --enable-calendar \
    --enable-intl \
    --enable-exif

    # ubuntu 16.04 没有 libargon2-017.04 + 才有,php 7.2.0 新特性
    # --with-password-argon2 \

若编译 Apache 模块请添加 --with-apxs2=/usr/local/apache2/bin/apxs 参数。

注意:Apache 模块方式运行 PHP 太古老,请采用新的 PHP-FPM 模式!https://cloud.tencent.com/developer/article/1047004

错误排查

configure: error: no acceptable C compiler found

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ yum install -y gcc gcc-c++
$ sudo apt install gcc g++

configure: error: xml2-config not found. Please check your libxml2 installation.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ yum install libxml2 libxml2-devel
$ sudo apt install libxml2-dev

configure: error: Cannot find OpenSSL…

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ yum install openssl openssl-devel
$ sudo apt install libssl-dev

configure: error: png.h not found.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ yum install libcurl libcurl-devel
$ sudo apt install libcurl4-openssl-dev

configure: error: freetype-config not found.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ yum install freetype freetype-devel libjpeg libjpeg-devel libpng libpng-devel
$ sudo apt install libfreetype6-dev

configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ yum install libxslt libxslt-devel
$ sudo apt install libxslt1-dev

Debian9

具体查看参考链接2

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
checking for cURL in default path not found
configure: error: Please reinstall the libcurl distribution easy.h should be in /include/curl/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo apt install libcurl4-gnutls-dev

注意,目前安装该包不能解决问题!需要建立软链接!!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo ln -s /usr/include/x86_64-linux-gnu/curl /usr/local/include/

编译选项改为 --with-curl=/usr/local

安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ make -j "$(nproc)"

$ sudo make install

加入环境变量

编辑 ~/.bash_profile

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export PATH=/usr/local/php/sbin:/usr/local/php/bin:$PATH

编辑 /etc/sudoers

注意:必须编辑此文件,否则 sudo 会找不到命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Defaults	secure_path="/usr/local/php/bin:/usr/local/php/sbin:..."

升级 pecl

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo pecl update-channels

用户组

PHP-FPM 系统默认用户与用户组

Debian:www-data

RedHat: apache

复制配置文件

将源文件中的 php.ini-development 复制到安装目录中的 etc 子目录 ,并改名为 php.ini

在源文件夹中执行以下命令,复制 systemd 文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cp sapi/fpm/php-fpm.serviceq /etc/systemd/system/
$ systemctl daemon-reload

将安装目录中的 etc 子目录中的 php-fpm.conf.default 复制为 php-fpm.conf

将安装目录中的 etc/php-fpm.d 子目录中的 www.conf.default 复制为 www.conf

systemd

已经在上一步中配置,这里贴出文件内容,便于学习。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# It's not recommended to modify this file in-place, because it
# will be overwritten during upgrades.  If you want to customize,
# the best way is to use the "systemctl edit" command.

[Unit]
Description=The PHP FastCGI Process Manager
After=network.target

[Service]
Type=notify
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo php-fpm

# 或者使用 system

$ sudo systemctl daemon-reload

$ sudo systemctl start php-fpm

# 也可以设置开机自启动

$ sudo systemctl enable php-fpm

More Information

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
麒麟系统V10 SP2 编译安装PHP 7.4.30
yum -y install libtool sqlite-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel
Kevin song
2022/11/19
3.2K0
麒麟系统V10 SP2 编译安装PHP 7.4.30
CentOS 7 安装 PHP 7.4.0 正式版
wget https://www.php.net/distributions/php-7.4.0.tar.bz2 tar -jxf php-7.4.0.tar.bz2 cd php-7.4.0 3、配置并构建 PHP。在此步骤您可以使用很多选项自定义 PHP,例如启用某些扩展等。 运行 ./configure –help 命令来获得完整的可用选项清单。 在本示例中,我们仅进行包含 PHP-FPM 和 MySQL 支持的简单配置。
Alone88
2020/09/01
2.9K0
LNMP架构介绍、安装PHP(php-fpm)
CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。
阿dai学长
2019/04/03
2K0
原 编译PHP7
环境准备:centos7 安装扩展源: sudo yum install -y release 安装基础支持 sudo yum install -y freetype-devel libevent libevent-devel libxml2 libxml2-devel ncurses ncurses-devel openssl openssl-devel libjpeg libjpeg-devel libpng libpng–devel zlib-devel bzip2 bzip2-devel
霡霂
2018/06/04
1K0
PHP8.0环境详细安装教程
  说明:最近在搭建个人网站,环境有用到PHP,特此记录。本文安装案例是以PHP8.0.0版本为示例,开始安装前建议先将第三步骤抛出异常的依赖安装,这样安装的时候就无需逐个解决问题。
IT学习日记
2022/09/13
4.6K1
PHP8.0环境详细安装教程
centos7 编译php环境记录
躺平程序员老修
2023/09/05
2210
安装php7
下载php7 wget http://cn.php.net/distributions/php-7.0.27.tar.gz 安装依赖 yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel yum -y install curl-devel yum -y install libxslt-devel 编译 ./configure
零月
2018/04/25
1.5K0
安装php7
CentOS 7 编译安装 PHP 7.4
yum install gd zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libmcrypt libmcrypt-devel
用户10063859
2022/09/23
9880
PHP自动化安装脚本
[root@localhost ~]# vim auto_install_php.sh
子润先生
2021/07/06
5340
Linxu系统安装PHP
wget https://www.php.net/distributions/php-7.3.15.tar.gz
咕咕星
2020/08/19
1.6K0
Linxu系统安装PHP
CentOS 7.4安装PHP-7.1.5
PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。PHP是目前动态网页开发中使用最为广泛的语言之一。PHP能运行在包括Windows、Linux等在内的绝大多数操作系统环境中
子润先生
2021/07/09
6640
php7详细安装教程(linux + nginx +PHP + mysql)
php下载网站:http://cn2.php.net/downloads.php 选择你需要的版本.
conanma
2021/12/02
2.7K0
Centos下编译php
1.下载php的源码 我是在官网下好,然后通过ftp发给服务器的 2.安装依赖包 sudo yum install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel \ glibc glibc-devel glib2 glib2-devel openssl-devel bzip2-devel li
治电小白菜
2020/08/25
8870
centos如何安装php7的操作方法
centos如何安装php7的操作方法 方法一、简单安装(通过yum) 1.安装epel-release rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm 2.安装PHP7的rpm源 rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 3.安装PHP7 yum install php70w 方法二、编译安装 1
用户7639835
2021/08/27
4110
2021-07-15 Centos7 安装php7,并与php8共存
前言 共存需要编译安装以指定安装目录 下载 wget https://www.php.net/distributions/php-7.4.21.tar.gz 系统依赖 yum install gcc autoconf gcc-c++ -y yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-d
无道
2021/07/19
1.1K0
安装多版本php(php5.6,php7.2)
1,报错:configure: WARNING: unrecognized options: –with-mysql, –with-mcrypt, –with-curlwrappers, –enable-gd-native-ttf 解决:删除–with-mysql –enable-gd-native-ttf –with-mcrypt ,从新安装 安装目录为:–prefix=/usr/local/php7 (可自定义)
全栈程序员站长
2022/08/09
5K0
教你编译PHP7 (nginx+mysql+php7)
操作系统: CentOS Linux, 6.5 64位 服务器: 阿里云 空的操作系统,我们从0开始. 在开始前,请确保你的Linux已联网,已联网,已联网!
lilugirl
2019/05/28
6320
手动编译安装php、nginx
以往都是使用 lnmp 一键安装包,进行开发环境的搭建,这两天自己手动编译安装php、nginx使其能成功打印出 
lukachen
2023/10/22
4220
centos 6.5 编译安装 php 7.3.9
php 5.3.3 以后不再支持 sbin/php-fpm (start|stop|reload),需要使用信号控制。
lukachen
2023/10/22
3560
LAMP之PHP
保持apache、mysql正在运行 [root@cairui php-7.2.3]# lsof -i tcp:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME AliYunDun 1335 root 18u IPv4 9047 0t0 TCP 120.25.255.87:36408->106.11.68.13:http (ESTABLISHED) httpd 32150 root 3
用户1173509
2022/03/24
2.1K0
LAMP之PHP
相关推荐
麒麟系统V10 SP2 编译安装PHP 7.4.30
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验