继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

apache+php+mysql安装配置

远看寒山石径斜
关注TA
已关注
手记 268
粉丝 25
获赞 149

  1. apache已经在linux里存在,查看apache版本信息及安装目录

# apachectl -v


Server version: Apache/2.2.3

 

2.安装mysql,由于redhat Enterprise 5 中自带一个mysql的版本,需要先删除

  a. 查找已安装的mysql 版本:

        #rpm  -qa | grep  mysql (注意大小写,如果mysql 不行就换MySQL)

        在屏幕上将显示已安装的mysql包名如:mysql-5.0.77-3.el5 ;

  b. 将搜索出的包名卸载:

        #rpm -e  --nodeps mysql-5.0.77-3.el5 (nodeps表示强制删除)

       再次查找该包名,如果没有结果输出则表明已将该版本的mysql卸载了

  c. 下载mysql:http://dev.mysql.com/downloads/mysql/5.0.html

      客户端:MySQL-client-community-5.0.92-1.rhel5.x86_64.rpm

      服务端:MySQL-server-community-5.0.92-1.rhel5.x86_64.rpm

  d.检查perl-DBI-1.52-2.el5.rpm是否安装,

    该包为是安装mysql的依赖,没它mysql安装不起,查看是否安装,如果安装了就不需要了,

     可以通过 #rpm -qa | grep perl*查看是否已经安装,该包在linux系统盘上可以找到,以下提供该包下载)

  e.安装mysql

   [root@localhost /]#rpm -ivh MySQL-server-community-5.0.92-1.rhel5.x86_64.rpm

   [root@localhost /]#rpm -ivh MySQL-client-community-5.0.92-1.rhel5.x86_64.rpm

  

  f.查看是否安装成功

    [root@localhost /]#netstat -ntpl

   显示3306端口开放表示服务安装成功

   [root@localhost /]#mysql

   能自动登陆,则已成功

 

  g.修改mysql root密码

    [root@localhost/]#/usr/bin/mysqladmin -u root password 'xxxxxx';

    

     [root@localhost /]#mysql -u root-p

     Enter password:xxxxxx

     出现mysql>表示登陆成功!

   

  h.对mysql用户设置远程访问权限

    方法1、改表法:登陆mysql后,更改“mysql”数据库里的“user”表里的“host”项,将“localhost”改“%”

    mysql>use mysql;

    mysql>update user set host ='%' where user ='root';

    mysql>select host,user from user;

    mysql>FLUSH PRIVILEGES

    方法2、授权法:假设允许用户username通过密码password从远程连接到mysql服务器

    mysql>GRANT ALL RRIVILEGES ON*.* TO username@'%' IDENTIFIED BY 'password' WITHGRANT    OPTION;

    mysql>FLUSH PRIVILEGES;

  i.安装目录结构

    数据库目录:/var/lib/mysql/

    配置文件:/usr/share/mysql(mysql.server命令及配置文件)

    相关命令:/usr/bin(mysqladmin、mysqldump等命令)

   (*mysql的一种安全启动方式:/usr/bin/mysqld_safe  --   user=root &)

    启动脚本:/etc/rc.d/init.d/


1、下载
    到官网下载mysql-5.1.65.tar.gz(注意是源码包)
2、解压
    tar -zxvf mysql-5.1.65.tar.gz
3、建立目标文件夹
    mkdir /usr/local/mysql
    也就是说等下安装的mysql要安装到这个文件夹里面
4、配置
    ./configure --prefix=/usr/local/mysql/ 

在./configure时出现错误:error: No curses/termcaplibrary found

下载安装相应软件包

yum list|grep ncurses

yum -y install ncurses-devel

yum install ncurses-devel

5、编译
    make
6、安装
    make install

7、启动
    MySQL服务并不会自动启动,还需要先初始化MySQL数据库,操作如下:
    cd /usr/local/mysql/bin
    sudo ./mysql_install_db --user=root
    注意,这里最后的root是指可以操作数据库的用户,可以是当前用户,也可以新建用户,与linux上的root用户是两回事,可以自己取一个名字
    ./mysqld_safe --user=root & 这条命令负责启动mysql服务的守护进程,此外最后的&是必须的,因为希望守护进程在后台运行
    这里的root就是刚才的那个
8、为根用户创建密码
        ./mysqladmin -u root password ‘123456’
        如果root已经设置过密码,采用如下方法
        ./mysqladmin -u root password oldpass‘123456’       
