php /usr/lib/libjpeg.so.62,linux PHP的装配

linux PHP的安装

2. 红帽Linux PHP

2.1. 安装linux PHP

查看系统是否自带了php,若自带先卸载,否则安装后会出错。

(1)下载php源文件php-5.3.6.tar.gz,地址为http://cn2.php.net/downloads.php

(2)执行如下命令,解压源文件,以默认方式安装php

tar zxvf php-5.3.6.tar.gz

cd php-5.3.6

./configure --prefix=[php安装目录] --with-config-file-path=[php安装目录] --with-apxs2=[apache安装目录]/bin/apxs

make

make install

(3) 另一种安装方式是在系统中已经安装了apache、gd库的情况下,安装时希望把这些软件编译到php中。

安装gd库需要jpeg、png等,jpeg的主要文件有jpeglib.h, libjpeg.a, libjpeg.so等。首先检查系统中安装了没有,到/usr/include目录下看有无jpeglib.h,到/usr/lib目录下看有无 libjpeg.a和libjpeg.so,若没有则需要先安装jpeg。要查看gd是否安装,GD的主要文件有gd.h, libgd.a等,安装完成后,/usr/local/include目录下查看有无gd.h,若没有则需要统一安装gd库,安装gd请参照2.5

在64位系统下还需要运行下面两句命令,来覆盖掉原有的/usr/lib/libjpeg.so和/usr/lib/libpng.so:

ln -s /usr/lib64/libjpeg.so.62.0.0 /usr/lib/libjpeg.so

ln -s /usr/lib64/libpng.so.3.10.0 /usr/lib/libpng.so

tar zxvf php-5.3.6.tar.gz

cd php-5.3.6

./configure --with-config-file-path=[php安装目录] --prefix=[php安装目录] --with-bz2 --enable-zip --enable-mbstring --with-apxs2=[apache安装目录]/bin/apxs --with-zlib-dir=/usr/include/ --with-libxml-dir=/usr/lib64/ --with-gd --with-jpeg-dir=/usr/ --with-png-dir=/usr/ --with-freetype-dir=/usr/ --enable-soap --enable-calendar

make

make install

(4) 将php-5.3.6目录中的php.ini-development(若是开发环境建议用php.ini-development,若是生产或测试环境建议用php.ini-production)文件复制到php安装目录,并重命名为php.ini

2.2. 修改apache配置

以上步骤操作成功后会在2.1的(3)步骤的命令中“--with-apxs2”指定的apache的modules文件夹生成libphp5.so,修改apache的httpd.conf文件,添加如下内容:

LoadModule php5_module modules/libphp5.so

PHPIniDir [php.ini所在目录]

AddType application/x-httpd-php .php

若“ LoadModule php5_module modules/libphp5.so ”已存在,则不需添加。

找到默认文件,在其后添加默认文件index.php和index.php3:

DirectoryIndex index.html index.php index.php3

安装完成后在htdocs目录下,新建一个PHP文件如:

vim test.php

phpinfo();

?>

然后在IE中访问:http://机器名或IP/test.php。若PHP列表页面出现则安装成功。

2.3. 安装扩展模块

php中一般需要追加编译curl、mbstring和mcrypt,若系统中安装了数据库mysql则还需要追加mysql、pdo和pdo_mysql,若页面提示"Couldn't locate driver named mysql”,则多半是因为没有追加pdo_mysql的缘故。

在追加mcrypt时可能会提示缺少libmcrypt,这时需要自己下载安装libmcrypt,最好安装最新版本的,本例中用libmcrypt-2.5.8.tar。

下面以追加mbstring模块为例,其他模块的方式相同。

方式一:初始编辑安装

进入php-5.3.6目录,执行如下命令:

./configure --prefix=[php安装目录] --with-config-file-path=[php安装目录] --with-apxs2=[apache安装目录]/bin/apxs --enable-mbstring=shared

make

make install

方式二:追加编译安装

进入php-5.3.6/ext/mbstring目录,执行如下命令:

[php安装目录]/bin/phpize

./configure --with-php-config=[php安装目录]/bin/php-config --with-mbstring

make

make install

安装成功后会在“[php安装目录]/lib/php/extensions/no-debug-non-zts-20060613”目录下生成mbstring.so文件,在php安装路径下新建ext目录,cp mbstring.so [php安装路径]/ext/

