php mysql安装配置_apache+php+mysql安装配置

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*.* TOusername@'%' IDENTIFIEDBY '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目录下,测试上面用命令创建的数据库

$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数据库了,下面是测试程序

$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 "

while ($line =mysql_fetch_array($result, MYSQL_ASSOC)) {

print "\t

\n";

foreach ($line as $col_value) {

print"\t\t

$col_value\n";

}

print "\t

\n";    }

print "

\n";

/* 释放资源 */

mysql_free_result($result);

mysql_close();

?>

~

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

AllowOverride none

Require all granted

DocumentRoot"/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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值