php 安装
时间:2006-08-02 来源:wxgchinaunix
php 安装
——————————————————
OS:RedHat9.0
kernel: 2.4.20
——————————————————
1.安装版本的选择: 选择较新的Release版5.1.2
采用Source code安装 2.下载 http://www.phpchina.cn/downloads/PHP/php-5.1.2.tar.gz 注意因为PHP采用 source code(Tarball) 安装,所以需要先安装支持的包,比如jpg,GD等包 这里一并下载: (1)perl(php需要)
http://downloads.activestate.com/ActivePerl/Linux/5.6/ActivePerl-5.6.1.638-i686-linux.rpm
(2)curl(可以不要)
http://curl.haxx.se/download/curl-7.15.0.tar.gz
(3)libxml2(php需要)
http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.19.tar.gz
(4)libxslt(可以不要)
http://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/libxslt-1.1.15.tar.gz
(5)zlib(这个好像是必需要的)
http://www.zlib.net/zlib-1.2.3.tar.gz
下面是php对图形支持需要的库
(1)GD
http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
(2)freetype
http://keihanna.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.10.tar.gz
(3)jpeg
http://www.ijg.org/files/jpegsrc.v6b.tar.gz
(4)libpng
http://nchc.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.8.tar.gz
3.安装 先安装需要的库(解压缩这种低级问题就不说了) 安装GD库(让PHP支持GIF,PNG,JPEG)
a.安装 jpeg6
建立目录:
# mkdir -p /usr/local/jpeg6
# mkdir -p /usr/local/jpeg6/bin
# mkdir -p /usr/local/jpeg6/lib
# mkdir -p /usr/local/jpeg6/include
# mkdir -p /usr/local/jpeg6/man
# mkdir -p /usr/local/jpeg6/man1
# mkdir -p /usr/local/jpeg6/man/man1 # cd jpeg-6b
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
# make; make install b.安装libpng
# cd libpng-1.2.8
# cp scripts/makefile.std makefile
# make; make install c.安装 freetype
# cd freetype-2.1.10
# mkdir -p /usr/local/freetype
# ./configure --prefix=/usr/local/freetype
# make;make install d.:安装zlib
#cd zlib.1.2.3
# ./configure
# make;make install e.安装GD库
# mkdir -p /usr/local/gd2
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/
--with-png=/usr/local/lib/
--with-zlib=/usr/local/lib/
--with-freetype=/usr/local/freetype/
# make; make install e.安装Curl库
# mkdir -p /usr/local/curl
# ./configure --prefix=/usr/local/curl
# make; make install 安装php5需要的支持库
a.安装libxml2
# cd libxml2-2.6.19
# mkdir -p /usr/local/libxml2
# ./configure --prefix=/usr/local/libxml2
# make; make install b.安装 libxslt(可选安装,你可以不安装)
# mkdir -p /usr/local/libxslt
# cd libxslt-1.1.15
# ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
# make; make install 安装perl 就简单了 rpm -ivh ActivePerl-5.6.1.638-i686-linux.rpm 安装php5 ./configure --prefix=/usr/local/php \
->--with-apxs2=/usr/local/apache2/bin/apxs \
->--with-mysql=/usr/local/mysql/ \
->--with-libxml-dir=/usr/local/libxml2/ \
->--with-zlib-dir=/usr/lib \ 下面是GD
->--with-gd=/usr/local/gd2/ \
->--with-jpeg-dir=/usr/local/jpeg6/ \
->--with-png=/usr/local/lib \
->--with-freetype-dir=/usr/local/freetype/ \
curl库
->--with-curl=/usr/local/curl/ \
支持ftp 以及soap 和xslt等等
->--enable-ftp \
->--enable-soap \
->--with-xsl=/usr/local/libxslt/ \
->--enable-xslt 其中apache2\mysql\libxml2\zlib 等项是必须的,其他的GD库等等都是可选 然后make;make install 编译安装完毕,拷贝配置文件 cp php.ini-dist /usr/local/php/lib/php.ini
4.重新配置apache2让他支持php。 配置 httpd.conf 让apache支持PHP # vi /usr/local/apache2/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps 找到DirectoryIndex 加入index.php index.phps
DirectoryIndex index.php index.html index.html.var 找到
LoadModule php5_module modules/libphp5.so 安装svn时候我们说过,svn是Apache的一个module,同样php也一样,
这样的结构就比较简单了。
对了如果你发现还有
LoadModule php4_module modules/libphp4.so
说明你安装过php4 哈哈,赶快把php4注释了吧,否则不会正确的! 我这里还有svn的module
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so 重新启动apache
/usr/local/apache2/bin/httpd -k restart 另外我建立了一个新的目录用来安装phpmyadmin <Directory /var/www/html/admin>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/php/php-auth-file
Require valid-user
</Directory>
5.测试 在你的apache文件根目录下(默认是htdocs\)
新建一个test.php vi test.php
天上这么一句: 然后再IE里面试试吧
<?php phpinfo(); ?>
http://192.168.0.1/test.php
如果你运气不错会有正常的显示! 关于mysql 和php字符编码问题的心得! 哈哈现在是unicode的天下了。
先说说什么是字符编码
学过C语言的同学都知道,char=byte,以前的ansi字符集最多只有256个字符(ascii只用了7位,共128个字符)
比如大写字母A是0x41 也就是65,小写字母a是0x61,也就是97。
(哈哈,linux 下面不知道的东西可以man,看看man ascii ) 英文只有26个字母,当然够用了,可是我们的常用汉字就几千个,所以中文就采用两个字符编码
比如中国的中的编码是0xD6D0,这种编码方式我们叫gb2312,哈哈,繁体中文叫Big5,
日本汉字也有自己的编码,当然这样做可以识别各种文字编码,不过如果两种文字同时存在就麻烦了!
比如同样是0xD6D0,在gb2312里是“中”,在Big5中就成了“笢”。
gb2312只有几千个字,所有后来又了GBK等等,扩大到两万多个字!
后来unicode和iso组织分别统一了所有语言的编码,既然是统一,GBK和Uncode的编码就不会相同!
后来unicode和iso又实现了统一,采用UCS-2(双字节)和UCS-4(四字节)。
采用多个字节有一个问题,就是在传输过程中,比如D6D0我们是先传D6还是先传D0,哈哈,太有意思了!
(字节序列的排列在不同的OS中也有区别,包括不同的CPU也是),这种排列被称为大端和小端。
关于大端(big endian)和小端(little endian)这个还有一个有趣的故事!出自《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。
(突然发现被称为暴君的秦始皇的伟大之处,“统一货币,统一文字,统一度量衡”,太英明了,坑多少儒也不能磨灭他的功绩) 大端和小端就是我们学习微机原理时经常碰到的高位在前还是地位在前的问题!
UCS规定了如何表示各种文字,但如何传输呢?哈哈UTF出场了。
比如使用8位编码的UTF8 UTF-8就是以8位为单元对UCS进行编码。从UCS-2到UTF-8的编码方式如下: UCS-2编码(16进制) UTF-8 字节流(二进制)
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx 哈哈也就是说使用UTF-8的编码有可能是1个字节或者2个字节或者3个
汉字的unicode编码都大于0x0800 所以汉字的utf-8编码都是3个字节! (如何知道字节流是utf-9编码呢,哈哈,开始需要传输一个EF BB BF) 。 mysql5和php5都是非常国际化的软体,当然很好的支持了unicode! php比较简单先说说,php默认的编码方式就是utf-8。
可以修改在/usr/local/php/lib/php.ini 中比如改称gbk
charset=gbk
顺便说一下Microsoft Office 2003种的MSE7(一个非常棒的HTML编辑工具,还可以调试,跟踪客户端javascript),编辑php也不错。MSE7的默认编码也是utf-8,微软的做法很古怪,GBK的编码他也认,哈哈,
总是让人莫名! mysql 就比较更怪,默认的编码竟然是latin1,默认的排列方式也是latin1! 解决方案多样,可以修改my.cnf
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8 如果使用phpmyadmin 则选择MySQL connection collation 选择utf8_uncode_ci
创建数据库时也选择utf8_uncode_ci 或者是在创建数据库时
CREATE DATABASE 'mydb' DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; 方法很多,网上到处都是,当然也可使用GBK编码(不考虑除了中国大陆的其他非英语国家) 这样使用php也有一个小技巧在查询之前先
mysql_query("set names utf8");
当然如果是插入gbk(或gb2312)编码的字段,先调用mysql_query("set names gbk");
哈哈,使用ODBC访问也一样!不过ODBC客户端(我用的3.51)好像不支持utf8哈哈所以只能
set names gbk 另外,在一次数据库连接中开始使用set names 修改了编码,以后如果不需要就不要再改了!
——————————————————
OS:RedHat9.0
kernel: 2.4.20
——————————————————
1.安装版本的选择: 选择较新的Release版5.1.2
采用Source code安装 2.下载 http://www.phpchina.cn/downloads/PHP/php-5.1.2.tar.gz 注意因为PHP采用 source code(Tarball) 安装,所以需要先安装支持的包,比如jpg,GD等包 这里一并下载: (1)perl(php需要)
http://downloads.activestate.com/ActivePerl/Linux/5.6/ActivePerl-5.6.1.638-i686-linux.rpm
(2)curl(可以不要)
http://curl.haxx.se/download/curl-7.15.0.tar.gz
(3)libxml2(php需要)
http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.19.tar.gz
(4)libxslt(可以不要)
http://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/libxslt-1.1.15.tar.gz
(5)zlib(这个好像是必需要的)
http://www.zlib.net/zlib-1.2.3.tar.gz
下面是php对图形支持需要的库
(1)GD
http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
(2)freetype
http://keihanna.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.10.tar.gz
(3)jpeg
http://www.ijg.org/files/jpegsrc.v6b.tar.gz
(4)libpng
http://nchc.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.8.tar.gz
3.安装 先安装需要的库(解压缩这种低级问题就不说了) 安装GD库(让PHP支持GIF,PNG,JPEG)
a.安装 jpeg6
建立目录:
# mkdir -p /usr/local/jpeg6
# mkdir -p /usr/local/jpeg6/bin
# mkdir -p /usr/local/jpeg6/lib
# mkdir -p /usr/local/jpeg6/include
# mkdir -p /usr/local/jpeg6/man
# mkdir -p /usr/local/jpeg6/man1
# mkdir -p /usr/local/jpeg6/man/man1 # cd jpeg-6b
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
# make; make install b.安装libpng
# cd libpng-1.2.8
# cp scripts/makefile.std makefile
# make; make install c.安装 freetype
# cd freetype-2.1.10
# mkdir -p /usr/local/freetype
# ./configure --prefix=/usr/local/freetype
# make;make install d.:安装zlib
#cd zlib.1.2.3
# ./configure
# make;make install e.安装GD库
# mkdir -p /usr/local/gd2
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/
--with-png=/usr/local/lib/
--with-zlib=/usr/local/lib/
--with-freetype=/usr/local/freetype/
# make; make install e.安装Curl库
# mkdir -p /usr/local/curl
# ./configure --prefix=/usr/local/curl
# make; make install 安装php5需要的支持库
a.安装libxml2
# cd libxml2-2.6.19
# mkdir -p /usr/local/libxml2
# ./configure --prefix=/usr/local/libxml2
# make; make install b.安装 libxslt(可选安装,你可以不安装)
# mkdir -p /usr/local/libxslt
# cd libxslt-1.1.15
# ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
# make; make install 安装perl 就简单了 rpm -ivh ActivePerl-5.6.1.638-i686-linux.rpm 安装php5 ./configure --prefix=/usr/local/php \
->--with-apxs2=/usr/local/apache2/bin/apxs \
->--with-mysql=/usr/local/mysql/ \
->--with-libxml-dir=/usr/local/libxml2/ \
->--with-zlib-dir=/usr/lib \ 下面是GD
->--with-gd=/usr/local/gd2/ \
->--with-jpeg-dir=/usr/local/jpeg6/ \
->--with-png=/usr/local/lib \
->--with-freetype-dir=/usr/local/freetype/ \
curl库
->--with-curl=/usr/local/curl/ \
支持ftp 以及soap 和xslt等等
->--enable-ftp \
->--enable-soap \
->--with-xsl=/usr/local/libxslt/ \
->--enable-xslt 其中apache2\mysql\libxml2\zlib 等项是必须的,其他的GD库等等都是可选 然后make;make install 编译安装完毕,拷贝配置文件 cp php.ini-dist /usr/local/php/lib/php.ini
4.重新配置apache2让他支持php。 配置 httpd.conf 让apache支持PHP # vi /usr/local/apache2/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps 找到DirectoryIndex 加入index.php index.phps
DirectoryIndex index.php index.html index.html.var 找到
LoadModule php5_module modules/libphp5.so 安装svn时候我们说过,svn是Apache的一个module,同样php也一样,
这样的结构就比较简单了。
对了如果你发现还有
LoadModule php4_module modules/libphp4.so
说明你安装过php4 哈哈,赶快把php4注释了吧,否则不会正确的! 我这里还有svn的module
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so 重新启动apache
/usr/local/apache2/bin/httpd -k restart 另外我建立了一个新的目录用来安装phpmyadmin <Directory /var/www/html/admin>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/php/php-auth-file
Require valid-user
</Directory>
5.测试 在你的apache文件根目录下(默认是htdocs\)
新建一个test.php vi test.php
天上这么一句: 然后再IE里面试试吧
<?php phpinfo(); ?>
http://192.168.0.1/test.php
如果你运气不错会有正常的显示! 关于mysql 和php字符编码问题的心得! 哈哈现在是unicode的天下了。
先说说什么是字符编码
学过C语言的同学都知道,char=byte,以前的ansi字符集最多只有256个字符(ascii只用了7位,共128个字符)
比如大写字母A是0x41 也就是65,小写字母a是0x61,也就是97。
(哈哈,linux 下面不知道的东西可以man,看看man ascii ) 英文只有26个字母,当然够用了,可是我们的常用汉字就几千个,所以中文就采用两个字符编码
比如中国的中的编码是0xD6D0,这种编码方式我们叫gb2312,哈哈,繁体中文叫Big5,
日本汉字也有自己的编码,当然这样做可以识别各种文字编码,不过如果两种文字同时存在就麻烦了!
比如同样是0xD6D0,在gb2312里是“中”,在Big5中就成了“笢”。
gb2312只有几千个字,所有后来又了GBK等等,扩大到两万多个字!
后来unicode和iso组织分别统一了所有语言的编码,既然是统一,GBK和Uncode的编码就不会相同!
后来unicode和iso又实现了统一,采用UCS-2(双字节)和UCS-4(四字节)。
采用多个字节有一个问题,就是在传输过程中,比如D6D0我们是先传D6还是先传D0,哈哈,太有意思了!
(字节序列的排列在不同的OS中也有区别,包括不同的CPU也是),这种排列被称为大端和小端。
关于大端(big endian)和小端(little endian)这个还有一个有趣的故事!出自《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。
(突然发现被称为暴君的秦始皇的伟大之处,“统一货币,统一文字,统一度量衡”,太英明了,坑多少儒也不能磨灭他的功绩) 大端和小端就是我们学习微机原理时经常碰到的高位在前还是地位在前的问题!
UCS规定了如何表示各种文字,但如何传输呢?哈哈UTF出场了。
比如使用8位编码的UTF8 UTF-8就是以8位为单元对UCS进行编码。从UCS-2到UTF-8的编码方式如下: UCS-2编码(16进制) UTF-8 字节流(二进制)
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx 哈哈也就是说使用UTF-8的编码有可能是1个字节或者2个字节或者3个
汉字的unicode编码都大于0x0800 所以汉字的utf-8编码都是3个字节! (如何知道字节流是utf-9编码呢,哈哈,开始需要传输一个EF BB BF) 。 mysql5和php5都是非常国际化的软体,当然很好的支持了unicode! php比较简单先说说,php默认的编码方式就是utf-8。
可以修改在/usr/local/php/lib/php.ini 中比如改称gbk
charset=gbk
顺便说一下Microsoft Office 2003种的MSE7(一个非常棒的HTML编辑工具,还可以调试,跟踪客户端javascript),编辑php也不错。MSE7的默认编码也是utf-8,微软的做法很古怪,GBK的编码他也认,哈哈,
总是让人莫名! mysql 就比较更怪,默认的编码竟然是latin1,默认的排列方式也是latin1! 解决方案多样,可以修改my.cnf
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8 如果使用phpmyadmin 则选择MySQL connection collation 选择utf8_uncode_ci
创建数据库时也选择utf8_uncode_ci 或者是在创建数据库时
CREATE DATABASE 'mydb' DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; 方法很多,网上到处都是,当然也可使用GBK编码(不考虑除了中国大陆的其他非英语国家) 这样使用php也有一个小技巧在查询之前先
mysql_query("set names utf8");
当然如果是插入gbk(或gb2312)编码的字段,先调用mysql_query("set names gbk");
哈哈,使用ODBC访问也一样!不过ODBC客户端(我用的3.51)好像不支持utf8哈哈所以只能
set names gbk 另外,在一次数据库连接中开始使用set names 修改了编码,以后如果不需要就不要再改了!
相关阅读 更多 +