参考先前的文章:Ubuntu 14 编译安装 PHP 5.4.45 + Nginx 1.4.7 + MySQL 5.6.26 笔记

安装过程:

##################################################
### 1、安装PHP依赖库
################################################## # 安装依赖库
sudo apt-get -y install libxml2-dev libjpeg62-dev libpng-dev libfreetype6-dev autoconf libcurl3-openssl-dev #安装 libmcryp
cd /opt/software-backup/lnmp/source2/php/lib
sudo tar -xzvf ./libmcrypt-2.5.8.tar.gz
cd ./libmcrypt-2.5.8
sudo ./configure --prefix=/usr
sudo make && sudo make install #安装 mhash
cd /opt/software-backup/lnmp/source2/php/lib
sudo tar -xzvf ./mhash-0.9.9.9.tar.gz
cd ./mhash-0.9.9.9
sudo ./configure --prefix=/usr
sudo make && sudo make install #安装 mcrypt
sudo /sbin/ldconfig #搜索出可共享的动态链接库
cd /opt/software-backup/lnmp/source2/php/lib
sudo tar -xzvf ./mcrypt-2.6.8.tar.gz
cd ./mcrypt-2.6.8
sudo ./configure
sudo make && sudo make install #安装 libiconv
cd /opt/software-backup/lnmp/source2/php/lib
sudo tar -xzvf ./libiconv-1.14.tar.gz
cd ./libiconv-1.14
sudo ./configure --prefix=/usr
sudo make && sudo make install #安装bzip2
cd /opt/software-backup/lnmp/source2/php/lib
sudo tar -xzvf ./bzip2-1.0.6.tar.gz
cd ./bzip2-1.0.6
sudo make && sudo make install ##################################################
### 2、安装 PHP php-5.4.45
##################################################
cd /opt/software-backup/lnmp/source2/php
sudo tar -xzvf ./php-5.4.45.tar.gz
cd ./php-5.4.45
sudo mkdir /opt/software/php # 防止出现 cp:cannot stat 'sapi/cli/php.1': No such file or directory 错误
sudo ./buildconf --force #生成配置
sudo ./configure --prefix=/opt/software/php --with-config-file-path=/opt/software/php/etc --with-openssl --with-zlib --with-bz2 --with-gd --with-jpeg-dir --with-png-dir --with-gettext --with-mhash --with-freetype-dir --with-mcrypt --with-iconv --with-curl --with-curlwrappers --with-xmlrpc --with-mysql=/opt/software/mysql --with-pdo-mysql=/opt/software/mysql --with-mysqli=/opt/software/mysql/bin/mysql_config --enable-zip --enable-mbstring --enable-mbregex --enable-bcmath --enable-soap --enable-sockets --enable-ftp --enable-gd-native-ttf --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-fpm --with-fpm-user=jianbao --with-fpm-group=jianbao --without-pear #编译安装
sudo make && make install ##################################################
### 4、配置php.ini
##################################################
#cp ./php.ini-production /opt/software/php/etc/php.ini #复制php配置文件到安装目录
sudo mv /etc/php.ini /etc/php.ini.old
sudo cp -rf /opt/software-backup/lnmp/config/php.ini /opt/software/php/etc/php.ini
sudo ln -s /opt/software/php/etc/php.ini /etc/php.ini #添加软链接 ##################################################
### 5、配置php-fpm
##################################################
#cp /opt/software/php/etc/php-fpm.conf.default /opt/software/php/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
sudo cp -rf /opt/software-backup/lnmp/config/php-fpm.conf /opt/software/php/etc/php-fpm.conf #设置 php-fpm 开机启动
sudo cp -rf /opt/software-backup/lnmp/config/php-fpm /etc/init.d/php-fpm #拷贝php-fpm到启动目录
sudo chmod +x /etc/init.d/php-fpm #添加执行权限
sudo update-rc.d php-fpm defaults #设置开机启动 sudo service php-fpm start #启动php-fpm
sudo service nginx restart #重启nginx sudo cp -rf /opt/software-backup/lnmp/source2/index.php /opt/software/nginx/html
sudo chmod -R +x /opt/software/nginx/html
sudo chown -R jianbao:jianbao /opt/software/nginx/html

##把PHP的相关命令路径添加到 系统环境变量

$sudo vim /etc/bash.bashrc   // 在文件末追加以下文本

export PATH=$PATH:/opt/software/php/bin:

问题汇总:

问题1:在安装PHP依赖库时

$ sudo apt-get -y install libxml2-dev libjpeg-dev libpng-dev libfreetype6-dev

时,报错:

下列软件包有未满足的依赖关系:
 libjpeg-dev : 依赖: libjpeg8-dev 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

解决方案:

把 libjpeg-dev 换成了 libjpeg62-dev,即

$ sudo apt-get -y install libxml2-dev libjpeg62-dev libpng-dev libfreetype6-dev

问题2:编译PHP,执行 sudo make 时,报错:

undefined reference to `libiconv_open'
undefined reference to `libiconv_close'
undefined reference to `libiconv'

解决方案:

那表示在 ./configure 沒抓好一些环境变数值。错误发生点在建立“-o sapi/cli/php”时出错,没給到要 link 的 iconv 函式库参数。

编辑 Makefile 大约77 行左右的地方: EXTRA_LIBS = ..... -lcrypt,在最后加上 -liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv

问题3:编译PHP,sudo make 通过,但是执行 sudo make install 时,又报错:

Installing PHP CLI binary:        /opt/software/php/bin/
Installing PHP CLI man page:      /opt/software/php/php/man/man1/
cp: cannot stat `sapi/cli/php.1': No such file or directory
make: *** [install-cli] 错误 1