9、测试
    mysql -u root -p
    会提示输入密码,就用刚才设置的密码
    123456
    如果出现mysql>,说明连接成功了,下面通过命令 创建一个数据库、建一个表,增加一条记录,为后面的测试准备

   mysql> create database gywtest;
  mysql> use gywtest;

  mysql> create table student(id int(4) not null primary keyauto_increment,stuname char(20));

  mysql> insert into student(stuname) values('Tom');

  注意每条命令后面有个分号,如果上面的都成功,后面就可以用这个测试。

 四、将PHP与MySql结合起来

 1、重新配置PHP,改变配置选项,只需重复PHP安装时的最后的三步configure, make, 以及 make install,然后需要重新启动 Apache 使新模块生效,Apache不需要重新编译。

 2、配置

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysqli=/usr/local/mysql/bin/mysql_config  注意mysql_config 的路径
3、编译 make

4、安装 make installe

5、测试 写一个页面test.php,放在apache的web目录下,测试上面用命令创建的数据库

    <?php 
  $mysqli=new mysqli();
  $mysqli->connect('localhost','root','123456','gywtest');
  // 创建查询
  $sqlstr='select * from student';
  //发送查询给MySql
  $result=$mysqli->query($sqlstr);
    while($row=$result->fetch_object())
    { 
      $name=$row->stuname;
      echo $name;
    }
?>

Fatal error: Class 'mysqli' not found in /home/lufangtao/Project/DB.php online 3

解决方法:

/usr/local/php/bin/phpize 这里回车运行

出错:

Cannot find config.m4. 
Make sure that you run './phpize' in the top level source directory of themodule

解决方法:

PHP源码包文件夹下的EXT文件夹就是放置着目前版本的可用扩展,CD进去看看都有哪些你需要的?应该看到mysqli文件夹了吧~~~

在当前目录下执行phpize

[root@localhost mysqli]#/usr/local/php/bin/phpize

Configuring for:

PHP Api Version:                   20090626

Zend Modeule Api No:            20090626

Zend Extension Api No:          220090626

Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

解决方法:

yum install autoconf再次运行上面的命令即可。

[root@localhost mysqli]#./configure –prefix=/opt/mysqli –with-php-config=/opt/php/bin/php-config

 –with-mysqli=/opt/mysql/bin/mysql_config

[root@localhost mysqli]#make

[root@localhost mysqli]#make install

安装完成后会有提示扩展所在目录路径,如:

/opt/php/lib/php/extensions/no-debug-zts-20090626php

所需的mysqli.so便会在此目录下,接下来修改/opt/php/etc/下的php.ini文件,加入mysqli扩展,即加入如下一行:

extension=/opt/php/lib/php/extensions/no-debug-zts-20090626/mysqli.so

这里还是会出现错误:

解决不用扩展连接MySQL的方法。

最终还是没有解决MySQLi连接的问题,但是可以使用MySQL数据库了,下面是测试程序

<?php

 

$link=mysql_connect('localhost','root','123456');

 

if(!$link) echo "F!";

 

else echo "S!";

 

mysql_select_db("students") or die("Couldnot select database");

$query="SELECT * FROM student;";

$result=mysql_query($query) or die("Queryfailed");

print "<table>\n";

 

 while ($line =mysql_fetch_array($result, MYSQL_ASSOC)) {       
print "\t<tr>\n";     
  foreach ($line as $col_value) {   
        print"\t\t<td>$col_value</td>\n";      
 }      
 print "\t</tr>\n";    }  
 print "</table>\n";

 

    /* 释放资源 */

 

mysql_free_result($result);

mysql_close();

 

?>

 

2.安装php最新版,从http://www.php.net/downloads.php下载

php-5.3.5.tar.gz

 

安装php之前先安装libxml2:

解压后进入目录:libxml2-2.7.8,然后执行:

./configure --prefix=/usr/local/libxml2

Make && make install


a.解压

[root@localhost /]# tar -zxvf php-5.3.5.tar.gz

b.安装

[root@localhost /]# cd php-5.3.5

[root@localhost /]# ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/lib --enable-track-vars --with-xml --with-mysql

 

其中--with-apxs2=/usr/local/apache/bin/apxs 是指向apache目录

[root@localhost /]# make

[root@localhost /]# make install

[root@localhost /]# cp php.ini-production /usr/local/lib/php.ini

 

c.配置

   

