PHPÔ´´úÂë¼òµ¥·ÖÎö
PHPÔ´´úÂë¼òµ¥·ÖÎö
1. Ŀ¼½á¹¹
1. build ºÍ±àÒëÓйصÄĿ¼¡£
2. ext À©Õ¹¿â´úÂ룬ÀýÈç Mysql¡¢zlib¡¢iconv µÈÎÒÃÇÊìϤµÄÀ©Õ¹¿â¡£
3. main Ö÷Ŀ¼¡£
4. sapi ºÍ¸÷ÖÖ·þÎñÆ÷µÄ½Ó¿Úµ÷Óã¬ÀýÈçapache¡¢IISµÈ£¬Ò²°üº¬Ò»°ãµÄfastcgi¡¢cgiµÈ¡£
5. win32 ºÍ Windows ϱàÒë PHP ÓйصĽű¾¡£ÓÃÁË WSH¡£
6. Zend Îļþ¼ÐºËÐĵÄÒýÇæ¡£
2. PHPʹÓÃLexºÍYacc¶ÔÓï·¨½øÐнâÎö¡£
ÔÚ Zend Ŀ¼ÏÂÓÐÁ½¸öÎļþ zend_language_parser.y Óë zend_language_scanner.l ËûÃÇÊÇLexºÍYaccµÄ½Å±¾Îļþ£¬Í¨¹ýÕâÁ½¸ö½Å±¾ÎļþÉú³É¶ÔÓ¦µÄ.cºÍ.hÎļþ£¬Êµ¼ÊÉÏÕâÔÚ linux Ï·dz£ÆÕ±é£¬gcc ҲʹÓÃËüÃDzúÉúÓïÊ÷¡£
3. PHPÈçºÎʹÓÃMysql£¿
ext Ŀ¼ÏÂÓÐÒ»¸ö mysql ×ÓĿ¼£¬Õâ¸öĿ¼ÖеÄphp_mysql.c ºÍ php_mysql.h ¸ºÔð PHP Óë Mysql ²Ù×÷¡£Ê¹ÓÃÁË Mysql ÊÖ²áÖÐµÄ C ÓïÑÔ API¡£
4. °²È«Ä£Ê½£¿
main Îļþ¼ÐϵÄsafe_mode.h ºÍ safe_mode.c Îļþ¸ºÔðPHPµÄ°²È«Ä£Ê½¡£
5. ÄÇЩÊÇ PHP µÄ±ê×¼º¯Êý£¬ÄÇЩÊÇÀ©Õ¹º¯Êý£¿
ext Ŀ¼ÏÂÓ¢ÎÄÒâ˼ÊÇÀ©Õ¹£¬¶øÔÚ ext Ï»¹ÊÇÓÐÒ»¸ö standard Îļþ¼Ð£¬´æ·Å×Å PHP Öеıê×¼º¯Êý£¬ÀýÈç explode Õâ¸öº¯ÊýÊÇÔÚ ./ext/standard/string.c ϶¨ÒåµÄ¡£
6. PHP Ô´´úÂëÖеÄPHP_FUNCTION(xx) ºê¡£
Õâ¸öºêÓÃÀ´¼ìÑéÒ»¸öº¯ÊýÃû³ÆÊÇ·ñºÏ·¨¡£ºÏ·¨µÄº¯ÊýÃû³ÆÓ¦¸ÃÓÉСд×Öĸ¼°Ï»®Ïß×é³É¡£
7. ÄÇЩº¯Êý¼¯ÊDZê×¼µÄ£¿
ͨ¹ý ./ext/standard/ Ŀ¼ÎÒÃÇ¿ÉÒÔ¿´µ½ÒÔϳ£Óú¯Êý¼¯ÊDZê×¼µÄ¡£×Ö·û´®º¯Êý¼¯¡¢Êý×麯Êý¼¯¡¢Îļþ¼°Ä¿Â¼²Ù×÷º¯Êý¼¯¡¢md5Ëã·¨µÈ¡£
8. һЩº¯ÊýµÄʵÏÖ¹ý³Ì
1. fsockopen, pfsockopen µÄʵÏÖ
ÕâÁ½¸öº¯ÊýµÄʵÏÖÀë²»¿ª ./ext/standard/fsock.c ÎļþÖÐµÄ php_fsockopen_stream º¯Êý¡£¾ßÌåµÄsocket¶¼ÔÚ./main/network.c ÖÐʵÏÖ¡£
9. PHP º¯Êý¼¯×¢²á¹ý³Ì
ÔÚ./main/internal_functions.c ÖÐÓÐÒ»¸öÊý×é php_builtin_extensions ĬÈÏÏÂÓÐÒÔϳÉÔ±£º
1. phpext_bcmath_ptr
2. phpext_calendar_ptr
3. phpext_com_dotnet_ptr
4. phpext_ctype_ptr
5. phpext_date_ptr
6. phpext_ftp_ptr
7. phpext_has
Ïà¹ØÎĵµ£º
1.°Ñ½âѹµÄphp-5.2.6-Win32.zipÖØÃüÃûΪphp5¡£²¢¸´ÖƵ½DÅÌĿ¼Ï¡£¼´°²×°Â·¾¶Îª D:\php5
2.ÕÒµ½phpĿ¼Ï嵀 php.ini-dist»ò php.ini.recommendedÎļþ£¬ÖØÃüÃûΪ php.ini
3.ÔÙ°ÑphpĿ¼ÏµÄphp5ts.dll,libmysql.dll¸´ÖƵ½Ä¿Â¼ c:\windows\system32Ï¡£
4.°Ñphp5\extĿ¼ÏµÄphp_gd2.dll,php_mysql.dll,php_mbstring.dllÎ ......
ÒÔÏÂÊÇÀûÓÃphpʵÏÖÖÐÎÄˮӡµÄ´úÂë¡£
<?php
Header("Content-type: image/png"); /*֪ͨä¯ÀÀÆ÷,ÒªÊä³öͼÏñ*/
$im = imagecreate(400 , 300); /*¶¨ÒåͼÏñµÄ´óС*/
$gray = Ima ......
function checkFileType($fileName){
$file = fopen($fileName, "rb");
$bin = fread($file, 2); //Ö»¶Á2×Ö½Ú
&n ......
/**********************************
APACHE
***********************************/
±à¼²ÎÊý£º
./configure" \
"--prefix=/usr/local/apache" \
"--enable-so" \
"--enable-ssl" \
"--enable-mods-shared=most" \
"--with-mpm=event" \
"--with-ssl=/usr/local/openssl" \
"--enable-cache" \
"--enable-mem- ......