¾³£ÉÏÍøµÄ¶ÁÕß»áÓöµ½ÕâÖÖÇé¿ö£º·ÃÎÊÒ»Ð©ÍøÕ¾µÄijЩ×ÊԴʱ£¬ä¯ÀÀÆ÷µ¯³öÒ»¸ö¶Ô»°¿ò£¬ÒªÇóÊäÈëÓû§ÃûºÍÃÜÂëÀ´»ñÈ¡¶Ô×ÊÔ´µÄ·ÃÎÊ¡£Õâ¾ÍÊÇÓû§ÈÏÖ¤µÄÒ»ÖÖ¼¼Êõ¡£Óû§ÈÏÖ¤ÊDZ£»¤ÍøÂçϵͳ×ÊÔ´µÄµÚÒ»µÀ·ÀÏߣ¬Ëü¿ØÖÆ×ÅËùÓеǼ²¢¼ì²é·ÃÎÊÓû§µÄºÏ·¨ÐÔ£¬ÆäÄ¿±êÊǽöÈúϷ¨Óû§ÒԺϷ¨µÄȨÏÞ·ÃÎÊÍøÂçϵͳµÄ×ÊÔ´¡£»ù±¾µÄÓû§ÈÏÖ¤¼¼ÊõÊÇ¡°Óû§Ãû£«ÃÜÂ롱¡£
¡¡¡¡ApacheÊÇĿǰÁ÷ÐеÄWeb·þÎñÆ÷£¬¿ÉÔËÐÐÔÚLinux¡¢Unix¡¢WindowsµÈ²Ù×÷ϵͳÏ£¬Ëü¿ÉÒԺܺõؽâ¾ö¡°Óû§Ãû£«ÃÜÂ롱µÄÈÏÖ¤ÎÊÌâ¡£ApacheÓû§ÈÏÖ¤ËùÐèÒªµÄÓû§ÃûºÍÃÜÂëÓÐÁ½ÖÖ²»Í¬µÄ´æÖü·½Ê½£ºÒ»ÖÖÊÇÎı¾Îļþ£»ÁíÒ»ÖÖÊÇMSQL¡¢Oracle¡¢MySQLµÈÊý¾Ý¿â¡£ÏÂÃæÒÔLinuxµÄApacheΪÀý£¬¾ÍÕâÁ½ÖÖ´æÖü·½Ê½£¬·Ö±ð½éÉÜÈçºÎʵÏÖÓû§ÈÏÖ¤¹¦ÄÜ£¬Í¬Ê±¶ÔWindowsµÄApacheÓû§ÈÏÖ¤×÷¼òÒªµÄ˵Ã÷¡£
¡¡¡¡²ÉÓÃÎı¾Îļþ´æ´¢
¡¡¡¡ÕâÖÖÈÏÖ¤·½Ê½µÄ»ù±¾Ë¼ÏëÊÇ£ºApacheÆô¶¯ÈÏÖ¤¹¦Äܺ󣬾ͿÉÒÔÔÚÐèÒªÏÞÖÆ·ÃÎʵÄĿ¼Ï½¨Á¢Ò»¸öÃûΪ.htaccessµÄÎļþ£¬Ö¸¶¨ÈÏÖ¤µÄÅäÖÃÃüÁî¡£µ±Óû§µÚÒ»´Î·ÃÎʸÃĿ¼µÄÎļþʱ£¬ä¯ÀÀÆ÷»áÏÔʾһ¸ö¶Ô»°¿ò£¬ÒªÇóÊäÈëÓû§ÃûºÍÃÜÂ룬½øÐÐÓû§Éí·ÝµÄÈ·ÈÏ¡£ÈôÊǺϷ¨Óû§£¬ÔòÏÔʾËù·ÃÎʵÄÒ³ÃæÄÚÈÝ£¬´Ëºó·ÃÎʸÃĿ¼µÄÿ¸öÒ³Ãæ£¬ä¯ÀÀÆ÷×Ô¶¯ËͳöÓû§ÃûºÍÃÜÂ룬²»ÓÃÔÙÊäÈëÁË£¬Ö±µ½¹Ø±Õä¯ÀÀÆ÷Ϊֹ¡£ÒÔÏÂÊÇʵÏֵľßÌå²½Ö裺
¡¡¡¡ÒÔ³¬¼¶Óû§root½øÈëLinux£¬¼ÙÉèApache 1.3.12ÒѾ±àÒë¡¢°²×°µ½ÁË/usr/local/apacheĿ¼ÖС£È±Ê¡Çé¿öÏ£¬±àÒëApacheʱ×Ô¶¯¼ÓÈëmod_authÄ£¿é£¬ÀûÓôËÄ£¿é¿ÉÒÔʵÏÖ¡°Óû§Ãû+ÃÜÂ롱ÒÔÎı¾ÎļþΪ´æ´¢·½Ê½µÄÈÏÖ¤¹¦ÄÜ¡£
¡¡¡¡1.ÐÞ¸ÄApacheµÄÅäÖÃÎļþ/usr/local/apache/conf/httpd.conf£¬¶ÔÈÏÖ¤×ÊÔ´ËùÔÚµÄĿ¼É趨ÅäÖÃÃüÁî¡£ÏÂÀýÊǶÔ/usr/local/apache/htdocs/membersĿ¼µÄÅäÖãº
¡¡¡¡£¼Directory /usr/local/apache/htdocs /members£¾
¡¡¡¡Options Indexes FollowSymLinks
¡¡¡¡allowoverride authconfig
¡¡¡¡order allow,deny
¡¡¡¡allow from all
¡¡¡¡£¼/Directory£¾
¡¡¡¡ÆäÖУ¬allowoverride authconfigÒ»ÐбíʾÔÊÐí¶Ô/usr/local/apache/htdocs/ membersĿ¼ÏµÄÎļþ½øÐÐÓû§ÈÏÖ¤¡£
¡¡¡¡2.ÔÚÏÞÖÆ·ÃÎʵÄĿ¼/usr/local/apache/htdocs/membersϽ¨Á¢Ò»¸öÎļþ.htaccess£¬ÆäÄÚÈÝÈçÏ£º
¡¡¡¡AuthName "»áÔ±Çø"
¡¡¡¡AuthType basic
¡¡¡¡AuthUserFile/usr/local/apache/members.txt
¡¡¡¡require valid-user
¡¡¡¡ËµÃ÷£ºÎļþ.htaccessÖг£ÓõÄÅäÖÃÃüÁîÓÐÒÔϼ¸¸ö£º
¡¡¡¡1) AuthNameÃüÁָ¶¨ÈÏÖ¤ÇøÓòÃû³Æ¡£ÇøÓòÃû³ÆÊÇÔÚÌáʾҪÇóÈÏÖ¤µÄ¶Ô»°¿òÖÐÏÔʾ¸øÓû§µÄ(¼û¸½Í¼)¡£
¡¡¡¡2)AuthTypeÃüÁָ¶¨ÈÏÖ¤ÀàÐÍ¡£ÔÚHTTP1.0ÖУ¬Ö»ÓÐÒ»ÖÖÈÏÖ¤ÀàÐÍ£ºbasic¡£ÔÚHTTP1.1ÖÐÓм¸ÖÖÈÏÖ¤ÀàÐÍ£¬È磺MD5¡£
¡¡¡¡3) AuthUserFileÃüÁָ¶¨Ò»¸ö°üº¬Óû§ÃûºÍÃÜÂëµÄÎı¾Îļþ£¬Ã¿ÐÐÒ»¶Ô¡£
¡¡¡¡4) AuthGroupFileÃüÁָ¶¨°üº¬Óû§×éÇåµ¥ºÍÕâЩ×éµÄ³ÉÔ±Çåµ¥µÄÎı¾Îļþ¡£×éµÄ³ÉÔ±Ö®¼äÓÿոñ·Ö¿ª£¬È磺
¡¡¡¡managers:user1 user2
¡¡¡¡5) requireÃüÁָ¶¨ÄÄЩÓû§»ò×é²ÅÄܱ»ÊÚȨ·ÃÎÊ¡£È磺
¡¡¡¡require user user1 user2(Ö»ÓÐÓû§user1ºÍuser2¿ÉÒÔ·ÃÎÊ)
¡¡¡¡requiresgroupsmanagers (Ö»ÓÐ×émanagersÖгÉÔ±¿ÉÒÔ·ÃÎÊ)
¡¡¡¡require valid-user (ÔÚAuthUserFileÖ¸¶¨µÄÎļþÖÐÈκÎÓû§¶¼¿ÉÒÔ·ÃÎÊ)
¡¡¡¡3.ÀûÓÃApache¸½´øµÄ³ÌÐòhtpasswd£¬Éú³É°üº¬Óû§ÃûºÍÃÜÂëµÄÎı¾Îļþ£º/usr/local/apache/members.txt£¬Ã¿ÐÐÄÚÈݸñʽΪ¡°Óû§Ãû:ÃÜÂ롱¡£
¡¡¡¡#cd /usr/local/apache/bin
¡¡¡¡#htpasswd -bc ../members.txt user1 1234
¡¡¡¡#htpasswd -b ../members.txt user2 5678
¡¡¡¡Îı¾Îļþmembers.txtº¬ÓÐÁ½¸öÓû§£ºuser1,¿ÚÁîΪ1234£»user2£¬¿ÚÁîΪ5678¡£×¢Ò⣬²»Òª½«´ËÎı¾Îļþ´æ·ÅÔÚWebÎĵµµÄĿ¼Ê÷ÖУ¬ÒÔÃâ±»Óû§ÏÂÔØ¡£
¡¡¡¡ÓûÁ˽âhtpasswd³ÌÐòµÄ°ïÖú£¬ÇëÖ´ÐÐhtpasswd -h¡£
¡¡¡¡µ±Óû§ÊýÁ¿±È½ÏÉÙʱ£¬ÕâÖÖ·½·¨¶ÔÓû§µÄÈÏÖ¤ÊÇ·½±ã¡¢Ê¡Êµģ¬Î¬»¤¹¤×÷Ò²¼òµ¥¡£µ«ÊÇÔÚÓû§ÊýÁ¿ÓÐÊýÍòÈË£¬ÉõÖÁÊýÊ®ÍòÈËʱ£¬»áÔÚ²éÕÒÓû§ÉÏ»¨µôÒ»¶¨Ê±¼ä£¬´Ó¶ø½µµÍ·þÎñÆ÷µÄЧÂÊ¡£ÕâÖÖÇéÐΣ¬Ó¦²ÉÓÃÊý¾Ý¿â·½Ê½¡£
¡¡¡¡²ÉÓÃÊý¾Ý¿â´æ´¢
¡¡¡¡Ä¿Ç°£¬Apache¡¢PHP4¡¢MySQLÈýÕßÊÇLinuxϹ¹½¨WebÍøÕ¾µÄ×î¼Ñ´îµµ£¬ÕâÈý¸öÈí¼þ¶¼ÊÇÃâ·ÑÈí¼þ¡£½«ÈýÕß½áºÏÆðÀ´£¬Í¨¹ýHTTPÐÒ飬ÀûÓÃPHP4ºÍMySQL£¬ÊµÏÖApacheµÄÓû§ÈÏÖ¤¹¦ÄÜ¡£
¡¡¡¡Ö»ÓÐÔÚPHP4ÒÔApacheµÄÄ£¿é·½Ê½À´ÔËÐеÄʱºò²ÅÄܽøÐÐÓû§ÈÏÖ¤¡£Îª´Ë£¬ÔÚ±àÒëApacheʱÐèÒª¼ÓÈëPHP4Ä£¿éÒ»Æð±àÒë¡£¼ÙÉèPHP4×÷ΪApacheµÄÄ£¿é£¬±àÒë¡¢°²×°Apacheµ½/usr/local/apacheĿ¼£¬±àÒë¡¢°²×°MySQLµ½/usr/local/mysqlĿ¼¡£È»ºó½øÐÐÏÂÃæµÄ²½Ö裺
¡¡¡¡1.ÔÚMySQLÖн¨Á¢Ò»¸öÊý¾Ý¿âmember£¬ÔÚÆäÖн¨Á¢Ò»¸ö±íusers£¬ÓÃÀ´´æ·ÅºÏ·¨Óû§µÄÓû§ÃûºÍÃÜÂë¡£
¡¡¡¡1)ÓÃviÃüÁîÔÚ/tmpĿ¼½¨Á¢Ò»¸öSQL½Å±¾Îļþauth.sql£¬ÄÚÈÝΪ£º
¡¡¡¡drop database if exists member;
¡¡¡¡create database member;
¡¡¡¡use member;
¡¡¡¡create table users (
¡¡¡¡username char(20) not null,
¡¡¡¡password char(20) not null,
¡¡¡¡);
¡¡¡¡insertsintosusers values("user1",password("1234"));
¡¡¡¡insertsintosusers values("user2",password("5678"));
¡¡¡¡2)Æô¶¯MySQL¿Í»§³ÌÐòmysql£¬Ö´ÐÐÉÏÊöSQL½Å±¾Îļþauth.sqlµÄÃüÁÔÚ±íusersÖÐÔö¼ÓÁ½¸öÓû§µÄ¼Ç¼¡£
¡¡¡¡#mysql -u root -pmypwd£¼/tmp/auth.sql
¡¡¡¡2.±àдһ¸öPHP½Å±¾Í·Îļþauth.inc£¬³ÌÐòÄÚÈÝΪ£º
¡¡¡¡£¼?php
¡¡¡¡function authenticate() {
¡¡¡¡Header('WWW-authenticate: basic realm="»áÔ±Çø"');
¡¡¡¡Header('HTTP/1.0 401 Unauthorized');
¡¡¡¡echo "Äã±ØÐëÊäÈëÕýÈ·µÄÓû§ÃûºÍ¿ÚÁî¡£ ";
¡¡¡¡exit;
¡¡¡¡}
¡¡¡¡function CheckUser(, ) {
¡¡¡¡if ( == "" || == "") return 0;
¡¡¡¡ = "SELECT username,password FROM usersswheresusername='' and password=password('')";
¡¡¡¡ = mysql_connect('localhost', 'root', 'mypwd');
¡¡¡¡mysql_select_db('member',);
¡¡¡¡ = mysql_query(, );
¡¡¡¡=mysql_num_rows();
¡¡¡¡mysql_close();
¡¡¡¡if (£¾0) {
¡¡¡¡return 1; //ÓÐЧµÇ¼
¡¡¡¡} else {
¡¡¡¡return 0; //ÎÞЧµÇ¼
¡¡¡¡}
¡¡¡¡}
¡¡¡¡?£¾
¡¡¡¡º¯ÊýAuthenticate()µÄ×÷ÓÃÊÇÀûÓú¯ÊýHeader('WWW-authenticate: basic realm="»áÔ±Çø"')£¬Ïòä¯ÀÀÆ÷·¢ËÍÒ»¸öÈÏÖ¤ÇëÇóÏûÏ¢£¬Ê¹ä¯ÀÀÆ÷µ¯³öÒ»¸öÓû§Ãû/ÃÜÂëµÄ¶Ô»°¿ò¡£µ±Óû§ÊäÈëÓû§ÃûºÍÃÜÂëºó£¬°üº¬´ËPHP½Å±¾µÄURL½«×Ô¶¯µØ±»Ôٴε÷Ó㬽«Óû§Ãû¡¢ÃÜÂë¡¢ÈÏÖ¤ÀàÐÍ·Ö±ð´æ·Åµ½PHP4µÄÈý¸öÌØÊâ±äÁ¿£º¡¢¡¢£¬ÔÚPHP³ÌÐòÖпɸù¾ÝÕâÈý¸ö±äÁ¿ÖµÀ´ÅжÏÊÇ·ñºÏ·¨Óû§¡£Header()º¯ÊýÖУ¬basic±íʾ»ù±¾ÈÏÖ¤ÀàÐÍ£¬realmµÄÖµ±íʾÈÏÖ¤ÇøÓòÃû³Æ¡£
¡¡¡¡º¯ÊýHeader('HTTP/1.0 401 Unauthorized')ʹä¯ÀÀÆ÷Óû§ÔÚÁ¬Ðø¶à´ÎÊäÈë´íÎóµÄÓû§Ãû»òÃÜÂëʱ½ÓÊÕµ½HTTP 401´íÎó¡£
¡¡¡¡º¯ÊýCheckUser()ÓÃÀ´ÅжÏä¯ÀÀÆ÷Óû§·¢ËÍÀ´µÄÓû§Ãû¡¢ÃÜÂëÊÇ·ñÓëMySQLÊý¾Ý¿âµÄÏàͬ£¬ÈôÏàͬÔò·µ»Ø1£¬·ñÔò·µ»Ø0¡£ÆäÖÐmysql_connect('localhost', 'root', 'mypwd')µÄÊý¾Ý¿âÓû§ÃûrootºÍÃÜÂëmypwd£¬Ó¦¸ù¾Ý×Ô¼ºµÄMySQLÉèÖöø¸Ä±ä¡£
¡¡¡¡3.ÔÚÐèÒªÏÞÖÆ·ÃÎʵÄÿ¸öPHP½Å±¾³ÌÐò¿ªÍ·Ôö¼ÓÏÂÁгÌÐò¶Î:
¡¡¡¡£¼?php
¡¡¡¡require('auth.inc');
¡¡¡¡if (CheckUser(,)==0) {
¡¡¡¡authenticate();
¡¡¡¡} else {
¡¡¡¡echo "ÕâÊǺϷ¨Óû§Òª·ÃÎʵÄÍøÒ³¡£"; //½«´ËÐиÄΪÏòºÏ·¨Óû§Êä³öµÄÍøÒ³
¡¡¡¡}
¡¡¡¡?£¾
¡¡¡¡°ÑÐèÒªÏòºÏ·¨Óû§ÏÔʾµÄÍøÒ³ÄÚÈݷŵ½else×Ó¾äÖУ¬È¡´úÉÏÊö³ÌÐò¶ÎµÄÒ»ÐУº
¡¡¡¡echo "ÕâÊǺϷ¨Óû§Òª·ÃÎʵÄÍøÒ³¡£";
¡¡¡¡ÕâÑù£¬µ±Óû§·ÃÎʸÃPHP½Å±¾³ÌÐòʱ£¬ÐèÒªÊäÈëÓû§ÃûºÍÃÜÂëÀ´È·ÈÏÓû§µÄÉí·Ý¡£
¡¡¡¡WindowsµÄApacheÓû§ÈÏÖ¤
¡¡¡¡1.²ÉÓÃÎı¾Îļþ´æ·ÅÓû§ÃûºÍÃÜÂëʱ£¬Æä·½·¨Í¬Ç°£¬µ«ÐèҪעÒâµÄÊDZíʾ·¾¶µÄĿ¼ÃûÖ®¼ä¡¢Ä¿Â¼ÃûÓëÎļþÃûÖ®¼äÒ»ÂÉÓÃбÏß¡°/¡±·Ö¿ª£¬¶ø²»ÊÇ·´Ð±Ïß¡°¡±¡£
¡¡¡¡2.²ÉÓÃMySQLÊý¾Ý¿â´æ·ÅÓû§ÃûºÍÃÜÂëʱ£¬Ê×ÏȰ´ÏÂÁз½·¨½«PHP 4.0.3×÷ΪApacheµÄÄ£¿éÀ´ÔËÐУ¬È»ºó°´ÉÏÊö¡°²ÉÓÃÊý¾Ý¿â´æ´¢Óû§ÃûºÍÃÜÂëµÄÓû§ÈÏÖ¤¡±µÄ·½·¨Íê³É¡£
¡¡¡¡1)ÏÂÔØWindows°æµÄApache 1.3.12¡¢PHP 4.0.3¡¢MySQL 3.2.32£¬½«Èý¸öÈí¼þ·Ö±ð½âѹ¡¢°²×°µ½C:pache¡¢C:PHP4¡¢C:mysqlĿ¼¡£
¡¡¡¡2) C:PHP4SAPIĿ¼Óм¸¸ö³£ÓÃWeb·þÎñÆ÷µÄPHPÄ£¿éÎļþ£¬½«ÆäÖÐphp4apache.dll¿½±´µ½ApacheµÄmodules×ÓĿ¼(C:pachemodules)¡£
¡¡¡¡3)ÐÞ¸ÄApacheµÄÅäÖÃÎļþC:pachenfhttpd.conf£¬Ôö¼ÓÒÔϼ¸ÐУº
¡¡¡¡LoadModule php4_module modules/ php4apache.dll
¡¡¡¡AddType application/x-httpd-php .php3
¡¡¡¡AddType application/x-httpd-php-source .phps
¡¡¡¡AddType application/x-httpd-php .php
¡¡¡¡µÚÒ»ÐÐʹPHP4ÒÔApacheµÄÄ£¿é·½Ê½ÔËÐУ¬ÕâÑù²ÅÄܽøÐÐÓû§ÈÏÖ¤£¬ºóÈýÐж¨ÒåPHP½Å±¾³ÌÐòµÄÀ©Õ¹Ãû¡£
¡¡¡¡4)ÔÚautoexec.batÎļþµÄPATHÃüÁîÖÐÔö¼ÓPHP4ËùÔÚ·¾¶¡°C:PHP4¡±£¬ÖØÐÂÆô¶¯µçÄÔ¡