Apache+mysql+php+resin+proftpd虚拟主机配置【原创】

范堡 发布于 2009/05/06 16:25
阅读 775
收藏 1

Apache+mysql+php+resin虚拟主机配置
序言:这几天同学要做一虚拟主机服务器,要求我给他配一个服务器。以前也没有机会来做这个东西,以前都是简单的服务器安装和管理。这次碰到这么个机会,所以我就准备来磨练以下自己。好好的来体验一下配置和管理一个服务器。写下这个也是希望能给那些有这方面需要的朋友们做个参考,少走一些弯路。当然了,我说过了这是第一做这样的服务器,肯定有很多地方考虑的不是很周到,也许这样的配置还存在着风险,或维护,或性能,或安全方面的问题。也希望这方面有经验的朋友多给点建议。在这里先谢谢了:)(QQ:36597649 email:redogs@sina.com)

 

首先说明一下系统:Redhat 9.0   
Apache+mysql+php+resin虚拟主机配置
一.安装jdk 1
二,安装mysql(这里我下载的是最新的二进制包)
三,安装apache2,安装流程如下。
四,安装php。
五,安装resin
六,proftpd安装
七虚拟主机的添加和管理
附•Mysql使用管理指南


 

一.安装jdk
[root@localhost root]# ./jdk-1_5_0_06-linux-i586.bin 

[root@localhost root]# vi /etc/profile

#添加下列信息到文件中

export JAVA_HOME=/u01/apps/jdk1.5.0_06

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

export PATH=$PATH:$JAVA_HOME/bin

export JRE_HOME=$JAVA_HOME/jre

[root@localhost root]# chmod u+x  /etc/profile

[root@localhost root]# source /etc/profile

[root@localhost root]# set 

##这里你可以看到所有的环境变量

注:jdk安装还是比较简单的,安装过程比较简单,只要正确的设置了环境变量就可以了.

 
二,安装mysql(这里我下载的是最新的二进制包)
[root@localhost tools]# tar zxvf mysql-standard-5.0.19-linux-i686.tar.gz 

[root@localhost tools]# mv mysql-standard-5.0.19-linux-i686 ../apps/mysql

[root@localhost apps]# cd mysql/

[root@localhost mysql]# groupadd mysql

groupadd: group mysql exists

[root@localhost mysql]# useradd -g mysql mysql

useradd: user mysql exists

[root@localhost mysql]# ./scripts/mysql_install_db  --user=mysql

#这里我没有删除这些安装信息,因为她给我们提供了很多有用的信息。

Installing all prepared tables

Fill help tables

 

To start mysqld at boot time you have to copy support-files/mysql.server

to the right place for your system

 

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

./bin/mysqladmin -u root password 'new-password'  #设置数据库root用户的密码

./bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

See the manual for more instructions.

 

You can start the MySQL daemon with:

cd . ; ./bin/mysqld_safe &   #数据库的启功命令

 -----

[root@localhost mysql]# 

[root@localhost rc.d]# vi /etc/rc.d/rc.local 

#加入下面一行,这样每次重新启动机器可以自动运行mysql daemon

/u01/apps/mysql/bin/mysqld_safe --user=mysql &

[root@localhost mysql]# chown -R root .

[root@localhost mysql]# chown -R mysql data

[root@localhost mysql]# chgrp -R mysql . 

[root@localhost mysql]# chown -R mysql /var/run/mysqld/mysqld.pid

 #没有验证这一个是否需要执行 可能发生Can't connect to local MySQL server through socket '/tmp/mysql.sock' 错误

[root@localhost mysql]# bin/mysqld_safe --user=mysql &

[1] 21334

[root@localhost mysql]# Starting mysqld daemon with databases from /var/lib/mysql

[root@localhost mysql]# bin/mysqladmin -u root password '×××'

bin/mysqladmin: connect to server at 'localhost' failed

error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'

Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!

 

 

#如果你修改数据库密码是碰到了socket '/tmp/mysql.sock' 错误 ,则你需要执行

#下面这个命令,mysql安装后的mysql.sock默认路径是/var/lib/mysql/mysql.sock 

[root@localhost mysql]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

 