# vi /usr/local/apache/conf/httpd.conf

修改此文件,更改以下指令为:

DirectoryIndex index.html index.shtml index.cgi index.php index.phtml index.php3
ServerName  12.34.56.78:80  //这里的ip和端口号视实际情况而定


Options Indexes FollowSymLinks

    AllowOverridenone

    Requireall granted

//为安全起见,去掉"Indexes"

 

增加LoadModule php5_module modules/libphp5.so

       LoadModule php5_module modules/libphp5-zts.so


 <Directory/>

   AllowOverride none

   Require all granted

     </Directory>


 DocumentRoot"/usr/local/apache/htdocs"

  <Directory"/usr/local/apache/htdocs">

    

找到AddType处,并添加以下2行:

AddType application/x-httpd-php .php .php3 .html .phtml .inc
AddType application/x-httpd-php-source .php5

AddHandler cgi-script .cgi .pl

AddHandler php5-script .php


vi /usr/local/lib/php.ini

更改以下指令为:

register_globals = On

 

 

3.安装php碰到的问题

  a.configure: error: Cannot find MySQL header filesunder yes

   解决办法:安装MySQL-devel-community-5.0.92-1.rhel5.x86_64.rpm即可

  b.configure: error: Cannot find libmysqlclient under/usr.

   解决办法:cp /usr/lib64/mysql/*  /usr/lib/mysql/

   这个问题也应该是安装64位的才会出现。

 

4.重新安装apache2.3.8

 需先安装以下包,用于解决问题:apache2.3.8编译出错 configure: error: APR-util not found.  Please read thedocumentation

 

 a.apr-1.4.2.tar.gz

 

[root@localhost /]# ./configure –prefix=/usr/local/web/apr

[root@localhost /]# make

[root@localhost /]# make  install 

 

b.apr-util-1.3.10.tar.gz

[root@localhost /]#./configure –prefix=/usr/local/web/apr-util–with-apr=/usr/local/web/apr

[root@localhost /]#make

[root@localhost /]#make install

 

c.pcre-8.10.tar.gz

[root@localhost /]#./configure –prefix=/usr/local/web/pcre

[root@localhost /]#make

[root@localhost /]#make install

 

最后安装apache

apache

yum -y install gcc gcc++ zlib-devel

 

在源码安装apache之前,我们要先卸载系统中,已经通过rpm包安装的apache。如下:

rpm -qa |grep httpd

rpm -e --nodeps httpd-2.2.15-29.el6.centos.x86_64

rpm -e --nodeps httpd-tools-2.2.15-29.el6.centos.x86_64


安装之前需要先安装apr apr-util pcre,因为apache需要三个的支持

tar -zxvf httpd-2.2.tar.gz

cd httpd-2.2

./configure --help


[root@localhost /]#./configure -prefix=/usr/local/apache -enable-rewrite -enable-so-with-apr=/usr/local/web/apr -with-apr-util=/usr/local/web/apr-util -with-pcre=/usr/local/web/pcre

 

[root@localhost /]#make

[root@localhost /]#make install

 

apache2.3.8安装成功


apache加入系统服务

为了让apache开机启动,我们可以把apachectl启动脚本加入rc.local文件中,如下:

echo "/usr/local/apache2/bin/apachectlstart">>/etc/rc.local

我们也可以通过把apache加入系统服务,来启动apache。把apache添加为系统服务有两种方法,第一种是通过chkconfig进行添加,第二种是直接添加系统的各个启动级别。

我们先来介绍第一种方法,修改启动httpd脚本加入如下两行命令,如下:

#chkconfig: 2345 70 60

#description: apache

说明:

chkconfig: 2345 70 60中的2345是指脚本的运行级别,即在2345这4种模式下都可以运行,234都是文本界面,5是图形界面X。

70是指脚本将来的启动顺序号,如果别的程序的启动顺序号比70小(比如44、45),则脚本需要等这些程序都启动以后才启动。60是指系统关闭时,脚本的停止顺序号。

description: apache关于脚本的简短描述。

使用chkconfig进行添加,如下:

chkconfig --add httpd

chkconfig |grep httpd

chkconfig --add httpd命令的作用是把/etc/init.d/httpd加入到/etc/rc.d/rc0.d到/etc/rc.d/rc6.d目录下。如下:

find /etc -name *httpd

 

开启apache开机启动,使用如下命令:

chkconfig httpd on

chkconfig |grep httpd


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP