精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>网络应用>>服务器>>Apache>>Re:[转载]:Re:apache虚拟主机设置求教 :)(高级难度:)

主题:Re:[转载]:Re:apache虚拟主机设置求教 :)(高级难度:)
发信人: wesnet()
整理人: zhcharles(2003-04-05 23:48:11), 站内信件
==================================================================== 


 自己动手架设功能强大的 WEB Server v0.02 


  联系本人:[email protected]  QQ:49490304  http://www.oneoo.com 
  如需转载请告知 



 以下安装均在 FreeBSD 4.7 Mini 上测试通过,别的linux可能出现错误 :) 

-、安装 MySQL ==================================================================== 

 把mysql的安装文件拷到 /usr/local (一定要For FreeBSD 版的哦)
  cd /usr/local 

 解压安装文件 

  tar -zxvf /usr/local/src/mysql-x.x.x.tar.gz 

 把解压出来的目录改名 

  cp -R mysql-x.x.x mysql 
  rm -R mysql-x.x.x 

 添加mysql的用户组 

  groupadd mysql 

 添加用户 

  useradd mysql mysql 

 初始化数据库 

  cd mysql 
  scripts/mysql_install_db 

 更改相应目录和文件的权限 

  chown -R root /usr/local/mysql 
  chown -R mysql /usr/local/mysql/data 
  chgrp -R mysql /usr/local/mysql 
  chown -R root /usr/local/mysql/bin 
  cp /usr/local/mysql/support-files/mysql.server /usr/local/mysql 
  chmod 755 /usr/local/mysql/mysql.server 

 开启服务器: 

  /usr/local/mysql.server start 

 进入MySQL提示符: 

  /usr/local/mysql/bin/mysql (用 quit 退出) 

 关闭服务器: 

  /usr/local/mysql/mysql.server stop 


二、安装 Apache+PHP4 =========================================================== 

 把Apache和php的文件拷到 /usr/src 

 切换到 /usr/src 目录,并解压apache和php的安装文件 

  cd /usr/src 
  tar -zxvf apache_1.3.27.tar.gz  
  tar -zxvf php-4.3.0.tar.gz  

 切换到apache_1.3.27目录执行configure程序生成必要的Makefile 

  cd apache_1.3.27
  ./configure --enable-module=vhost_alias --enable-shared=vhost_alias --enable-module=so --prefix=/usr/local/apache

 切换到php的目录 

  cd ../php-4.3.0  

 执行configure程序生成必要的Makefile 

  附加选项--with-apache=../apache_1.3.27表示把php建立成apache的模组 
  ./configure --with-mysql=/usr/local/mysql --enable-track-vars --with-apache=../apache_1.3.27

 开始编译 

  make  

 编译安裝程式 

  make install  

 回到apache_1.3.27目录下执行configure程序生成必要的Makefile 

  cd ../apache_1.3.27
  ./configure --activate-module=src/modules/php4/libphp4.a --enable-module=vhost_alias --enable-shared=vhost_alias --enable-module=so

 开始编译 

  make  

 编译安裝程式 

  make install  

 修改httpd.conf 

  ee /usr/local/apache/conf/httpd.conf 

  在DirectoryIndex index.html后面加上index.htm index.php index.ph3 
  如:DirectoryIndex index.html index.htm index.php index.ph3 

  添加以下一行 
   AddType application/x-httpd-php .php .php3  

  使用apache的动态虚拟主机: 
  在最后添加以下两行 

     UseCanonicalName    Off 
     VirtualDocumentRoot /usr/local/apache/htdocs/%1 

  这样,访问http://xxx.host.com的绝对路径就是 /usr/local/apache/htdocs/xxx ,当然你也可以把/usr/local/apache/htdocs/%1修改成你所需要的路径。 


 设置完毕 

 现在把php的配置文件拷到 /usr/local/lib/ 目录下,PHP的安装包里面已经有默认的配置文件,我们只需把它拷出来就行啦 

 cp /usr/src/php-4.3.0/php.ini-dist /usr/local/lib/php.ini 

 开启web server 

  /usr/local/apache/bin/apachectl start 

 重启web server 

  /usr/local/apache/bin/apachectl restart 

 停止web server  

  /usr/local/apache/bin/apachectl stop  

 把apache在服务器开的时候一并运行 

  ee /usr/local/etc/rc.d/apache.sh 

  apache.sh內容如下 

  #!/bin/sh 
  /usr/local/apache/bin/apachectl start > /dev/null && echo -n ' apache' 

 更改apache.sh的权限 

  chmod 755 /usr/local/etc/rc.d/apache.sh  


