php-5.2+mysql-max-5.0.27+httpd-2.2.3在FC5上编译通过

一 先介绍 mysql-max-5.0.27的安装过程
1 从http://www.mysql.com下载二进制版的 Mysql安装包 (不要下载RPM的)
2 chmod 755 mysql-max-5.0.27-linux-i686-glibc23.tar.gz
3.# tar xfz mysql-max-5.0.27-linux-i686-glibc23.tar.gz //将解压后生成的目录,改名为mysql,并且移动到/usr/local目录下面
4.# groupadd mysql    // 建立mysql组
  # useradd mysql -g mysql  //建立mysql用户并且加入到mysql组中
5.# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf //在 support-files目录下有4个模版文件,我们选择其中一个座位Mysql的配置文件,覆盖/etc/my.cnf(系统默认的配置,其中设置了性能参数和Mysql的一些路径参数) 
6.# cd /usr/local/mysql
  # ./scripts/mysql_install_db --user=mysql //初试化表并且规定用mysql用户来访问。初始化表以后就开始给mysql和root用户设定访问权限
7.# chown -R root .  //设定root能访问/usr/local/mysql
8.# chown -R mysql data  //设定mysql用户能访问/usr/local/mysql/data ,里面存的是mysql的数据库文件.这个目录是在/etc/my.cnf中有配置,在mysql_install_db时产生。
9.# chown -R mysql data/. //设定mysql用户能访问/usr/local/mysql/data/mysql下的所有文件 
10.# chgrp -R mysql .  //设定mysql组能够访问/usr/local/mysql 
11.# /usr/local/mysql/bin/mysqld_safe --user=mysql &  //运行mysql,如果没有问题的话,应该会出现类似这样的提示:[1] 42264
    # Starting mysqld daemon with databases from /usr/local/mysql/var 如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题,Log文件的通常在/etc/my.cnf中配置。大多数问题是权限设置不正确引起的。

12.# /usr/local/mysql/bin/mysqladmin -u root password 'yourpassword' //默认安装密码为空,为了安全你必须马上修改. 
 
13.# cp support-files/mysql.server /etc/rc.d/init.d/mysqld  //copy编译目录的一个脚本
   # chmod 700 /etc/init.d/mysqld //设置使mysql每次启动都能自动运行
   # chkconfig --add mysqld
   # chkconfig --level 345 mysqld on 

14.# service mysqld start //启动mysqld服务
   # netstat -atln  //查看3306端口是否打开。要注意在防火墙中开放该端口。
二 下载和安装一些php 许要的安装包
这里是一个引用地址,如果这个地址无效了。还请大家自己在网上寻找
http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.19.tar.gz
http://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/libxslt-1.1.15.tar.gz
http://curl.haxx.se/download/curl-7.15.0.tar.gz

http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
http://keihanna.dl.sourceforge.net/...e-2.1.10.tar.gz
http://www.ijg.org/files/jpegsrc.v6b.tar.gz
http://nchc.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.8.tar.gz
http://www.zlib.net/zlib-1.2.3.tar.gz

在/usr/local上面建立software文件夹 把以上的所有的软件包都放到software里面去

下面开始开装这些文件
1 安装httpd-2.2.3
# cd /usr/local/software/
# tar -zvxf httpd-2.2.3.tar.gz //解压httpd-2.2.3.tar.gz
# cd httpd-2.2.3.tar.gz
进入httpd-2.2.0目录
# mkdir -p /usr/local/apache2
生成/usr/local/apache2目录
# ./configure --prefix=/usr/local/apache
或者
# ./configure --prefix=/usr/local/apache --enable-modules=so --enable-rewrite
# make; make install
安装apache
# vi /usr/local/apache/conf/httpd.conf
#ServerName www.example.com:80 在其下增加
ServerName www.yutao123.com:80
保存退出,现在就这么简单配置apache。
# /usr/local/apache/bin/apachectl -k start
启动apahce,
用浏览器查看
http://www.yutao123.com,得到 It Works说明apache已经配置成功了。
# /usr/local/apache/bin/apachectl -k stop
停止apache。

2 开装GD库文件(让PHP支持
GIF,PNG,JPEG
2.1 .安装 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 /usr/local/software/
# tar -zvxf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
# make; make install

2.2.安装libpng
# cd /usr/local/software/
# tar -zvxf libpng-1.2.8.tar.gz
# cd libpng-1.2.8
# cp scripts/makefile.std makefile
# make; make install

2.3.安装 freetype
# cd /usr/local/software/
# tar -zvxf freetype-2.1.10.tar.gz
# cd freetype-2.1.10
# mkdir -p /usr/local/freetype
# ./configure --prefix=/usr/local/freetype
# make;make install

2.4.:安装zlib
# cd /usr/local/software/
#tar -zxvf zlib-1.2.3.tar.gz
#cd zlib-1.2.3
# ./configure
# make;make install

2.5.安装GD库
# cd /usr/local/software/
# tar -zvxf gd-2.0.33.tar.gz
# 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

2.6.安装Curl库
# cd /usr/local/software/
# tar -zxf curl-7.15.0.tar.gz
# mkdir -p /usr/local/curl
# ./configure --prefix=/usr/local/curl
# make; make install


2.7 安装php5,php5必须有libxml2支持!
2.7.1 安装libxml2
# cd /usr/local/software/
# tar -zxf libxml2-2.6.19.tar.gz
# cd libxml2-2.6.19
# mkdir -p /usr/local/libxml2
# ./configure --prefix=/usr/local/libxml2
# make; make install

2.7.2安装 libxslt(可选安装,你可以不安装)
# cd /usr/local/software/
# tar -zxf libxslt-1.1.15.tar.gz
# mkdir -p /usr/local/libxslt
# cd libxslt-1.1.15
# ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
# make; make install


=================== 至此,所有的支持包已经全部装完======================
下面开始安装php5.2
安装php5
# cd /usr/local/software/
# tar -zvxf php-5.2.0.tar.gz
# mkdir -p /usr/local/php
# cd php-5.2.0
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql/
--with-curl=/usr/local/curl --enable-ftp
--with-libxml-dir=/usr/local/libxml2
--with-expat-dir=/usr/lib --enable-soap
--with-xsl=/usr/local/libxslt --enable-xslt
--with-gd=/usr/local/gd2/
--with-jpeg-dir=/usr/local/jpeg6/
--with-zlib-dir=/usr/local/lib/
--with-png=/usr/local/lib/
--with-freetype-dir=/usr/local/freetype/
# make
# make install
#
libtool --finish /opt/php-5.2.0/libs
# cp php.ini-dist /usr/local/php/lib/php.ini (别忘记了呵呵)

其中./configure 后的
--prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql/
--with-libxml-dir=/usr/local/libxml2
是必要的选项

--with-gd=/usr/local/gd2/
--with-jpeg-dir=/usr/local/jpeg6/
--with-png=/usr/local/lib
--with-zlib-dir=/usr/lib
--with-freetype-dir=/usr/local/freetype
这是让PHP支持GD库的配置选项

--with-curl=/usr/local/curl 支持CURL库
--enable-ftp 打开FTP库函数支持

--enable-soap --with-xsl=/usr/local/libxslt --enable-xslt
让PHP支持SOAP, 上面这些一般用得少, 可以去掉


备注:上面的方法并没有错误~完全可以编译成功!如果有错误,请不要着急。继续往下看

重新配置apache2让他支持php。

配置 httpd.conf 让apache支持PHP
# vi /usr/local/apache/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps


======== 至此为止,如果说你的安装一切顺利的话。这三样该死的东西就可以使用了==========

好啦~~ 下面介绍的就是我在这个过程中,所遇到的问题了~~
问题一:
checking for specified location of the MySQL UNIX socket... no
checking for MySQL UNIX socket location... /tmp/mysql.sock
configure: error: Cannot find MySQL header files under yes.
Note that the MySQL client library is not bundled anymore.
当我们编译php5的时候,会出现上面的错误。这是什么原因呢?
解决办法:
1 请检查你是否安装了libmysqlclient-dev
2 请检查你是否安装的是mysql-max版本的。而不是standant版本
3 在编译的时候把参数改一下,然后把mysql的路径加上去~如下:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/  --with-curl --with-libxml-dir --with-expat-dir --with-xsl --with-gd --with-jpeg-dir --with-zlib-dir --with-png --with-freetype-dir
问题二:
安装php5.2.0后
vi /usr/local/apache/conf/httpd.conf
添加 LoadModule php5_module modules/libphp5.so
重新启动apache报如下错误:
httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
我们会发现apache起不来了~~很烦人的说!!
解决办法:
1 在终端下面键入
 chcon /usr/local/apache/modules/libphp5.so -t shlib_t
原因是Linux有一个SELinux保护模式引起的,还有装vsftpd时也要注意,出现异常错误时要先看看SElinux,昨天搞了我郁闷一天了.
关闭SELINUX的方法:
vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled
保存,重起电脑即可.
FC5 中的SELinux 代表了用户,程序以及进程间相互交流的主要变化。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值