然后修改php.ini文件,添加如下内容:

extension = mbstring.so

extension_dir = "[php安装路径]/ext"

若extension_dir = "[php安装路径]/ext"在php.ini存在,则不需添加。

安装其它扩展模块的命令都一样,只将mbstring换成对应的模块名即可。

安装libmcrypt

tar zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8/

./configure

make

make install

/sbin/ldconfig

cd libltdl/

./configure --enable-ltdl-install

make

make install

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la

ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so

ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4

ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8

2.4. 添加数据库支持

(1)mysql数据库(以mysql-5.5.8-1及64位机器为例)

查看系统是否自带了mysql,若自带先卸载,否则安装后会出错

(1.1)安装以下mysql包:

MySQL-client-community-5.1.44-1.rhel5.x86_64.rpm

MySQL-devel-community-5.1.44-1.rhel5.x86_64.rpm

MySQL-shared-community-5.1.44-1.rhel5.x86_64.rpm

MySQL-shared-compat-5.1.44-1.rhel5.x86_64.rpm

例子:rpm -ivh MySQL-client-community-5.1.44-1.rhel5.x86_64.rpm

(1.2)安装完MySQL-shared-compat-5.1.44-1.rhel5.x86_64.rpm后,记住下面提供的文件路径

[root@bogon mysql]# rpm -ivh MySQL-shared-compat-5.1.44-1.rhel5.x86_64.rpm

Preparing... ########################################### [100%]

file/usr/lib64/libmysqlclient.so.16.0.0from install of MySQL-shared-compat-5.1.44-1.rhel5.x86_64 conflicts with file from package MySQL-shared-compat-5.1.44-1.rhel5.x86_64

file/usr/lib64/libmysqlclient_r.so.16.0.0from install of MySQL-shared-compat-5.1.44-1.rhel5.x86_64 conflicts with file from package MySQL-shared-compat-5.1.44-1.rhel5.x86_64

cp -rp/usr/lib64/libmysqlclient_r.so.16.0.0 /usr/lib/libmysqlclient.so

PS:在64位计算机上安装时,需将“/usr/lib64”目录下的“libmysqlclient.so.[版本号]”(如libmysqlclient_r.so.16.0.0)文件复制到“/usr/lib”目录,并去调版本号。(注:安装高版本时可能不出现提示,但也要进行复制这一步)

若需要数据库的服务器则还需要安装MySQL-server-community-5.1.44-1.rhel5.x86_64.rpm,且server放在最后安装。

修改数据库root用户的秘密:/usr/bin/mysqladmin -u root password 'new-password'

(1.3) 进入php-5.2.9/ext/mysql目录,执行如下命令(PDO和PDO_mysql的追加相同):

[php安装目录]/bin/phpize

./configure --with-php-config=[php安装目录]/bin/php-config --with-mysql

make

make install

(1.4)安装完成后会生成一个mysql.so的文件

[root@bogon mysql]# make install

Installing shared extensions: /opt/php/lib/php/extensions/no-debug-non-zts-20060613/

[root@bogon mysql]# cd /opt/php/lib/php/extensions/no-debug-non-zts-20060613/

[root@bogon no-debug-non-zts-20060613]# ll

total 156

-rwxr-xr-x 1 root root 148709 Jun 9 17:57mysql.so

在php安装目录新建ext目录如:/opt/php/ext。将mysql.so文件复制到此目录下,   如:cp /opt/php/lib/php/extensions/no-debug-non-zts-20060613/mysql.so /opt/php/ext/

(1.5)修改php.ini文件加载mysql组件,添加extension_dir=/opt/php/ext和extension=mysql.so,如果有extension_dir=/opt/php/ext则不需要增加

; extension folders as well as the separate PECL DLL download (PHP 5).

; Be sure to appropriately set the extension_dir directive.

;

extension_dir=/opt/php/ext

extension=mysql.so

;extension=php_bz2.dll

;extension=php_curl.dll

(1.6) 验证是否安装成功

再次在IE中访问:机器名或IP/test.php 搜索mysql,出现mysql组件即表示成功,其它组件一样。(启动mysql:/etc/init.d/mysql start)

(2) oracle数据库(以oracle 10g及64位机器为例)

(2.1) 解压安装oracle客户端instantclient,配置$ORACLE_HOME环境变量,进入[oracle安装路径]目录,执行如下命令创建文件链接:

ln -s libclntsh.so.10.1 libclntsh.so

ln -s libocci.so.10.1 libocci.so

(2.2) 可2.6中说明的“初始编译安装”或“追加编译安装”,为./configure命令追加--with-oci8=instantclient,[oracle安装路径]

(2.3) 若为“追加编译安装”,则会生成oci8.so文件,将该文件放到php.ini中extention_dir所指定的目录,然后在php.ini文件加上extention=oci8.so

2.5. 添加gd支持

向php添加gd库的详细说明及gd的安装步骤,详见http://wecoo.iteye.com/blog/1158858

添加gd支持有两种方式,一种是系统自带有gd时,可以用初始安装的方式,见2.1的(3);另一种是安装gd第三方插件,操作步骤如下:

(1) 下载下列包:

jpegsrc.v6b.tar.gz

libpng-(version).tar.gz

freetype-(version).tar.gz

gettext-(version).tar.gz

gd-(version).tar.gz

(2) 安装jpeg-6b(支持jpeg):

(2.1) 执行如下命令创建目录:

mkdir -p [jpeg-6b安装目录]

mkdir -p [jpeg-6b安装目录]/bin/

mkdir -p [jpeg-6b安装目录]/lib/

mkdir -p [jpeg-6b安装目录]/include/

mkdir -p [jpeg-6b安装目录]/man/

mkdir -p [jpeg-6b安装目录]/man/man1/

(2.2) 解压jpegsrc.v6b.tar.gz

(2.3) 进入[jpeg-6b解压目录],执行如下命令,替换文件:

cp /usr/share/libtool/config.sub .

cp /usr/share/libtool/config.guess .

(2.4) 进入[jpeg-6b解压目录]执行如下命令安装jpeg-6b:

./configure --prefix=[jpeg-6b安装目录] --enable-shared --enable-static

make

make install

(3) 安装libpng(支持png):

解压libpng-(version).tar.gz,进入[libpng解压目录]执行如下命令安装libpng:

./configure --prefix=[libpng安装目录] --enable-shared --enable-static

make

make install

(4) 安装freetype:

解压freetype-(version).tar.gz,进入[freetype解压目录]执行如下命令安装freetype:

./configure --prefix=[freetype安装目录]

make

make install

(5) 安装gettext(安装gd可能需要):

解压gettext-(version).tar.gz,进入[gettext解压目录]执行如下命令安装gettext:

./configure --prefix=[gettext安装目录]

make

make install

(6) 安装gd:

解压gd-(version).tar.gz,进入[gd解压目录]执行如下命令安装gd:

./configure --prefix=[gd安装目录] --with-jpeg=[jpeg-6b安装目录] --with-png=[libpng安装目录] --with-freetype=[freetype安装目录] --with-gettext=[gettext安装目录]

(如./configure --prefix=/opt/gd-2.0.35 --with-jpeg=/opt/jpeg-6b/ --with-png=/opt/libpng-1.2.35/ --with-freetype=/opt/freetype-2.3.5/ --with-gettext=/opt/gettext-0.17/)

make

make install

安装时如果出现

configure.ac:64: error: possibly undefined macro: AM_ICONV

If this token and others are legitimate, please use m4_pattern_allow.

See the Autoconf documentation.

查看/usr/lib目录下的libattr.a是不是灰色的,没有权限。如果是输入以下命令

chmod 777 libattr.a

(7) 将gd添加到php

(7.1) 初始编译安装

编译php时,向./configure命令追加如下内容--with-jpeg=[jpeg-6b安装目录] --with-png=[libpng安装目录] --with-freetype=[freetype安装目录] --with-gettext=[gettext安装目录] --with-gd=[gd安装目录]

(如./configure --with-config-file-path=/opt/php --prefix=/opt/php --with-bz2 --enable-zip --enable-mbstring --with-apxs2=/opt/apache2/bin/apxs --with-zlib-dir=/usr/include/ --with-libxml-dir=/usr/lib64/ --with-jpeg-dir=/opt/jpeg-6b --with-png-dir=/opt/libpng-1.2.35 --with-freetype-dir=/opt/freetype-2.3.5 --with-gettext=/opt/gettext-0.17 --with-gd=/opt/gd-2.0.35 --enable-soap --enable-calendar)

具体步骤参照2.1的(3)

(7.2) 追加编译安装

进入“[php解压目录]/ext/gd”目录,执行如下命令:

[php安装目录]/bin/phpize

./configure --with-php-config=[php安装目录]/bin/php-config --with-jpeg=[jpeg-6b安装目录] --with-png=[libpng安装目录] --with-freetype=[freetype安装目录] --with-gettext=[gettext安装目录] --with-gd=[gd安装目录]

make

make install

安装成功后会在“[php安装目录]/lib/php/extensions/no-debug-non-zts-20060613”目录下生成gd.so文件,

然后cp [php安装目录]/lib/php/extensions/no-debug-non-zts-20060613/gd.so /opt/php/ext

(7.3) 修改php.ini文件加载gd组件,添加extension_dir=/opt/php/ext和extension=gd.so,如果有extension_dir=/opt/php/ext则不需要增加

extension_dir=/opt/php/ext

extension=gd.so

修改php.ini文件,操作同2.3的方式二。

若追加编译不成功,则用初始编译,参照2.1的(3)

2.6. 添加soap支持   cd php-5.1.6/ext/soap

/usr/local/php/bin/phpize

./configure –with-php-config=/usr/local/php/bin/php-config –enable-soap

make

make install

编译后的soap.so文件保存在了/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922目录下

修改php.ini文件

extension=soap.so

3. 参考资料

gd介绍

http://wecoo.iteye.com/blog/1158858

pdo介绍:

http://www.phpchina.com/html/36/9136-8584.html

linux环境php安装:

http://blog.chinaunix.net/u/19637/showart_489123.html

http://blog.chinaunix.net/u/16215/showart_438082.html

http://www.freeplug.org/blog/read.php?81

1 楼

xu-zhx

2012-02-13

赞,写的真详细

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux多用户运行同一程序_linux系统中CentOS有哪些优势,让它长盛不衰?

CentOS是目前评价和口碑都不错的linux系统,甚至很多公司安装的都是CentOS系统,对于初入门的小白可能不了解这个系统,今天我们就整理一下CentOS系统的七大优势。1. 开源、免费众所周知,不管是微软的 Windows 还是苹果的 macOS&…

代码注释掉还能执行_日志消息是可执行代码和注释

代码注释掉还能执行尽管在一个人的代码中应添加多少注释之间存在意见分歧,但我认为可以肯定地说,大多数开发人员都同意以下代码段中的注释是多余的: // increment the total total;在该示例中,代码很简单,而且实际上是…

浅析 Linux 初始化系统(系统服务管理和控制程序/init system) -- UpStart

文章目录一、Upstart 简介(一)开发 Upstart 的缘由(二)Upstart 的特点二、Upstart 概念和术语(一)Job(二)Job 生命周期(三)事件 Event1.Signals2.Methods3.Ho…

php如何在类的外部修改成员属性,php中如何在外部修改类的私有或受保护属性值...

php中怎么在外部修改类的私有或受保护属性值在做单元测试框架时,发现了个比较郁闷的问题:测试人员需要在类外修改类的private或protected成员变量的值,而这些变量没有抽象成public的属性,同时为了代码量的问题,也不可能…

telnet到设备里 php_金融行业思科设备典型网络故障案例:76系列典型案例(一)...

一、Cisco 7606主备引擎自动切换01故障现象某行上联路由器cisco7606 x月x日引擎自行切换,这种情况是第一次发生,至今仍是备引擎是active,主引擎是standby。02分析过程思科TAC提取了log日志和crashinfo信息:Previous engine detect…

白盒测试方法静态分析_静态分析的教育方面

白盒测试方法静态分析加入我们项目的新程序员经常问我们是否有自动格式化工具,以使Java代码看起来完全像Qulice期望的那样。 (Quili是我们使用的静态分析器。)我总是回答说,拥有这样一个自动代码抛光器只会有害,并且不…

php 去除图片黑边,C#_c#扫描图片去黑边(扫描仪去黑边),自动去除图像扫描黑边复制代 - phpStudy...

/// /// 自动去除图像扫描黑边/// /// public static void AutoCutBlackEdge(string fileName){//打开图像Bitmap bmp OpenImage(fileName);RemoveBlackEdge(bmp);//保存图像SaveImage(bmp, fileName);}private static byte[] rgbValues; // 目标数组内存/// /// 图像去黑边//…

《标准普通话教程》中对平舌音的发音方法的说明

