µ±Ç°Î»ÖãºLinux½Ì³Ì - Apache - Apache·þÎñÆ÷µÄÓû§ÈÏÖ¤ £¨×ª£©

Apache·þÎñÆ÷µÄÓû§ÈÏÖ¤ £¨×ª£©

¾­³£ÉÏÍøµÄ¶ÁÕß»áÓöµ½ÕâÖÖÇé¿ö£º·ÃÎÊÒ»Ð©ÍøÕ¾µÄ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¡±£¬ÖØÐÂÆô¶¯µçÄÔ¡