您的位置:首页 > 理论基础 > 计算机网络

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

2012-02-23 14:55 351 查看

一 先介绍 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 代表了用户,程序以及进程间相互交流的主要变化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息