ÈëÃÅ֪ʶ
Ôڴ˼ٶ¨Äú¶Ô PHP µÄÓï·¨ÓÐÒ»¸ö´óÖµÄÁ˽⣬ÖÁÉÙÄܹ»±àд“Hello World”Ö®ÀàµÄ³ÌÐò¡£Èç¹ûÄú²»¾ß±¸»ù´¡ÖªÊ¶£¬ÔòÇëÊ×ÏÈѧϰ PHP ÊÖ²áºÍijЩ»ù±¾µÄ PHP ½Ì³Ì¡£ºÜ¶à³ö°æÉ̶¼ÓйØÓÚ PHP µÄºÃÊé¡£½¨Òé³õѧÕßÒ»¿ªÊ¼ÏÈ¿´¿´ÈëÃÅÊé¼®»òʳÆ×ÐÎʽµÄÊé¼®¡£
ÔÚÉú²ú»·¾³µÄ׼ȷ¸±±¾ÉÏÖ´ÐÐÉó¼Æ¡£Äú²»ÐèÒª¸´ÖÆÓ²¼þ£¬µ«ÊÇÐèҪȷ±£Èí¼þ°æ±¾¾¡Á¿ºÍʵ¼ÊµÄÍêÈ«Ò»Ñù¡£PHP ÅäÖñØÐ뾫ȷƥÅ䣬ÕâÒ»µãÔÚ php.ini ÎļþÖС¢ÔÚ .htaccess ÎļþµÄ Apache Ö¸ÁîÖлòÔÚ httpd.conf ÖÐÒѾָ¶¨¡£ÄúÐèҪ׼±¸Ò»¸öµ¥¶ÀµÄ»·¾³£¬ÒòΪÄú½«ÏÔʾºÍ¼Ç¼¿ÉÄÜ°üº¬Ãô¸ÐµÄÃÜÂë¼°ÆäËûÐÅÏ¢µÄ´íÎó¡£´ËÍ⣬Äú½«³¢ÊÔÖжÏÕ¾µãµÄ°²È«ÐÔ£¬ÕâÒ»µãÊÇÄúÔڻӦÓóÌÐòÖм«Á¦±ÜÃâµÄ¡£
µÚÒ»²½Êǽ« PHP µÄ error_reporting ÉèÖøü¸ÄΪ E_ALL¡£ÉèÖøü¸Äºó£¬Ã¿µ±Ê¹ÓÃδ³õʼ»¯µÄ±äÁ¿¡¢½øÐдíÎóµÄÎļþ·ÃÎʼ°·¢ÉúÆäËû£¨´ó¶àÊý£©ÎÞº¦´íÎóʱ£¬PHP ¶¼»á±¨¸æÒ»Ìõ¾¯¸æÏûÏ¢£¬µ«Ò²´æÔÚÕâÊÇÒ»¸öDZÔÚ¹¥»÷ʸÁ¿µÄ¿ÉÄÜÐÔ¡£ÕâЩ´íÎóÒ»°ãÇé¿öÏÂÖ»ÊDZíÃ÷±à³Ì²ÝÂÊ£¬ËùÒÔÈç¹ûÕâÊÇÄúµÄ´úÂ룬Äú°ÑËüÃÇÇå³ýµô¼´¿É¡£
¸ÃÉèÖÃÈçÏÂËùʾ£º
error_reporting = E_ALL
Èç¹ûÄú²»ÖªµÀ php.ini ÎļþÔÚÄÄÀÔò¿ÉÒÔͨ¹ý´´½¨°üº¬ÒÔÏÂÎı¾µÄ .php ½Å±¾À´²éÕ ......
±àд¹ØÓÚ PHP µÄϵÁÐÎÄÕÂÈÃÎÒ¸ü¼ÓÉî¿ÌµØÁ˽âÁË PHP ¿ª·¢ÈËÔ±µÄÊÀ½ç¡£ÎÒºÍÐí¶à PHP ³ÌÐòÔ±½»Ì¸¹ý£¬×îÁîÎÒ¾ªÆæµÄÊÇÖ»ÓкÜÉÙµÄÈËʹÓà IDE¡£´ó¶àÊý³ÌÐòԱʹÓÃÎı¾±à¼Æ÷£¬±ÈÈç Microsoft® Windows® ÉϵļÇʱ¾¡¢Emacs »òÕß Vim¡£
ÎÒÌáµ½µÄÕâЩÎı¾±à¼Æ÷£¨ÒÔ¼°ÎÒûÌáµ½£©¶¼ÊǺܲ»´íµÄ —— ÎÒ²»ÏëÌÖÂÛÄĸö±à¼Æ÷¸üºÃ¡£µ«ÊÇ£¬ÎÒҪǿµ÷µÄÊDz»Ê¹ÓÃÎı¾±à¼Æ÷»áʹÄú¶Ô PHP ´úÂëÓиüÉîµÄ¼û½â¡£¼¸ºõËùÓÐÈ˶¼½« PHP ÏîÄ¿ÊÓΪֻ²»¹ýÊÇÎļþĿ¼¶øÒÑ£¨ÕâÖÖ¿´·¨Ê®·ÖƬÃ棩¡£ÏÖÔÚ¾ÍÈÃÎÒ´øÄú½øÈë IDE µÄÊÀ½ç£¬ÏòÄúչʾ IDE Äܹ» —— »òÕßÓ¦¸Ã —— ¸øÄú´øÀ´Ê²Ã´£¬²¢ÏòÄú½éÉÜÆ߸ö×îÁ÷ÐÐµÄ IDE¡£
ʲôÊÇ IDE£¿
¼ò¶øÑÔÖ®£¬IDE Ϊ±àÂ빤×÷ÌṩÁËһվʽ·þÎñ¡£IDE °üÀ¨Ò»¸ö±à¼Æ÷£¬Ôڴ˱à¼Æ÷ÄÚ¿ÉÒԱ༴úÂë¡¢µ÷ÊÔ´úÂë¡¢ÔÚä¯ÀÀÆ÷£¨Í¨³£ÊÇǶÈëʽµÄ£©Öв鿴´úÂëºÍÇ©ÈëºÍÇ©³öÔ´Âë¿ØÖÆ¡£ÎªÁËÖ§³ÖÕâЩ¹¦ÄÜ£¬IDE ÓµÓÐÒ»Ì×ÔÚ»ù±¾±à¼Æ÷£¨±ÈÈç¼Çʱ¾»òÕß Vim£©ÖÐËùÕÒ²»µ½µÄÌØÐÔ¡£µ±È»£¬Äú¿ÉÒÔͨ¹ýÀ©Õ¹±à¼Æ÷À´ÊµÏÖÕâЩ¹¦ÄÜ£¬µ«ÊÇ IDE ÔÚÒ»¸ö¾«¼òÈí¼þ°üÖÐÄÒÀ¨ÁËËùÓÐÕâЩ¹¦ÄÜ —— ²¢¶¼ÒÑÔ¤ÅäÖãº
ÏîÄ¿ IDE µÄÒ»¸ö¹Ø¼üÌØÐÔÊÇËü°ÑÒ»¸ö PHP Ó¦ÓóÌÐò¿´×÷ÊÇÒ ......
[ת×Ô]http://hi.baidu.com/heiday/blog/item/ce3217006b10c0df277fb5b1.html
phpº¯Êý getenv()Óëputenv()ºÍ$_SERVER
2009-07-09 15:03
getenv È¡µÃϵͳµÄ»·¾³±äÁ¿
Óï·¨£ºstring getenv(string varname);-----------²ÎÊývarnameÓ¦¸ÃÊÇ$_SERVER£¨·þÎñÆ÷³¬¼¶È«¾Ö±äÁ¿Êý×飩ÖÐÔ¤¶¨µÄÔªËØË÷ÒýÃû¡¢»òÕßÊÇÓÃputenv("new=very new")¶¨ÒåÒ»ÏÂnewΪ»·¾³±äÁ¿£¬ËùÒÔnew×÷Ϊ²ÎÊý½«µÃÖµvery new
·µ»ØÖµ£º×Ö·û´®
º¯ÊýÖÖÀࣺPHP ϵͳ¹¦ÄÜ
ÄÚÈÝ˵Ã÷£ºÈôÕýÈ·È¡µÃ»·¾³±äÁ¿ varname£¬Ôò·µ»Ø±äÁ¿Öµ¡£Ê§°ÜÔò·µ»Ø false¡£
ʹÓ÷¶Àý
ÏÂÀý¿ÉÒÔÈ¡µÃÓû§ä¯ÀÀÆ÷ËùÔÚ»úÆ÷µÄÍøÖ·
<?
$ip = getenv(“REMOTE_ADDR”);
?>
$_SERVERÊÇ·þÎñÆ÷³¬¼¶È«¾Ö±äÁ¿Êý×é ÓÃ$_SERVER['REMOTE_ADDR']ͬÑù¿ÉÒÔ»ñÈ¡µ½¿Í»§¶ËµÄIPµØÖ·¡£
¶þÕßµÄÇø±ðÔÚÓÚ£¬getenv²»Ö§³ÖIISµÄisapi·½Ê½ÔËÐеÄphp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
putenv ÅäÖÃϵͳ»·¾³±äÁ¿
PHP putenv()Óï·¨£ºvoid putenv(string setting);
·µ»ØÖµ£ºÎÞ
º¯ÊýÖÖÀࣺPHP ϵͳ¹¦ÄÜ
ÄÚÈÝ˵Ã÷£º±¾º¯ÊýÓÃÀ´ÅäÖÃϵͳ»·¾³±äÁ¿¡£
ʹÓ÷¶Àý£º
ÅäÖà Oracle Êý¾Ý¿âÐ ......
ÔÚÌá¼°°²È«ÐÔÎÊÌâʱ£¬ÐèҪעÒ⣬³ýÁËʵ¼ÊµÄƽ̨ºÍ²Ù×÷ϵͳ°²È«ÐÔÎÊÌâÖ®Í⣬Äú»¹ÐèҪȷ±£±àд°²È«µÄÓ¦ÓóÌÐò¡£ÔÚ±àд PHP Ó¦ÓóÌÐòʱ£¬ÇëÓ¦ÓÃÏÂÃæµÄÆ߸öÏ°¹ßÒÔÈ·±£Ó¦ÓóÌÐò¾ßÓÐ×îºÃµÄ°²È«ÐÔ£º
ÑéÖ¤ÊäÈë
±£»¤Îļþϵͳ
±£»¤Êý¾Ý¿â
±£»¤»á»°Êý¾Ý
±£»¤¿çÕ¾µã½Å±¾£¨Cross-site scripting£¬XSS£©Â©¶´
¼ìÑé±íµ¥ post
Õë¶Ô¿çÕ¾µãÇëÇóαÔ죨Cross-Site Request Forgeries£¬CSRF£©½øÐб£»¤
ÑéÖ¤ÊäÈë
ÔÚÌá¼°°²È«ÐÔÎÊÌâʱ£¬ÑéÖ¤Êý¾ÝÊÇÄú¿ÉÄܲÉÓõÄ×îÖØÒªµÄÏ°¹ß¡£¶øÔÚÌá¼°ÊäÈëʱ£¬Ê®·Ö¼òµ¥£º²»ÒªÏàÐÅÓû§¡£ÄúµÄÓû§¿ÉÄÜÊ®·ÖÓÅÐ㣬²¢ÇÒ´ó¶àÊýÓû§¿ÉÄÜÍêÈ«°´ÕÕÆÚÍûÀ´Ê¹ÓÃÓ¦ÓóÌÐò¡£µ«ÊÇ£¬Ö»ÒªÌṩÁËÊäÈëµÄ»ú»á£¬Ò²¾Í¼«ÓпÉÄÜ´æÔڷdz£Ôã¸âµÄÊäÈë¡£×÷ΪһÃûÓ¦ÓóÌÐò¿ª·¢ÈËÔ±£¬Äú±ØÐë×èÖ¹Ó¦ÓóÌÐò½ÓÊÜ´íÎóµÄÊäÈë¡£×Ðϸ¿¼ÂÇÓû§ÊäÈëµÄλÖü°ÕýÈ·Öµ½«Ê¹Äú¿ÉÒÔ¹¹½¨Ò»¸ö½¡×³¡¢°²È«µÄÓ¦ÓóÌÐò¡£
ËäÈ»ºóÎĽ«½éÉÜÎļþϵͳÓëÊý¾Ý¿â½»»¥£¬µ«ÊÇÏÂÃæÁгöÁËÊÊÓÃÓÚ¸÷ÖÖÑéÖ¤µÄÒ»°ãÑéÖ¤Ìáʾ£º
ʹÓð×Ãûµ¥ÖеÄÖµ
ʼÖÕÖØÐÂÑéÖ¤ÓÐÏÞµÄÑ¡Ïî
ʹÓÃÄÚÖÃתÒ庯Êý
ÑéÖ¤ÕýÈ·µÄÊý¾ÝÀàÐÍ£¨ÈçÊý×Ö£©
°×Ãûµ¥ÖеÄÖµ£¨White-listed value£©ÊÇÕýÈ·µÄÖµ£¬ÓëÎÞЧµÄºÚÃûµ¥Öµ£¨Black-listed value£©Ïà¶Ô¡£Á½ ......
¡¡¡¡PHP ÖУ¬Êý¾Ýͨ³£¶¼ÊÇ´æ´¢ÔÚMySQLÊý¾Ý¿âµ±Öеġ£µ«ÊÇÓÐЩʱºò£¬ÎÒÃÇ»¹ÊÇÐèҪʹÓÃPHP¶ÁдһЩ±¾µØÎļþ¡£±ÈÈçÉú³É¾²Ì¬Ò³Ãæ»òÕßÊý¾ÝµÄ±¾µØ»º´æ¡£
¡¡¡¡PHP5+ ÌṩÁËÒ»ÖÖ·½·¨ file_put_contents(file,data,mode,context)£¬Ëü½«Ò»¸ö×Ö·û´®Ð´ÈëÎļþ£¬·µ»ØдÈëµ½ÎļþÄÚÊý¾ÝµÄ×Ö½ÚÊý¡£ºÍÒÀ´Îµ÷Óà fopen()£¬fwrite() ÒÔ¼° fclose() ¹¦ÄÜÒ»Ñù£¬·½±ãÁËʹÓá£
²ÎÊýÃèÊö
file
±ØÐè¡£¹æ¶¨ÒªÐ´ÈëÊý¾ÝµÄÎļþ¡£Èç¹ûÎļþ²»´æÔÚ£¬Ôò´´½¨Ò»¸öÐÂÎļþ¡£
data
¿ÉÑ¡¡£¹æ¶¨ÒªÐ´ÈëÎļþµÄÊý¾Ý¡£¿ÉÒÔÊÇ×Ö·û´®¡¢Êý×é»òÊý¾ÝÁ÷¡£
mode
¿ÉÑ¡¡£¹æ¶¨ÈçºÎ´ò¿ª/дÈëÎļþ¡£¿ÉÄܵÄÖµ£º
FILE_USE_INCLUDE_PATH£ºÊ¹Óðüº¬Ä¿Â¼¶¨Òå
FILE_APPEND£º×·¼Ó£¬·ÀÖ¹±»¸ÄдÔÎļþÄÚÈÝ
LOCK_EX£º¶ÀÕ¼Ëø¶¨·½Ê½
Èç¹û²ÎÊýÊ¡ÂÔÔòĬÈÏΪ¸ÄдÎļþ·½Ê½
context
¿ÉÑ¡¡£¹æ¶¨Îļþ¾ä±úµÄ»·¾³¡£
context ÊÇÒ»Ì׿ÉÒÔÐÞ¸ÄÁ÷µÄÐÐΪµÄÑ¡Ïî¡£
¡¡¡¡PHP ²Î¿¼ÊéÖУ¬Ö¸Ã÷Á˶ÁÎļþ·½·¨ file_get_contents µÄ¿ÉÓð汾 (PHP 4 >= 4.3.0, PHP 5)£¬PHP 5 ½øÐÐÁËÀ©Õ¹£¬ 5.0.0 Ìí¼ÓÁË¶Ô context µÄÖ§³Ö¡£ 5.1.0 Ìí¼ÓÁË offset ºÍ maxlen ²ÎÊý¡£
¡¡¡¡¾ßÌåÓ÷¨£ºfile_get_contents ( file , flags , context , offset , ......
ÅäÖÃspawn-fcgiÆô¶¯
²ÎÊý˵Ã÷:
-f Ö¸¶¨µ÷ÓÃFastCGIµÄ½ø³ÌµÄÖ´ÐгÌÐòλÖ㬸ù¾ÝϵͳÉÏËù×°µÄPHPµÄÇé¿ö¾ßÌåÉèÖÃ
-a °ó¶¨µ½µØÖ·addr
-p °ó¶¨µ½¶Ë¿Úport
-s °ó¶¨µ½unix socketµÄ·¾¶path
-C Ö¸¶¨²úÉúµÄFastCGIµÄ½ø³ÌÊý£¬Ä¬ÈÏΪ5£¨½öÓÃÓÚPHP£©
-P Ö¸¶¨²úÉúµÄ½ø³ÌµÄPIDÎļþ·¾¶
-uºÍ-g FastCGIʹÓÃʲôÉí·Ý£¨-u Óû§ -g Óû§×飩ÔËÐУ¬UbuntuÏ¿ÉÒÔʹÓÃwww-data£¬ÆäËûµÄ¸ù¾ÝÇé¿öÅäÖã¬Èçnobody¡¢apacheµÈ
Æô¶¯spawn-fcgi
#/usr/local/sbin/spawn-fcgi -p 10080 -C 25 -u nobody -f /usr/local/php/bin/php-cgi
spawn-fcgi -a 127.0.0.1 -p 31000 -u nobody -f /usr/local/php/bin/php-cgi -C 25
spawn-fcgi -a 127.0.0.1 -p 32000 -u nobody -f /usr/local/php/bin/php-cgi -C 25
spawn-fcgi -a 127.0.0.1 -p 33000 -u nobody -f /usr/local/php/bin/php-cgi -C 25
spawn-fcgi -a 127.0.0.1 -p 34000 -u nobody -f /usr/local/php/bin/php-cgi -C 25
spawn-fcgi -a 127.0.0.1 -p 35000 -u nobody -f /usr/local/php/bin/php-cgi -C 25
netstat -n|grep 31000
±¾ÀýÖУ¬ÎÒÃÇ¿ªÆô10080×öΪ¼àÌý¶Ë¿Ú£¬´ò¿ª25¸öphp-cgi½ø ......