《标准普通话教程》中关于平舌音的发音方法的描述: 第一个版本:大部分教材和老师 平舌音发音时,舌尖放在下齿背(下齿龈) 第二个版本:少部分教材和老师 平舌音发音时,舌尖放在下齿背&#xff0…

java javadoc_使用Java 9向Javadoc搜索添加术语

java javadoc有一个相对较旧的网页,称为“ Proposed Javadoc Tags ”,最初似乎是与Javadoc 1.2一起编写的,其中列出了“ Sun有朝一日可能会在Javadoc中实现的标签”。 在此列表中的标签是category , example , tutoria…

oracle system用户创建job 其他用户,oracle创建表空间、用户和表以及sys和system的区别...

一、oracle的3个内置账号(口令管理)scott(示范账户) tiger 内置账号system 系统管理员 操作用户sys 超级管理员 操作数据conn system/sasa;show user登录超级用户conn a/b as sysdba 或者 sysopera/b任何账号密码都可以(只能在服务端(安装数据的电脑)上运行更改用户密码&#x…

浅析 Linux 初始化系统(系统服务管理和控制程序/Init System) -- systemd

文章目录一、Systemd 的简介和特点(一)同 SysVinit 和 LSB init scripts 兼容(二)更快的启动速度(三)systemd 提供按需启动能力(四)Systemd 采用 Linux 的 Cgroup 特性跟踪和管理进程…

查询 service monitor 时发生内部错误_通过Service访问应用 (1)

目录通过Service访问应用通过Pod IP访问应用 通过ClusterIP Service在集群内部访问 通过Service访问应用通过之前的操作,应用部署完成了,我们的Demo网站已经成功启动了,那么如何访问网站呢?通过Pod IP访问应用我们可以通过Pod IP来…

jdk 8 时区 转换_使用JDK 8将收藏转换为地图

jdk 8 时区 转换我多次遇到这样的情况,希望将多个对象存储在Map中而不是Set或List中,因为将唯一标识信息的Map应用于对象有一些优势 。 Java 8通过流和Collectors.toMap(…)方法使翻译变得比以往更加容易。 使用Map而不是Set的一…

开源备份软件 oracle,oracle备份和恢复

最好把所有表删掉重新导入,表字段改变不会还原出来 ,只会还原数据1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中exp system/managerTest filed:\DB_backup\GWAMQA_Oracle\GWAM_Dev_201410311059.dmp fully2 将数据库中system用…

c语言 方程改main的值_C语言编程笔记丨编写第一个C语言程序hello world,我教你哇...

如果用C语言输出:Hello,world!,该如何编写程序?**代码如下:**#include//包含标准库的信息main()//定义名为main的函数,不接受参数值{//main函数的语句都放在花括号中,也表示函数体的…

iPhone 手机/苹果手机如何设置来电铃声?

文章目录方法一、使用 APP 库乐队设置方法二、使用第三方软件「爱思助手」设置方法一、使用 APP 库乐队设置 详见《iPhone 手机设置铃声简易教程》 方法二、使用第三方软件「爱思助手」设置 详见《苹果 iPhone 手机怎么设置铃声》

linux定时创建文件,linux下如何创建定时任务

文/PM回忆录本篇文章不详细讲述cron服务的那种配置文件,只是应用层面的讲解,只求初步的掌握。说到定时任务,不能不介绍下cron:一、cron定时任务是什么在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|gr…

连接堡垒机出现java环境_Java 8:长期支持的堡垒

连接堡垒机出现java环境斯蒂芬科尔本 ( Stephen Colebourne )的文章“ Java 9可以使用六个星期 ”开始,“ Java 9仅仅六个星期就已经过时了。” Colebourne参考了Mark Reinhold博客文章“ Moving Java Forwarding Faster ”,并写道…

assertj断言异常_编写自定义的AssertJ断言

assertj断言异常AssertJ是广泛使用的Hamcrest匹配器的替代匹配库。 实际上,对于我自己的项目,我已经更改为仅使用AssertJ-我只是发现流畅的界面和可扩展性非常吸引人。 您可以编写自定义断言,如下所示: 想象一下一种具有强度和饮…

Unix 发展简史

1965年时,贝尔实验室(Bell Labs)加入一项由通用电气(General Electric)和麻省理工学院(MIT)合作的项目;该项目要建立一套多使用者、多任务、多层次(multi-user、multi-ta…