网络资料说:

在执行编译PHP的 ./configure 之前,要先执行一下

sudo ./buildconf  --force,为了防止出现 cp:cannot stat 'sapi/cli/php.1': No such file or directory

不过,在 执行 ./buildconf  --force 之前,还要先执行一下:

sudo apt-get install autoconf

否则,报错:

Forcing buildconf
Removing configure caches
buildconf: checking installation...
buildconf: autoconf not found.
           You need autoconf version 2.59 or newer installed
           to build PHP from Git.
make: *** [buildmk.stamp] 错误 1

参考:

Ubuntu编译安装 GD以及PHP

安装PHP出现make: *** [sapi/cli/php] Error 1 解决办法

PHP安装常见错误小结

【荐】交叉编译php5,、nginx、squid方法

Ubuntu 12 编译安装 PHP 5.4 及 问题汇总的更多相关文章

  1. Ubuntu 14 编译安装 PHP 5.4.45 + Nginx 1.4.7 + MySQL 5.6.26 笔记

    Ubuntu 14 编译安装 PHP 5.4.45 + Nginx  1.8.0/1.4.7 + MySQL 5.6.26 笔记,主要是给自己的PC机安装,非生产环境! 一.下载必要的源码 1.1.下 ...

  2. 使用Ubuntu系统编译安装Zabbix企业级监控系统

    使用Ubuntu系统编译安装Zabbix企业级监控系统   作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Ubuntu系统部署笔记:https://www.cnblogs.com/ ...

  3. Ubuntu下编译安装postgreSQL 10.5

    Ubuntu下编译安装postgreSQL 10.5 ubuntu 16.04 LTS系统postgreSQL 10.5 安装包准备 1.从PostgreSQL官网下载PostgreSQL的安装包 安 ...

  4. 在Ubuntu下编译安装GreatSQL

    在Ubuntu下编译安装GreatSQL 本次介绍如何利用Docker构建Ubuntu环境,并将GreatSQL源码编译成二进制文件. 1.准备工作 先创建本次Docker的workdir为 /dat ...

  5. ubuntu 12.04 安装Docker 实战

    2016-3-8 从网络服务商那里申请到一台Ubuntu测试服务器,用来测试安装Docker环境. 注:本人初学Docker,对Linux命令也仅是稍稍了解,如有错误,烦请告知. 查看系统相关信息 可 ...

  6. 解决在ubuntu 12.10安装vmware-tools实现文件共享问题

    解决在ubuntu 12.10安装vmware-tools出现的“The path "" is not a valid path to linux-headers-3.5.0-17 ...

  7. Ubuntu操作系统编译安装zabbix报错汇总

    Ubuntu操作系统编译安装zabbix报错汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.报错提示:"configure: error: MySQL libra ...

  8. ubuntu 12.04安装TP-LINK TL-WN725N v2

    用了一个上午,折腾完毕,分享如下. 1.先试了ndiswrapper和compat-wireless,各种不给力.后来看这篇博文<Ubuntu12.04下安装TL-WN322G+无线网卡驱动(R ...

  9. Ubuntu 12.04 安装wine1.7

    从源码安装wine 我的系统环境:ubuntu 12.04.4 X64 wine版本:wine-1.7.12.tar.bz2 解压:tar -xvf wine-1.7.12.tar.bz2 进入win ...

随机推荐

  1. [JavaEE]如何唤醒Sleep中的线程

    主线程调用子线程的interrupt()方法,导致子线程抛出InterruptedException, 在子线程中catch这个Exception,不做任何事即可从Sleep状态唤醒线程,继续执行. ...

  2. BZOJ2186: [Sdoi2008]沙拉公主的困惑

    传送门 常规数论题,利用欧拉函数的相关性质. 题求$[1,N!]$中与$M!$互质的数的个数,且$M \leq N$.然后根据欧拉函数的相关性质很容易得出这道题的答案为$\frac{\phi (M!) ...

  3. 4 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之Lvs为Mysql-slave做负载均衡

    preface Mysql+drbd+heart能够实现Mysql的高可用了,master出现故障的时候能够快速切换.在现在的业务情况下,读操作多,写操作少的情况下,一台DB server明显扛不住, ...

  4. 史上最全的Linux常用命令

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  5. 9月26日JavaScript表单验证、正则表达

    一.非空验证 trim:去空格(去掉前后的空格),任何字符串都可以用这个方法.写法为:if(v.trim().length==0),表示如果去掉空格后的字符串的长度为0. <body> & ...

  6. Java/JavaWeb中读取资源文件

    1.一般工程中使用I/O类指定文件的绝对路径读取 FileInputStream fis = new FileInputStream("src/main/resources/zsm.prop ...

  7. codeforces 712B. Memory and Trident

    题目链接:http://codeforces.com/problemset/problem/712/B 题目大意: 给出一个字符串(由'U''D''L''R'),分别是向上.向下.向左.向右一个单位, ...

  8. Swift控制器加载xib Swift Controller'view load from xib

    override func loadView() { NSBundle.mainBundle().loadNibNamed("ViewController", owner: sel ...

  9. phpmyadmin 链接远程mysql

    这个只是自己的笔记 新手 不记下来以后又忘记了~ 在这以前已经给mysql设置了可以远程连接的账户 版本 phpMyAdmin-4.2.11-all-languages 解压到D盘下www   本地环 ...

  10. linux sort,uniq,cut,wc,tr命令详解

    sort是在Linux里非常常用的一个命令,对指定文件进行排序.去除重复的行 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sor ...