建议使用 rpm 卸载 linux自带的 apache , mysql ,php
然后重新下载最新的版本,安装.具体安装可以参考 www.php.net 的在线 documnets 里关于linux下安装的说明.http://www.php.net/manual/zh/install.apache.php

解决方案 »

  1.   

    注意一点:在linux下要用apache1,不要用apache2
      

  2.   

    使用Red Hat 9.0,由于自带了apache,mysql,php,带着试一试的心理,
    把程序上传了,结果,几乎没有做任何环境或者设置上的改变,就通过了
    。【只有mysql的表的定义上稍做了修改,好像以前的mysql要求严格一些】
      

  3.   

    自带安装的rpm包删掉,自己编译挺有趣的
    用源码包安装php-4.34+mysql-4.0.16+apache-2.0.48+vbb-2.32实践总结 
    声明:转帖时必须加注来源于 http://www.linuxsir.org 以及作者在LinuxSir 的ID;以及保留此声明;虽然本人深知这篇文章是小儿科,但LinuxSir的弟兄写大多数文章,被没有加注版权的信息转到别的站上,有些事说也说不清楚;有的弟兄把LinuxSir原创文件转到别的站上,没有加任何声明之类的;而别的弟兄又把这些本来是来源 LinuxSir 的作品又从别的站上转回来;当然这次是加注来源了:( 而此文章的来源的网站的负责人竟然找上门来,说是他们原创的。说来说去,真是欲哭无泪!所以还是把来源加上为好多谢北南 呈上==============================================================
    本帖中可能会存在很多的错误,比如专有名词的译法等,请您指正,多谢!北南 呈上
    ==============================================================操作环境:Fedora 1.0 core ,本文是讲如何用源码包安装php4.34+mysql4.0.16+apache-2.0.48,这些版本,目前都是最新最稳定的版本;本文只要是讲最简单的安装操作;也就是说让一个新手,能建一个支持由apache 来运行的简单的网站,并支持php和mysql ;一点说明:对于高手来说,可能这都是小儿科,所以这篇文章,对于高手来说,没有一点价值。因为对apache熟悉一点的情况下,我们更多的关心扩展功能,比如对asp jsp的支持等。如果您是初学linux,或者是没有成功编译过apache+mysql+php的安装,我还是建议看一下我写这篇文章,至少于apache和php mysql的安装有点了解,这也是我写此文的目的;
    ==============================================================
    正文:
    ============================================================================================================================一、如果您原来是采用rpm包安装的apache和php以及mysql,现在大可去完全卸掉它。我们要学会用rpm -qa 这个命令,查询我们安装过的相应的php、mysql以及apache的RPM,然后把这些包一个一个的卸掉==============================================================1.卸载mysql ;[root@linuxsir01 root]# rpm -qa | grep mysql
    libdbi-dbd-mysql-0.6.5-7
    mod_auth_mysql-20030510-3
    php-mysql-4.3.3-6
    mysql-3.23.58-4
    mysql-bench-3.23.58-4
    mysql-server-3.23.58-4
    freeradius-mysql-0.9.1-1
    mysql-devel-3.23.58-4
    [root@linuxsir01 root]#卸载过程:是从最下面的一个包开始,因为有些东西是有顺序的。所以这是要注意的。在这里,我们应该先应该把mysql-devel-3.23.58-4卸掉,然后才是freeradius-mysql-0.9.1-1等, 要一个一个的来;方法是:
    [root@linuxsir01 root]#rpm -e mysql-devel再举一例:比如我们想卸载php-mysql-4.3.3-6,应该用下面的办法[root@linuxsir01 root]#rpm -e php-mysql这回应该明白了吧:)如果有卸不掉的,就是有顺序,比如和php相关的,当然要先卸php的了;2.卸载apache ,方法和mysql的方法是一样的。[root@linuxsir01 root]# rpm -qa | grep httpd
    redhat-config-httpd-1.1.0-5
    httpd-devel-2.0.47-10
    httpd-manual-2.0.47-10
    httpd-2.0.47-103.卸载php,和mysql的方法是一样的;
    [root@linuxsir01 root]# rpm -qa | grep php
    asp2php-0.76.2-6
    php-domxml-4.3.3-6
    php-mysql-4.3.3-6
    asp2php-gtk-0.76.2-6
    php-4.3.3-6
    php-odbc-4.3.3-6
    php-xmlrpc-4.3.3-6
    php-imap-4.3.3-6
    php-pgsql-4.3.3-6
    php-devel-4.3.3-6
    php-ldap-4.3.3-6
    php-snmp-4.3.3-6注意:如果有卸不掉的包,应该加参数来卸载,比如我们卸载php-snmp-4.3.3-6,有困难,就要用找出相依赖的包,先卸掉那个包,然后再来卸这个包。可能有实在也卸不掉的。应该用--nodeps这个参数。比如 
    [root@linuxsir01 root]# rpm -e php-snmp-4.3.3-6 --nodeps 
      

  4.   

    ==============================================================
    二、通过源码包安装mysql
    ==============================================================
    1.下载:当前最新最稳定的版本应该是mysql-4.0.16 ,比如我们在/opt目录下建一个临时的安装目录software,把下载下来的mysql-4.0.16.tar.gz,放到/opt/software/目录中;[root@linuxsir01 root]# mkdir /opt/software 
    http://www.mysql.com/get/Downloads/....ihostunit.com/2.解压、编译和安装:1]解压
    [root@linuxsir01 root]# cd /opt/software[root@linuxsir01 software]# ls
    mysql-4.0.16.tar.gz [root@linuxsir01 software]#tar zxvf mysql-4.0.16.tar.gz 2]编译和安装:在这个地方值得注意的是,我们要把mysql-4.0.16安装到我们指定的目录中,为了系统和安全和优化,建议把自己用源码包安装的服务器类软件都放在/opt 目录里。所以在这里,我们就要把mysql-4.0.16也安装到/opt/mysql这个目录中;
    [root@linuxsir01 software]#cd [root@linuxsir01 software]# cd mysql-4.0.16
    [root@linuxsir01 mysql-4.0.16]#
    ./configure --prefix=/opt/mysql --with-mysqld-user=beinan --with-charset=gb2312 --with-extra-charsets=all --with-unix-socket-path=/opt/mysql/var/mysql.sock [注]关于configure的选项的一点说明:--prefix=/opt/mysql 把mysql-4.0.16指定安装到/opt/mysql目录中;
    --with-charset=gb2312 指定mysql默认语言为gb2312,也就是中文;
    --with-extra-charsets=all 对多语言的支持;
    --with-unix-socket-path=/opt/mysql/var/mysql.sock 这个是指定mysql服务器启动后,联机套接字文件所处的位置和文件名,也就是说,如果mysql服务器成功启动后,就能在/opt/mysql/var目录中看到mysql.sock文件。如果看不到,肯定是mysql启动不了。
    --with-mysqld-user=beinan 这个是让mysql服务器也能让系统中普通用户beinan也能启动mysql服务器。当然要活学活用了:)你也可以把beinan换成你的系统中已经存在的普通用户,比如您的系统中已经存在sir这个用户,那就把beinan替换成sir就行了。用普通用户来启动mysql的好处是:mysql的进程会自己死掉自动退出。当然root用户也可以,不过有时mysql有些进程死了,但不会自动退出,root自己也杀不掉。所以用普通用户就有这样的好处,大多不会出现mysql进程已死,但不会退出的情况;[root@linuxsir01 mysql-4.0.16]#make[root@linuxsir01 mysql-4.0.16]#make install这样就安装完了:)3]配制mysql:安装只是第一步,我们还要对mysql进行相应的配制;一般的情况下mysql要找配制文件my.cnf,位置在/etc目录下,所以我们得把文件my.cnf文件放到/etc/目录下。让mysql服务器启动时能找到它。我们安装好mysql后,配制文件应该在/opt/mysql/share/mysql目录中,配制文件有几个,比如my-huge.cnf my-medium.cnf my-large.cnf my-small.cnf
    ,不同的流量的网站和不同配制的服务器环境,当然需要有不同的配制文件了。一般的情况下,my-medium.cnf这个配制文件就能满足我们的大多需要;进入/opt/mysql这个目录,看一下是不是已经安装好了呢??[root@linuxsir01 mysql-4.0.16]# cd /opt/mysql/
    [root@linuxsir01 mysql]# ls
    bin include info lib libexec man mysql-test share sql-bench 我们把/opt/mysql/share/mysql这个目录下的my-medium.cnf,复制为my.cnf到/etc目录下。
    [root@linuxsir01 mysql]# cp /opt/mysql/share/mysql/my-medium.cnf /etc/my.cnf做了这些工作以后,还得创造MySQL授权表, 否则数据库也是启动不了。mysql_install_db,这个命令的用途就是做这个的。mysql的命令都安装到了/opt/mysql/bin这个目录中。[root@linuxsir01 mysql]#/opt/mysql/bin/mysql_install_db运行mysql_install_db命令过后,我们查看/opt/mysql就会发现,有个var的目录。这个目录,就是用来装所有数据库的位置,比如我们创建了linuxsir的数据库后,就在在/opt/mysql/var目录中有linuxsir的目录。这回应该明白了吧。4]启动mysql服务器,可能这是最轻松的了,不过也不能高兴的太早,因为有时会出现权限方面的错误。:)mysql服务器启动,应该是/opt/mysql/share/mysql目录中的 mysql.server
    启动方法是:
    [root@linuxsir01 mysql]# /opt/mysql/share/mysql/mysql.server start 启动过后,我们要查看mysql是否启动了,应该用下面的命令;[root@linuxsir01 mysql]# ps -aux | grep mysqld如果出现的仅仅是如下的一行,那mysql是没有启动成功。root 3345 0.0 0.1 5812 648 pts/2 S 17:41 0:00 grep mysqld我们如何查看错误信息呢?在哪里查看呢?应该到/opt/mysql/var目录中去找一个带有.err后缀的文件;
    [root@linuxsir01 var]# cd /opt/myql/var
    [root@linuxsir01 var]# more *.err可能会出现存在下面的错误信息:031203 14:49:10 mysqld started
    031203 14:49:10 Can't start server : Bind on unix socket: Permission denied
    031203 14:49:10 Do you already have another mysqld server running on socket: /tmp/mysql.sock ?
    031203 14:49:10 Aborting031203 14:49:10 /opt/mysql/libexec/mysqld: Shutdown Complete031203 14:49:10 mysqld ended 其实这是权限方面的事,我们把权限设置一下就OK了。我们要设置的权限是/opt/mysql/var的目录。要设置为1777。方法是:[root@linuxsir01 mysql]# chmod -R 1777 /opt/mysql/var然后再重启mysql服务器。[root@linuxsir01 mysql]# /opt/mysql/share/mysql/mysql.server start 是不是成功了呢??[root@linuxsir01 mysql]#ps -aux | grep mysql
    5]为了让mysql也能让我们刚才编译是指定的普通用户beinan也能启动mysql服务器。所以我们还要把/opt/mysql目录归属到beinan这个用户手下,在这里,我们要用到chown命令。[root@linuxsir01 mysql]# chown -R beinan.beinan /opt/mysql/如果您编译时,比如用的是系统中已经存在的sir用户,应该是下面的办法,我们应该学会活学活用,对不对?[root@linuxsir01 mysql]# chown -R sir.sir /opt/mysql/至此mysql已经编译安装完成了,下面我们要介绍一点mysql的基本管理,以及最基本的用法。如果您想学的更多的,应该找一下mysql的手册,现在网上一大堆。随手可得,对不对??
      

  5.   

    ==============================================================
    三、安装apache-2.0.48
    ==============================================================1.下载:当前最新最稳定的版本应该是httpd-2.0.48 ,比如我们在/opt目录下建一个临时的安装目录software,把下载下来的httpd-2.0.48.tar.gz,放到/opt/software/目录中;
    http://nagoya.apache.org/mirror/htt...d-2.0.48.tar.gz2.解压: [root@linuxsir01 mysql]# cd /opt/software/
    [root@linuxsir01 software]# ls mysql-4.0.16 httpd-2.0.48.tar.gz mysql-4.0.16.tar.gz 
    [root@linuxsir01 software]#tar zxvf httpd-2.0.48.tar.gz 3.编译:在这个地方值得注意的是,我们要把httpd-2.0.48安装到我们指定的目录中,为了系统和安全和优化,建议把自己用源码包安装的服务器类软件都放在/opt 目录里。所以在这里,我们就要把httpd-2.0.48也安装到/opt/apache这个目录中;[root@linuxsir01 software]# cd httpd-2.0.48[root@linuxsir01 httpd-2.0.48]#./configure --prefix=/opt/apache --enable-track-vars --enable-cgi --with-config-file-path=/opt/apache/conf一点简单的说明:这个apache的安装,有很多的选项,如果您是比较精通,所以必要看此文,可以自己定义来安装。因为我大多是采用默认的配制,如果您想让apache有更多的功能,比如支持压缩输出以及jsp等支持,可以看其它的文章。这篇文件主还要给初学linux的弟兄写的一个简单的入门型文章,直接的说,就是给一点都不懂在linux如何安装apache,并支持php+mysql的。能让初学linux的弟兄自己架一个最简单的网站,这样弄明白原理以后,就便于深入学习和研究。我写此文的目的仅此而已;--prefix=/opt/apache 指定把apahce安装到/opt/apache目录中;
    --enable-cgi 支持CGI;
    --with-config-file-path=/opt/apache/conf 指定把apache的配制文件放在/opt/apache/conf中;比如httpd.conf配制文件就在这个目录中;
    --enable-track-vars 为启动cookie的get/post等追踪功能如果需要更多的选项,可能通过下面的命令来查看;[root@linuxsir01 httpd-2.0.48]#./configure --help下一步就是make 和make install [root@linuxsir01 httpd-2.0.48]#make [root@linuxsir01 httpd-2.0.48]#make install 安装完成后,会在/opt/目录下生成/opt/apache4.启动apache;如果编译成功后,我们首先想到的是如何启动apache,在这里,我们要明白apache的守护进程是 /opt/apache/bin目录中 apachectl ;启动apache守护进程;
    [root@linuxsir01 httpd-2.0.48]# /opt/apache/bin/apachectl start 打开浏览器,输入 http://localhost 就能看到一个apache的欢迎页面了,这表示我们已经成功解决了apache的安装。安装仅仅是第一步,那我们如何配制她呢,比如我们想自己指定网站存放的目录??5.配制apache,我们只做简单的说明,只是让一个网站能简单运行起来就OK了,如果入门后,我们才能进一步学习;学习根本就不能一天的事,可能要花一辈子,或许一辈子过去了,自己感觉也没有学到什么:)
    1]配制文件是/opt/apache/conf/httpd.conf,如果是用rpm包安装的,应该在/etc/httpd/conf中,如果是其它方法安装的,用locate httpd.conf来查找。2]编译安装的apache默认存放主页的位置应该是/opt/apache/htdocs
    这个目录。我们可以把这个目录清空,然后换成自己的东西。当然我们也可以自己来指定一个目录来存放我们自己的小站;
    3]改配制文件时,我们要对原文件进行备份,切记!![root@linuxsir01 root]# cp /opt/apache/conf/httpd.conf /opt/apache/conf/httpd.confBAKAddDefaultCharset ISO-8859-1
    注:这句是指定网页的默认语言的,如果网页出乱中文乱码,应该改AddDefaultCharset 后面的值为GB2312。也就是改成下面这样的。AddDefaultCharset GB2312 
    找到下面的一行在后面加上index.php ,让网站的默认页是index.php也行; DirectoryIndex index.html index.html.var index.php其它的都默认就好了,这是最简单的了。其它的也不要改动什么,如果想要改动,可以自己研究研究,其实也不是那么难。比如设置请求时间,进程数,这些都比较简单,改一下数字就行了。还有就是设置log存放位置,里面也有选项,其实看一下就明白了,如果我们以实践为基础的话,想把LOG文件放在哪,就放在哪。还有cgi的存放位置等,也可以自己定义;哈哈还是那句话,实践是检验真理的唯一标准。配制好后,我们就重启apache后,我们就进行相应的处事处事阶段,比如我们要设置存放主页的目录等。比如我们上面已经把主页目前设置为/var/home/freewill,那我们就应该建一个目录到/var/home中
    [root@linuxsir01 home]# mkdir freewill
    [root@linuxsir01 home]# chmod 755 freewill然后我们把index.html的文件放入到/var/home/freewill目录中的时候,可能访问不到的情况。
    这时不要忘记设置权限,切记!![root@linuxsir01 www]# chmod -R 755 freewill然后就重启apache的守护进程httpd[root@linuxsir01 apache]# /opt/apache/bin/apachectl restart查看是否已经启动了apache服务器??[root@linuxsir01 apache]# ps aux | grep httpd
    在浏览器的地址栏中输入192.168.0.1 或者是localhost,这样应该能看到页面了吧。:):)注:如果是通过root用户,或者其它用户把相应的网站文件复制到网站存放的目录下的,要改变网站存放目录中所有文件的权限,就是上面所说的chmod -R 755 目录名,OK ??==============================================================四、安装php
    ==============================================================1.下载php最新最稳定的版本php-4.3.4,可以自己选下载地址;比如我们在/opt目录下建一个临时的安装目录software,把下载下来的php-4.3.4.tar.bz2,放到/opt/software/目录中;
    http://cn.php.net/get/php-4.3.4.tar.bz2/from/a/mirror2.解压:
    [root@linuxsir01 software]# ls
    httpd-2.0.48 mysql-4.0.16 httpd-2.0.48.tar.gz mysql-4.0.16.tar.gz php-4.3.4.tar.bz2[root@linuxsir01 software]#tar jxvf php-4.3.4.tar.bz23.编译和安装:注意,本文是通过动态编译安装的php;[root@linuxsir01 software]# cd php-4.3.4[root@linuxsir01 php-4.3.4]#./configure --prefix=/opt/php --with-mysql=/opt/mysql --with-apxs2=/opt/apache/bin/apxs --enable-track-vars --enable-force-cgi-redirect --with-config-file-path=/opt/php/etc一点说明:--prefix=/opt/php 指定把php-4.3.4安装到/opt/php目录中;
    --with-mysql=/opt/mysql 指定mysql数据服务器安装的位置;
    --with-apxs2=/opt/apache/bin/apxs 这是加入apache中为DSO模块的位置;
    -enable-track-vars 为启动cookie的get/post等追踪功能
    --with-config-file-path=/opt/php/etc 指定php的配制文件存放的目录是/opt/php/etc目录,我们安装完成后,也要把php.ini复制到这个目录中来。
    安装:[root@linuxsir01 php-4.3.4]#make[root@linuxsir01 php-4.3.4]#make install 复制php.ini-dist为php.ini,并存放到/opt/php/etc/目录下[root@linuxsir01 php-4.3.4]# cp php.ini-dist /opt/php/etc/php.ini编辑/opt/php/etc/php.ini文件,找到如下的一行
    ;default_charset = "iso-8859-1"
    在这行下面加一行
    default_charset = "gb2312"其它的配制,就自己来定,我也不懂:(,找一本php的手册来读一读。不改也行,不过可能不能适合你的需要。因为这个文章仅是一个入门的,我也是学的稀里糊涂的,我不懂的东西,肯定我不会写,因为我写文章都是根据实践而来的,我实践不出来,是不是写出来,也是骗人的?:)4.更改apache的配制文件:得加一行,目的是让apache能解释php程序。
    找到#AddType application/x-tar .tgz 这行,在下面加一行。前面不要加#号。AddType application/x-httpd-php .php
    找到下面一行在后面加上index.php,这表示网站的默认页也能够为index.php DirectoryIndex index.html index.html.var index.php 注意:改变了http.conf后,要重启apache服务器,否则不会生效!!
    5]然后我们在网站存放的目录下建一个index.php的文件。我们还是用前面apache自己指定网站存放的位置,/var/home/freewill目录。在这个目录中建一个文件index.php,内容是如下的<? phpinfo(); ?>然后改变这个文件的权限chmod 755 index.php 在浏览器中打入 http://localhost/index.php ,就能看到php的信息了。如果还是出现的是 <? phpinfo(); ?> 字样的页面,那就是没有成功:( ,可能是您改变了apache的配制文件,忘记了重启apache服务器了,要重启一下试试看。
    把apache mysql php 配制好后,就重启httpd 和mysql 服务,前面已经说过方法。回头再复习一遍。可能新手弟兄会忘记这件事,特此提醒一下。