三、安装 pure-ftpd =========================================================== 

 把pure-ftpd的文件拷到 /usr/src 

 切换到 /usr/src 目录,并解压pure-ftpd的安装文件 
  tar -zxvf pure-ftpd-1.0.13a.tar.gz  

 切换到apache_1.3.19目录执行configure程序生成必要的Makefile 

  cd pure-ftpd-1.0.13a 
  ./configure --with-mysql  --prefix=/usr/local/pure-ftpd 

 开始编译 

  make  

 编译安裝程式 

  make install  

 在MySQL中新建名为pure-ftpd的数据库,并使用以下的SQL建立数据表 

    CREATE TABLE users ( 
      User varchar(16) NOT NULL default '', 
      Password varchar(64) NOT NULL default '', 
      Uid int(11) NOT NULL default '-1', 
      Gid int(11) NOT NULL default '-1', 
      Dir varchar(128) NOT NULL default '', 
      QuotaFiles int(3) default '500', 
      QuotaSize int(3) default '30', 
      ULBandwidth int(3) default '80',  
      DLBandwidth int(3) default '80', 
      PRIMARY KEY  (User) 
    ) TYPE=MyISAM; 

 使用该SQL语句添加一个用户(你也可以使用其他方法) 


  INSERT INTO users VALUES ('testuser', ENCRYPT('testuser'), -1, -1, '/usr/local/apache/htdocs', 500, 30, 80, 80); 
               用户名   密码             用户的根目录路径     ......详细请看pure-ftpd的帮助文件 


 在/etc目录下新建pure-ftpd.conf文件,内容如下: 
 (详细请看pure-ftpd的帮助文件) 

    ChrootEveryone              yes 
    BrokenClientsCompatibility  no 
    MaxClientsNumber            50 
    Daemonize                   yes 
    MaxClientsPerIP             8 
    VerboseLog                  no 
    DisplayDotFiles             yes 
    AnonymousOnly               no 
    NoAnonymous                 yes 
    SyslogFacility              ftp 
    DontResolve                 yes 
    MaxIdleTime                 15 
    MYSQLConfigFile             /etc/pureftpd-mysql.conf 
    LimitRecursion              2000 8 
    MaxLoad                     4 
    AntiWarez                   yes 
    Umask                       133:022 
    MinUID                      100 
    AllowUserFXP                yes 
    AllowAnonymousFXP           no 
    ProhibitDotFilesWrite       no 
    ProhibitDotFilesRead        no 
    AutoRename                  no 
    AnonymousCantUpload         yes 
    CreateHomeDir               yes 
    CustomerProof               yes 

 在/etc目录下新建/etc/pureftpd-mysql.conf文件,内容如下: 

    MYSQLServer         localhost 
    MYSQLUser           root 
    MYSQLPassword       root      (注意哦,这只是本人的数据库用户和密码,要根据自己的设定配置哦:) 
    MYSQLDatabase       pure-ftpd 
    MYSQLCrypt          cleartext 

    MYSQLGetPW          SELECT Password FROM users WHERE User="\L" 
    MYSQLGetUID         SELECT Uid FROM users WHERE User="\L" 
    MYSQLGetGID         SELECT Gid FROM users WHERE User="\L" 
    MYSQLGetDir         SELECT Dir FROM users WHERE User="\L" 
    MySQLGetQTAFS       SELECT QuotaFiles FROM users WHERE User="\L" 
    MySQLGetQTASZ       SELECT QuotaSize FROM users WHERE User="\L" 
    MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L" 
    MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L" 

 修改刚才建立的文件属性: 

  chmod 666 /etc/pure-ftpd.conf 
  chmod 666 /etc/pureftpd-mysql.conf.conf 

 开启服务器: 

  转到pure-ftpd的目录 
  cd /usr/local/pure-ftpd 

  执行开启命令 
  ./pure-ftpd -l mysql:/etc/pureftpd-mysql.conf -B 

==================================================================================== 

基本完成啦 :) 
如果要使用动态的虚拟主机,可以自己编写PHP文件,供网友申请哦 

具体做法是: 

  网友在网站上申请虚拟主机,程序根据用户申请的主机名,在/usr/local/apache/htdocs目录下新建用户的目录 
  并在pure-ftpd的数据库上添加对应的用户名和密码。 


请注意哦,要提供虚拟主机,你必须要有一个*.host.com的泛域名指向你的服务器哦 :) 


 

[关闭][返回]