下载mysql驱动程序,或者oracle驱动程序classes12.jar,这里我把这两个文件放到了$JAVA_HOME/lib下。并把他们加入到CLASSPATH中。否则jsp连接数据库找不到相应的驱动程序。

注:安装mysql还是让我挺头疼的,我得数据已经启动了,但是修改密码是发生了上面的错误,查了很久才解决了。QQ:36597649 EMAIL:redogs@sina.com


 

三,安装apache2,安装流程如下。
这里我们使用了--enable-so --enable-module=most 选项。详细信息请参考官方网站。

[root@localhost tools]# tar zxvf httpd-2.2.0.tar.gz 

[root@localhost tools]# cd  httpd-2.2.0

[root@localhost httpd-2.2.0]# ./configure --prefix=/u01/apps/httpd-2.2.0 --enable-module=most --enable-shared=max

[root@localhost httpd-2.2.0]# make 

[root@localhost httpd-2.2.0]# make install

[root@localhost httpd-2.2.0]# cd /u01/apps/httpd-2.2.0/bin 

[root@localhost bin]# ./apachectl start

#http://localhost测试是否好使

[root@localhost bin]# ./apachectl stop

注:apache安装也比较顺利,这里没有什么需要注意的地方。

 

四,安装php。
这里我使用的是源码包。首先碰到了安装php-5.1.2失败。

[root@localhost tools]# ./configure --prefix=/u01/apps/php-5.1.2 --with-mysql=/u01/apps/mysql --with-apxs2=/u01/apps/httpd-2.2.0/bin/apxs

--------------

Configuring extensions

checking whether to enable LIBXML support... yes

checking libxml2 install dir... no

checking for xml2-config path... /usr/bin/xml2-config

configure: error: libxml2 version 2.6.11 or greater required. 

#上面就是安装过程碰到的错误

 

[root@localhost tools]# rpm -Fvh libxml2-2.6.16-1.1.el3.rf.i386.rpm 

warning: libxml2-2.6.16-1.1.el3.rf.i386.rpm: V3 DSA signature: NOKEY, key ID 6b8d79e6

error: Failed dependencies:

        libxml2 = 2.5.4 is needed by (installed) libxml2-python-2.5.4-1

        libxml2 = 2.5.4 is needed by (installed) libxml2-devel-2.5.4-1

#呵呵,居然还是不好使,这里我下载了这两个包,但是最后还是无法安装。怎么办

#三十六计走为上,就换了个版本。

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

[root@localhost php-4.4.2]# cd php-4.4.2 

[root@localhost php-4.4.2]# ./configure --prefix=/u01/apps/php-4.4.2 --with-mysql=/u01/apps/mysql --with-apxs2=/u01/apps/httpd-2.2.0/bin/apxs

[root@localhost php-4.4.2]# make 

[root@localhost php-4.4.2]# make install

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

[root@localhost conf]# vi httpd.conf

#系统自动添加了这一行,如果没有则自己加入这一行。

LoadModule php4_module modules/libphp4.so

 

 注:安装过程,有点挫折,不过也没什么,没有什么值得注意的地方。倒是php.ini配置文件是个复杂的东西,有一些设置需要我们根据我们的需要做一些修改;全局注册变量默认是off,还有如果我们使用oracle的话,也需要加载相应的模块等。

五,测试php虚拟主机

修改httpd.conf文件加入虚拟主机

我修改了apache server的根目录

另外添加下面内容到httpd.conf的结尾。当然了你也可以放到其他你喜欢的地方。

NameVirtualHost *:80


  
DirectoryIndex index.htm index.html index.jsp index.php

ServerName *:80
ServerAdmin [email]gan@addmini.com[/email]
DocumentRoot  /u01/www/test


编写文件index.php 写入下一行



通过浏览器我们看到了我们的测试结果。

六,安装resin
这里下载的版本是resin-3.0.14

[root@localhost resin]#tar zxvf resin-3.0.14.tar.gz

[root@localhost resin]#mv resin-3.0.14 ../apps/resin

[root@localhost resin]#./configure --with-apxs2=/u01/apps/httpd-2.0.50/bin/apxs

 

这里安装程序自动修改了httpd.conf文件加入了下面两行

# mod_caucho Resin Configuration

#

 

LoadModule caucho_module /u01/apps/httpd-2.0.50/modules/mod_caucho.so

 

ResinConfigServer localhost 6802

CauchoStatus yes

这里我们resin和apache整合完毕

注:第一次安装的httpd-2.2.0版本时mod_caucho.so编译没通过,要是不细心看的话会以为成功了。后来才有换的2.0.50版。才成功的。

测试:

[root@localhost apps]# ./resin-3.0.14/bin/httpd.sh start &

[root@localhost apps]# ./httpd-2.0.50/bin/apachectl start

浏览器输入:http://ip/index.html

http://ip/index.jsp //访问的是resin根目录文件。

都正常显示了服务器默认网页,说明安装成

 

QQ:36597649 EMAIL:redogs@sina.com

注:到这里已经很好的整合了apahce,jsp,php.对一般的用户来说已经够用了。

设置虚拟主机时注意,因为我是远程访问服务器,所以配置后的http://10.30.*.*/caucho-status  看到的结果:这里时ip地址,和虚拟主机的一样 


其中httpd.conf中

LoadModule caucho_module modules/mod_caucho.so

ResinConfigServer 10.30.24.85 6802



  SetHandler caucho-status



Resin.conf配置如下



      



如果这里安默认的localhost的话,将导致图片无法显示


七,proftpd安装

[root@localhost tools]# tar zxvf proftpd-1.2.10.tar.gz

[root@localhost proftpd-1.2.10]# cd proftpd-1.2.10

[root@localhost proftpd-1.2.10]# ./configure --prefix=/u01/apps/proftpd-1.2.10

[root@localhost proftpd-1.2.10]# make

[root@localhost proftpd-1.2.10]# make install

[root@localhost sbin]#cd /u01/apps/proftpd-1.2.10/sbin

[root@localhost sbin]# ./proftpd  

注:这里如果你修改了proftpd.conf文件,则需要执行下面命令读入新的配置

[root@localhost sbin]# ./ftpshut now

[root@localhost sbin]# ./ftpshut -R now

./ftpshut: /etc/shutmsg removed

[root@localhost sbin]# ./proftpd  

这里如果你没有移除./ftpshut: /etc/shutmsg removed,则所有用户不能登录。


后记:感觉配置一次服务真是辛苦呀。当然了安装完不知就万事大吉了,后来测试过程中发现很多问题,比如虽然都下载的是最新的安装包,但是带了很多新的问题。比如上面php的安装,还有后来我碰到了数据库乱码的问题,倒数据的时候发生了乱码,最后不得不换到4.0.*版本,解决了乱码的问题。还有设置虚拟主机的时候不能正常显示jsp的图片。总之这是个辛苦和细心的工作。

 



Mysql使用管理指南1,  帐号管理

登录数据库使用下面命令

shell> mysql --user=monty --password=guess db_name
shell> mysql -u monty -pguess db_name
 

上面两个命令是一样的。这里给数据库db_name 添加一个用户monty密码是guess。

注意:这里的-p和密码之间不能有空格。

 

shell> mysql --user=monty --password db_name
shell> mysql -u monty -p db_name
  这两个命令也创建了同样的数据库用户,但是使用下面方法创建的用户登录数据库是需要用户输入密码。上面的方法存在着安全风险。

   添加一个mysql用户,有两种方法:

a,  使用GRANT命令

b,  更新mysql grant数据表

 

下面使用grant创建用户

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
->IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
->
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';
 
mysql> FLUSH PRIVILEGES;
删除用户
mysql> DELETE FROM mysql.user
    -> WHERE User='user_name' and Host='host_name';
mysql> FLUSH PRIVILEGES;
 
 
下面使用数据库SQL 添加用户
shell> mysql -u root mysql
mysql> INSERT INTO user (Host,User,Password)
    -> VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES;
 
给账户分配密码
mysql> SET PASSWORD FOR 'jeffrey'@'%' = PASSWORD('biscuit');
使用下面命令可以更新用户密码
shell> mysqladmin -u user_name -h host_name password "newpwd"

[ 本帖最后由 HonestQiao 于 2006-3-28 09:15 编辑 ]



加载中
返回顶部
顶部