centos6.5 下rpm离线安装apache2.2+php5.5+mysql5.6

1,安装,mysql

    见网址:http://bt9527.blog.51cto.com/9142217/1437877

2,安装apache

    在如下页面下载apache的for Linux 的源码包  
  http://www.apache.org/dist/httpd/
  我放在/home/目录下
    
    解压缩:
    tar -zxvf httpd-*.tar.gz
    mv httpd-* apache
    执行命令:
    cd apache
    ./configure --prefix=/usr/local/apache2 --enable-module=so
    make
    make install
    默认安装apache路径在/usr/local/apache2

3,安装PHP

    在如下页面下载php的for Linux 的源码包 
  http://www.php.net/downloads.php
    我放在/home/目录下
    tar -zxvf php-*.tar.gz
    mv php-* php
    cd php

    ./configure --prefix=/usr/local/php --with-mysql=/usr --with-mysqli=/usr/bin/mysql_config --with-apxs2=/usr/local/apache2/bin/apxs  --with-zlib=/usr/

    这里容易出错,我在这卡了很久
    --prefix=/usr/local/php 指定php安装目录
    --with-apxs2=/usr/local/apache2/bin/apxs apache关联,主要是php支持模块直接编译到apache的modules目录
    --with-mysql=/usr 离线rpm包安装mysql头文件位置
    --with-zlib=/usr/ 离线rpm安装zlib头文件位置

    出现的错误:    
    错误1: Cannot find MySQL header files under *******
        原因一个是没找到头文件的具体位置(一般都找的到)。
        原因二是写成/usr/include/mysql(我在这出错,明明头文件就在这目录里面,怎么会找不到?
        在configure里面找mysql.h,结果找到这句if test -r $PHP_MYSQL/include/mysql/mysql.h;原来脚本里面把/include/mysql/mysql.h包含进去了,所以参数里面mysql头文件只需要写到目录liclude前面一级目录/usr/就行了。)
    错误2:configure: error: xml2-config not found.
        解决方法:
        在rpmfind.net网站根据操作系统下载并安装下列软件
        rpm -ivh libxml2-python*
        rpm -ivh zlib-devel*
        rpm -ivh libxml2-devel*
    错误3:缺少zlib
        用命令whereis zlib找到zlib目录
        zlib: /usr/include/zlib.h /usr/share/man/man3/zlib.3.gz
        加句--with-zlib=/usr  #这里/include/zlib.h在脚本中也写了,参数中不要
    错误4:configure: error: mysql configure failed. Please check config.log for more information.
        这个错误差点把握搞崩溃了,网上找各种的各种解决办法都那么坑,有的说没加mysql头文件,这个头文件我加了,又有人说参数--with-mysql=....写成--with-mysql-dir=.....,这样解决的人难道没发现编译最后有句话:
        configure: WARNING: unrecognized options: --with-mysql-dir
        这句话说明了你PHP没关联上mysql。你要正常使用会再重新安装的。
        关于那个64位操作系统的解决办法靠谱点,但是我系统是32位的。
        最后终于找到一个兄弟写在博客上的解决办法:
        下载并安装MySQL-embedded-5.6.19-1.el6.i686.rpm
        MySQL-shared-5.6.19-1.el6.i686.rpm
        MySQL-shared-compat-5.6.19-1.el6.i686.rpm
        编译终于看见Thank you for using PHP.了

    然后编译
    make
     这里可以用make test检测一下,也可以不用。
    make install

4.配置
    PHP配置文件
    cp php.ini-development /usr/local/lib/php.ini
    我没有进行PHP修改
    apache配置文件
    vi /usr/local/apache2/conf/httpd.conf
    对apache做如下配置
    将ServerAdmin mailto:[email protected]一行改为您的邮箱地址
    DocumentRoot "/usr/local/apache2/htdocs"次处为html文件主目录,我没有修改,使用的默认目录
    #设置apache的默认文件名次序
    AddType application/x-httpd-php .php .phtml .php3 .inc
     AddType application/x-httpd-php-source .phps
    ServerName 192.168.10.45:80设置服务器ip
    只修改了这些,对配置文件不熟,没有进行其他修改,如有需要,以后再补

5.启动服务
  /usr/local/apache2/bin/apachectl start

6.测试  
    vi /usr/local/apache2/htdocs/1.php
    <?php
    phpinfo();
    ?>
    在浏览器输入http://服务器ip/1.php ,会出现安装的php信息
    
    测试PHP读取mysql中数据,先登录mysql
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    4 rows in set (0.01 sec)
    mysql>use test
    mysql> create table mclass(id int(4) not null primary key auto_increment,name char(20) not null,sex int(4) not null default ‘0‘,degree double(16,2));
    mysql> insert into mclass values("9527","zhouxc","1","22");
    Query OK, 1 row affected (0.03 sec)

    mysql> insert into mclass values("9528","dema","1","33");
    Query OK, 1 row affected (0.05 sec)

    mysql> insert into mclass values("9529","duandao","0","99");
    Query OK, 1 row affected (0.04 sec)

    vi /usr/local/apache2/thdocs/sql.php
    代码:
    <?php
      echo "This is a test</br>";
      echo "asdfasdfadsf";
      $mysql_server_name="localhost:3306"; //数据库服务器名称
      $mysql_username="root"; // 连接数据库用户名
      $mysql_password="123456"; // 连接数据库密码
      $mysql_database="test"; // 数据库的名字
   
        // 连接到数据库
      $conn=mysql_connect($mysql_server_name, $mysql_username,
      $mysql_password);
     
        // 从表中提取信息的sql语句
      $strsql="select * from mclass";
        // 执行sql查询
      $result=mysql_db_query($mysql_database, $strsql, $conn);
        // 获取查询结果
      $row=mysql_fetch_row($result);
    
      echo ‘<font face="verdana">‘;
      echo ‘<table border="1" cellpadding="1" cellspacing="2">‘;
    
        // 显示字段名称
      echo "</b><tr></b>";
      for ($i=0; $i<mysql_num_fields($result); $i++)
       {
      echo ‘<td bgcolor="#000F00"><b>‘.
      mysql_field_name($result, $i);
      echo "</b></td></b>";
       }
     echo "</tr></b>";
       // 定位到第一条记录
     mysql_data_seek($result, 0);
       // 循环取出记录
     while ($row=mysql_fetch_row($result))
       {
     echo "<tr></b>";
     for ($i=0; $i<mysql_num_fields($result); $i++ )
      {
     echo ‘<td bgcolor="#00FF00">‘;
     echo $row[$i];
     echo ‘</td>‘;
       }
     echo "</tr></b>";
       }
     echo "</table></b>";
     echo "</font>";
      // 释放资源
     mysql_free_result($result);
      // 关闭连接
     mysql_close($conn);
      ?>
      在浏览器输入http://服务器ip/sql.php
    显示:
    This is a test
    asdfasdfadsf
    id    name    sex    degree
    9527    zhouxc    1    22.00
    9528    dema    1    33.00
    9529    duandao    0    99.00 

    

centos6.5 下rpm离线安装apache2.2+php5.5+mysql5.6,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。