免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5116 | 回复: 4
打印 上一主题 下一主题

[Web] Apache+mysql+php+resin+proftpd虚拟主机配置【原创】 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-23 19:21 |只看该作者 |倒序浏览
[b]Apache+mysql+php+resin虚拟主机配置[/b]
序言:这几天同学要做一虚拟主机服务器,要求我给他配一个服务器。以前也没有机会来做这个东西,以前都是简单的服务器安装和管理。这次碰到这么个机会,所以我就准备来磨练以下自己。好好的来体验一下配置和管理一个服务器。写下这个也是希望能给那些有这方面需要的朋友们做个参考,少走一些弯路。当然了,我说过了这是第一做这样的服务器,肯定有很多地方考虑的不是很周到,也许这样的配置还存在着风险,或维护,或性能,或安全方面的问题。也希望这方面有经验的朋友多给点建议。在这里先谢谢了:)(QQ:36597649 email:redogs@sina.com)



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




[b]一.安装jdk[/b]
[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安装还是比较简单的,安装过程比较简单,只要正确的设置了环境变量就可以了.


[b]二,安装mysql(这里我下载的是最新的二进制包)[/b]
[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




[b]三,安装apache2,安装流程如下。[/b]
这里我们使用了--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

#[url]http://localhost[/url]测试是否好使

[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的话,也需要加载相应的模块等。
[b]
五,测试php虚拟主机[/b]
修改httpd.conf文件加入虚拟主机

我修改了apache server的根目录

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

NameVirtualHost *:80

<VirtualHost *:80>
<Directory "/u01/www/test" >  
DirectoryIndex index.htm index.html index.jsp index.php
</Directory>
ServerName *:80
ServerAdmin [email]gan@addmini.com[/email]
DocumentRoot  /u01/www/test
</VirtualHost>

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

<? Phpinfo() ?>

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

六,安装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

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

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

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



QQ:36597649 EMAIL:redogs@sina.com

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

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


其中httpd.conf中

LoadModule caucho_module modules/mod_caucho.so

ResinConfigServer 10.30.24.85 6802

<Location /caucho-status>

  SetHandler caucho-status

</Location>

Resin.conf配置如下

<cluster>

      <srun server-id="" host="10.30.24.85" port="6802"/>

</cluster>

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

[b]
七,proftpd安装[/b]
[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的图片。总之这是个辛苦和细心的工作。





[b]Mysql使用管理指南[/b]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"

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

论坛徽章:
0
2 [报告]
发表于 2006-03-27 18:10 |只看该作者
系统还用红帽9?太老了吧?
MYSQL用5.0,做虚拟主机,会有很多麻烦的。
proftpd建议结合数据库做认证和限额。

论坛徽章:
0
3 [报告]
发表于 2006-03-31 21:52 |只看该作者

回复 2楼 lushy 的帖子

后来提到了,数据是出现了乱码问题,所以又该回到4.XX版了。
你提到做【 proftpd建议结合数据库做认证和限额。】也考虑了,但是忙着给导师写webservice编程实例。所以就想用quota管理磁盘。也许以后会该成 【proftpd建议结合数据库做认证和限额】
还有这样配置是否每次加入虚拟主机时需要重新启动服务。不知道有什么好的解决办法。

论坛徽章:
0
4 [报告]
发表于 2006-04-09 11:27 |只看该作者
还有这样配置是否每次加入虚拟主机时需要重新启动服务。不知道有什么好的解决办法。


搭配URL重写模块,就可实现动态管理虚拟主机。此内容,参考 Apache2 官方手册 的 虚拟主机 部分。

论坛徽章:
0
5 [报告]
发表于 2006-04-09 14:37 |只看该作者

回复 4楼 likuku 的帖子

谢谢,楼上。配好了拿出来给大家分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP