مشاهده نسخه کامل
: اموزش php
masoud_razor
01-07-2008, 19:10
روش نصب PHP به همراه Apache HTTP Server را تا حد ممکن به صورت گام بهگام توضیح دهم
- نرمافزار Apache HTTP Server را از آدرس:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
پایین آورده و آنرا نصب کنید .
( در حالتیکه همهی گزینهها، پیشفرض ( Default ) هستند بدون مشکل پیش خواهید رفت. )
- نرمافزار PHP و Installer آن را هم از آدرسهای زیر Download کرده آنرا Install کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
- در شاخهای که Apache HTTP Server را نصب کردهاید، زیرشاخهای به نام \conf وجود دارد که در آن میتوانید فایل [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]که مربوط به پیکربندی این برنامه است را بیابید. با یک ویرایشگر سادهی متن میتوانید این پرونده را باز کرده و تغییردهید. برای اجرا شدن فایلها با پسوند php تغییرات زیر باید در این پرونده اعمال شوند:
1- در بخشی که ScriptAliasها معرفی شدهاند، سطر زیر را وارد میکنیم:
ScriptAlias /php4/ "c:/php/"
نکته اینکه: به جای c:/php/ باید مسیری را که PHP در آن نصب شده، وارد شود.
2- در قسمت AddType application ، سطر زیر را میآوریم:
AddType applicatin/x-[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] .php
3- در بخش Action application هم این خط اضافه میشود:
Action application/x-[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] "/php4/php.exe"
4- جلوی عبارت DocumentRoot بین علامتهای نقل قول مسیر شاخهای که میخواهید پروندههایphp را درآن ذخیره و اجرا کنید، مینویسیم.( این زیر فهرست به عنوان LocalHost ما معرفی میشود. )
- پس از اعمال این تغییرات Apache HTTP Server را، با کلیک بر روی نشانهی آن در Taskbar توسط منویی که باز میشود،Restart کنید.
حال کافیست برنامهای را که با PHP نوشتهاید، در شاخهای که در بند ۴ به آن اشاره کردم کپی کرده و برای نمایش آن در Browser در بخش آدرس تایپ کنید :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید[ProgramName].php
اگر فرصت داشته باشم در بارهی IIS و PHP هم مطلبی خواهم نوشت.
masoud_razor
09-07-2008, 22:37
روش نصب PHP بروى Windows ها
روش نصب PHP بروى windows 95/98/Me NT/2000/XP
PHP بر روى win32 بدو صورت نصب مىشود
1 - بصورت CGI executable
2 - بصورت server module SAPI
--------------------------------------------------------------------------------
1 - نصب PHP بصورت CGI executable :
نصب PHP بصورت CGI executable بسيار ساده مىباشد براى اين كار شما بايد بر روى PC خود يكى از web server هاى زير را داشته باشيد
Personal Web Server 3 and 4 or newer
Internet Information Server 3 and 4 or newer
Apache 1.3.x
Omni[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] 2.0b1 and up
Oreilly Website Pro
Xitami
Netscape Enterprise Server, iPlanet
در سايت
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید شما مىتوانيد php Installer را بر روى PC خود ذخيره كنيد
اين برنامه php را بر روى PC شما بصورت CGI executable و با پشتيبانى MySQL نصب خواهد كرد و web Server شما را بصورت automatic تنظيم خواهد كرد
--------------------------------------------------------------------------------
2 - نصب PHP بر روى win32 بصورت server module SAPI :
نصب PHP بصورت server module SAPI بر روى Apache توسط دوست عزيزمان آقاى على نادرى در قسمت مقالات بطور كامل توضيح داده شده است
و اما نصب PHP بر روى IIS :
جهت اين كار ابتدا بايد PHP را از اين آدرس Windows Binaries بر روى PC خود ذخيره كنيد
محتويات اين فايل كه بصورت zip است را در شاخهاى كه مىخواهيد php را نصب كنيد قرار دهيد c:\php خوب است
پس از اين كار فايلهاى php4ts.dll و sapi/php4isapi.dll و dlls/*.dll را در شاخه system ذخيره كنيد
c:\windows\system for Windows 9x/ME
c:\winnt\system32 for Windows NT/2000
c:\windows\system32 for Windows XP
فايل php.ini-recommended را به php.ini تغيير نام داده و در شاخه WINDOWS ذخيره كنيد
در فايل php.ini تغييرات زير را ايجاد كنيد:
شما بايد extension_dir را به شاخه extension هاى مورد نظر خود تغيير دهيد چنانچه مطابق با توضيحات پيش رفته باشيد اين مسير c:\php\extensions مىباشد
فايل browscap.ini را در
c:\windows\system\inetsrv\browscap.ini on Windows 9x/Me,
c:\winnt\system32\inetsrv\browscap.ini on NT/2000,
c:\windows\system32\inetsrv\browscap.ini on XP.
جنانجه پس از نصب PHP فايلهاى شما در شناختن variable ها مشكل داشتيد در فايل php.ini پارامتر register_globals را از off به on تغيير دهيد
سپس در IIS در قسمت
Home Directory > configuration > App Mappings :
Executable : C:\WINNT\system\php4isapi.dll
Extension : .php
را اضافه كنيد در قسمت ISAPI نيز
Filter Name : php
Executable : C:\WINNT\system\php4isapi.dll
پس از يك بار stop / start كردن IIS شما مىتوانيد PHP را بر روى PC خود اجرا كنيد
موفق باشيد
masoud_razor
09-07-2008, 22:39
نصب PHP تحت Windows به چند روش
با سلام خدمت شما دوستان و علاقهمندان طراحي و برنامهنويسي تحت Web ...
در اين مقاله من سعي دارم روش نصب ساده و مختصر مفسر زبان PHP را توضيح دهم و نوآموزان و دوستاني كه علاقهمند به آشنايي با اين زبان قدرتمند هستند به راحتي بتوانند مفسّر آنرا بر روي Web Server شخصي خود نصب كنند. در اين نسخه از مقاله به نصب PHP تحت سيستم عامل Windows خواهيم پرداخت و در نسخه بعدي روش نصب بر روي سيستم عامل Linux را توضيح خواهم داد.
ما در اين دو مقاله به نصب استاندارد PHP بر روي Web Serverهاي پيش فرض خواهيم پرداخت و براي نيل به اين منظور بر روي سيستم عامل Windows از IIS و تحت سيستم عامل Linux از Apache استفاده ميكنيم. گرچه خيلي از علاقهمندان Slackware پيشنهاد ميكنند كه حتّي بر روي سيستم عامل ويندوز از Apache استفاده شود بنده به هيچ وجه اين مسئله رو براي تازه كاران پيشنهاد نميكنم. بدون شك نميتوان از قدرت اين Server حتّي تحت سيستم عامل MS Windows چشم پوشي كرد ولي براي كاربران معمولي و همچنين طراحان حرفهاي اي كه سعي در ارتقاء Solutionهاي خود دارند استفاده كردن از استانداردها بسيار مناسبتر خواهد بود. شايد در مقاله مفصّلي درباره اين مزيتها و معايب مجالي براي صحبت بود. بنابراين در مقاله حاضر تحت سيستم عامل ويندوز به نصب PHP بر روي IIS و Personal Web Managerخواهيم پرداخت.
PHP چيست و چگونه كار ميكند؟
PHP مخفّف Hypertext Preprocessor يك زبان Scripting و Server-Side مي باشد. يك Script به كدي از برنامه ميگويند كه بصورت ابتدايي Compile نميشود و فقط در صورت فراخواني و يا درخواستي براي اجرا توسط مفسّر زبان مورد نظر ترجمه مي شود و به خروجي فرستاده مي شود. اين به اين معني ميباشد كه شما دقيقاً كد برنامه خود را در جاي مورد نياز به كار ميبريد و رابط اجرايي برنامه آنرا به مفسّر مورد نظر ارجاء ميدارد. درباره مثال ما مفسّر مذكور مفسّر PHP يا برنامه PHP.exe مي باشد و رابط اجرايي Web Server مورد نظر و در اينجا Internet Information Service (IIS) است. براي اينكه بتوانيد Scriptهاي PHP خود را اجرا كنيد نياز به نصب مفسّر PHP بر روي Web Server خود داريد. توجّه كنيد كه اين مفسّر بر روي Web Server شما نصب خواهد شد. شما ميتوانيد به PHP.exe مانند يك Plug-in يا Add-on نگاه كنيد چرا كه روش كار هر دو به يك صورت ميباشد. بعد از نصب مفسّر PHP شما قادر خواهيد بود كه از كدهاي PHP به همراه كدهاي HTML خود در صفحات Web استفاده كنيد و همچنين ميتوانيد Scriptهاي صرفاً PHP خود را به عنوان ترمينالهاي تفسير كننده داده ها و رابطهاي ورودي و خروجي بر روي سرور خود قرار دهيد. اكنون به روش نصب PHP تحت Windows توجه كنيد.
روش نصب ...
دور خيز ...
همانطور كه گفتيم شما مفسّر PHP را بر روي Web Serverخود نصب خواهيد كرد. تحت سيستم عامل Windows اعم از هستههاي 9X و يا NT شما اين قابليت را داريد كه از Web Serverهاي اختراع Microsoft يعني IIS يا Personal Web Manager استفاده كنيد. همچنين ميتوانيد از هر دوي اين نرمافزارها در كنار يكديگر استفاده نماييد. اگر هنوز Web Serverي بر روي سيستم خود نصب نكردهايد بايد قبل از شروع پروسه نصب PHP اين كار را انجام دهيد. براي نصب به CD-ROM و يا پكيج اصلي ويندوز مورد استفاده خود نياز داريد و از بخش Add/Remove Programs در Control Panel مي توانيد IIS را در قسمت Windows Components بيابيد. بعد از نصب حتماً بايد يكبار سيستم خود را Restart كنيد تا Socketها و Portهاي مورد نياز بر روي OSشما براي سرويس دهنده Implement شوند. بعد از راه اندازي مجدّد بايد از صحّت عملكرد Web Server خود اطمينان حاصل كنيد. براي اينكار در پنجرهاي از Browser خود، Internet Explorer و يا Netscape Navigator آدرس
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید و يا
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید را امتحان كنيد، اگر Browser شما صفحه خوش آمد گويي IIS را نمايش داد Web Server شما به سلامت مشغول كار است. براي دسترسي به تنظيمات IIS مي توانيد به بخش Administrative Tools در Control Panel مراجعه كنيد و از آنجا Internet Information Service Consol را اجرا نماييد. بصورت پيش فرض مسير اصلي و قابل خواندن IIS در X:\inetpub\[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] قرار دارد. شما ميتوانيد صفحات خود را در اينجا قرار دهيد و همچنين از كنسول تنظيمات IIS اين آدرس را تغيير دهيد و يا Virtual Directoryهاي ديگري به آن بيافزاييد. در ادامه به نصب PHP ميپردازيم.
مواد مورد نياز ...
PHP بصورت كاملاً رايگان و Open Source ارائه ميشود بنابراين شما بدون پرداخت هزينهاي مي توانيد هميشه با آخرين نگارش اين مفسّر Update باشيد. هنگام نوشتن اين مقاله آخرين نسخهء منتشر شده PHP 4.2.2 ميباشد كه بنده شديداً پيشنهاد مي كنم كه همين نسخه رو تهيه كنيد. شما ميتوانيد براي Download كردن بخشهاي مورد نياز از Package كامل PHP به سايت رسمي آن در آدرس
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید مراجعه كنيد. در صفحه Download لينكهاي مختلفي براي دريافت بخشهاي مختلف Package وجود دارد شما براي نصب تحت Windows نياز به پكيج Binary for Win32 داريد. دو نسخه از اين پكيج براي PHP 4.2.2 وجود خواهد داشت. اولين نسخه مفسر اصلي PHP به همراه تمامي Add-ONهاست كه در حدود 5 مگابايت حجم دارد و ديگري تنها مفسّر اصلي PHP به همراه قابليت ارتباط ذاتي با پايگاه داده MySQL است كه اين نسخه نيز حدود 1 مگابايت مي باشد. براي شروع پكيج 1 مگابايتي تمام نيازهاي شما را برآورده خواهد كرد، بايد بدانيد كه با نصب اين پكيج شما قابليت اجراي تمامي دستورات ذاتي PHP و همچنين ارتباط كامل با MySQL را داريد بنابراين اگر دليل موجّهي براي استفاده از Add-ONها نداريد به دريافت همين پكيج بسنده كنيد. توجه كنيد كه در اين قسمت دو روش نصب براي شما وجود خواهد داشت.
- نصب بصورت Automatic و استفاده از Wise Installer
- نصب بصورت دستي (Manual)
براي استفاده از حالت اوّل و نصب بصورت Automatic شما ميتوانيد از هر دو پكيج استفاده نماييد ولي اگر قصد داريد PHP را بصورت دستي و Manual نصب كنيد تنها ميتوانيد از پكيج كامل يعني پكيج 5 مگابايتي استفاده نماييد. تفاوت دو پكيج كاملاً آشكار است. شما با نصب پكيج كامل قابليتهايي مثل امكان استفاده از ISAPI و NSAPI براي امنيت هرچه بيشتر و همينطور نسخهاي از Apache API را بدست ميآوريد. نسخه كامل PHP داراي رابطهايي در استفاده بهينه از Apache 2 نيز مي باشد و علاوه بر تمامي قابليتهاي PHP كه در نسخه Installer نيز نصب خواهد شد داراي چندين Extension قابل اديت و OpenSource ديگر است كه براي كاربران حرفهاي بسيار مفيد مي باشند. امّا من پيشنهاد ميكنم اگر شما براي اوّلين بار قصد نصب PHP را داريد اقدام به دريافت Installer كنيد. اين برنامه نصب با يك Wizard ساده تمامي تنظيمات را براي شما انجام خواهد داد و به سادگي PHP را بر روي Web Server شما نصب خواهد كرد و البته بعد از نصب تمامي تنظيمات قابل تغيير خواهد بود. مزيت ديگر استفاده از اين برنامه قابليت Uninstall كردن PHP است كه در صورت بروز اشتباهي در آينده بدون تغيير در Web Server مي توانيد PHP را حذف كنيد. پكيج Installer قابليتهاي نسخه كامل PHP را ندارد ولي تمامي نيازهاي ما حتّي براي يك Solution متوسّط را برآورده ميكند. با نصب PHP توسّط Windows Installer شما مي توانيد تمامي دستورات PHP را استفاده كنيد و همچنين يك رابط Built-in و ذاتي از MySQL و PHP در اختيار داشته باشيد. مفسّر PHP در نسخه چهارّم براي پشتيباني از پايگاه داده MySQL نياز به هيچ Extensionي نخواهد داشت . در نسخههاي قبلي شما براي استفاده از MySQL ملزم بوديد كه يك Extension به نام php_mysql.dll را به پكيج خود بيافزاييد ولي با نصب PHP 4 به اين كار نيازي نيست. شما به چيزي بيش از اين احتياج نخواهيد داشت. نصب PHP با اين روش يك نسخه قابل اجرا از PHP.exe را كه با فرم بندي CGI توليد شده در اختيار شما قرار خواهد داد كه دقيقاً همين سرور در پكيج كامل نيز ضميمه شده است. در ادامه روش نصب با هر دو پكيج را توضيح خواهم داد.
روش اوّل : نصب Automatic با استفاده از Wise Installer ...
در صفحه Download بر روي سايت رسمي در آدرس
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید مي توانيد در قسمت Windows Binaries دو پكيج مذكور را بيابيد و از روي Mirror مورد نظر آنرا دريافت كنيد. پيشنهاد ميكنم براي Mirror از سرورهاي مالزي يا سنگاپور استفاده كنيد، ساير Backboneهاي ذكر شده آسيايي از رابطهاي اروپايي منشاء مي گيرند و سرعت و اطمينان لازم را ندارند. شما با دريافت Installer ويندوز فايل اجرايي php-4.2.2-installer.exe را دراختيار خواهيد داشت. با اجراي اين برنامه پروسه نصب PHP آغاز خواهد شد.
در طول نصب تنها از شما خواسته ميشود كه روش نصب Standard و يا Advanced را انتخاب نماييد. تفاوتي نخواهد كرد كه شما كدام روش را انتخاب نماييد ولي پيشنهاد ميشود كه از روش Standard براي دريافت تمامي حالات پيش فرض استفاده نماييد. بعد از انتخاب روش Standard از شما محل نصب مفسر اصلي پرسيده خواهد شد. باز هم هيچ تفاوتي نخواهد كرد كه اين محل كجاي سيستم شما باشد ولي توجّه كنيد كه محل هدف براي نصب مفسر بايد داخل شبكه خود شما قرار داشته باشد. اگر كامپيوتر شما جزو شبكه نيست به راحتي هر نقطهاي را كه مايل هستيد انتخاب نماييد.
اگر پروسه نصب بدون هيچ اشكالي پايان يابد اكنون Web Server شما قادر به اجراي Scriptهاي PHP ميباشد. برنامه نصب تمامي تنظيمات IIS و ساير تنظيمات مورد نياز را انجام خواهد داد. اكنون شما تنها نياز به چند تست ساده داريد. ابتدا يادآور شوم كه تمامي تنظيمات مفسر اصلي PHP در فايلي به نام PHP.ini قرار دارد. شما با Edit كردن اين فايل ميتوانيد تنظيمات اصلي مفسر را تغيير دهيد. بعد از نصب PHP تحت سيستم عامل Windows اين فايل در شاخه اصلي سيستم يعني شاخه Windows و يا WINNT قرار خواهد گرفت. (%systemroot%). اين فايل را در محل ذكر شده بيابيد و با يك Editor استاندارد فايلهاي Text آنرا باز كنيد. در اينجا براي هر قسمت توضيحات لازم وجود دارد امّا شما تنها نياز به چك كردن چند قسمت جزئي داريد. در ابتدا مقدار زير را بيابيد و آنرا دقيقاً مانند اين قسمت تغيير دهيد.
magic_quotes_gpc = on
سپس با به خاطر آوردن محلي كه براي نصب مفسّر PHP در طول برنامه نصب انتخاب كرديد مقدار زير را هم چك كنيد. اين مقدار محلّ فايل PHP.exe را مشخص خواهد كرد كه بصورت پيش فرض C:\PHP قرار داشت. اگر شما اين مقدار را تغيير نداده باشيد بايد اين مقدار دقيقاً مانند زير باشد.
extension_dir = "c:\php"
توجّه كنيد كه محل نصب مفسر PHP با استفاده از Installer در بخش Pathهاي پيش فرض ويندوز قرار خواهد گرفت بنابراين محل مشخص شده در extension_dir مي تواند بصورت مقدار زير نيز قرار داشته باشد.
extension_dir = ./
اگر هنوز اطمينان نداريد كه مشكلي در نصب PHP وجود داشته باشد اين مقدار را تغيير ندهيد گرچه تغيير آن به Path كامل نيز هيچ اشكالي در اجراي مفسر بوجود نخواهد آورد ولي استفاده از تنظيمات پيش فرض براي مراجعه بعدي مفيدتر خواهد بود.
مقدار بعدي كه بايد در فايل PHP.ini چك شود محل شاخه اصلي مراجعه Web Server شماست. اگر شما IIS را بصورت پيش فرض نصب كرده باشيد و تغييري در Pathهاي Server نداده باشيد اين آدرس ..\inetpub\[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ميباشد و در اينصورت مقدار مورد نظر بايد عيناً شبيه مقدار زير باشد.
doc_root = "c:\inetpub\[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]"
اين مقدار كه در واقع مهمترين بيشترين مشكل را براي كاربران در نصب PHP بوجود ميآورد بسيار مهم ميباشد. توجه كنيد كه مفسّر PHP بايد بر روي اين دايركتوري اصلي شما دسترسي Write داشته باشد. اگر شما از NTFS براي دايركتوري اصلي Web Server خود استفاده ميكنيد بايد حتماً به اين دقّت كنيد كه Authentication بر روي Web Server و همينطور File System را براي سيستم آزاد بگذاريد. در اين صورت مشكلي بوجود نخواهد آمد. همچنين براي قرار دادن Permissionها توجّه كنيد كه Web Server مورد نظر توانايي Execute بر روي دايركتورياي كه حاوي فايل PHP.exe است را داشته باشد.
اصولاً تفاوت چنداني بين نصب نسخههاي جديد PHP و نسخههاي قديميتر وجود ندارد ولي در صورتيكه شما از PHP 4 و جديدتر استفاده ميكنيد نياز داريد كه مقدار زير را نيز در فايل PHP.ini تغيير دهيد.
register_globals = on
تغيير اين مقدار به on به شما اين امكان را ميدهد كه از متغيّرهاي خود بصورت پايدار در بين فرمهاي مختلف استفاده كنيد و در فرستادن متغييرها چه با $[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] و چه بصورت $Variables مشكلي نداشته باشيد.
اكنون تنها كاري كه باقي مانده است Restart كردن Web Server مورد نظر است. اين كار را ميتوانيد با باز كردن كنسول Internet Information Service (IIS) و Right-Click بر روي شاخه اصلي (كه همنام كامپيوتر شماست) و انتخاب گزينه Restart انجام دهيد.
اگر تمام مراحل را با دقّت اينجا پيش رفته باشيد نبايد مشكلي با اجراي Scriptهاي PHP داشته باشيد. براي آزمايش كردن Web Server خود كد زير را در فايلي با پسوند *.php كپي كنيد و آنرا در دايركتوري اصلي Web Server كپي نماييد. اگر فرض كنيم شما نام فايل را phpinfo.php قرار داده باشيد با بازكردن Browser و همچنين تايپ
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید بايد جدولي پر از خصوصيات Server و همچنين تعدادي از متغيّرهاي اصلي صفحات را مشاهده كنيد.
خب ... تبريك ميگم، شما موفّق شديد مفسر زبان PHP را بر روي Web Server خود نصب كنيد و يك Solution بسيار مناسب را براي يادگيري هرچه عميقتر اين زبان كه اعجابي در تكنولوژيهاي Scripting است ايجاد كنيد. شما اكنون مفسر زبان PHP را بصورت كامل در اختيار داريد، اين مفسّر به شما اجازه ميدهد كه از Extensionهايي كه هر چند وقت يكبار براي ضميمه شدن و هماهنگ كردن شما با نيازهايتان منتظر ميشود استفاده كنيد. از اين لحاظ ميتوان PHP را يك زبان كاملاً Expandable دانست. در ادامه قصد داريم به روش دوّم نصب PHP تحت ويندوز بپردازيم. از بخش اوّل تنها اين نكته باقي مانده كه شما بعد از نصب PHP توسط Installer قادر خواهيد بود كه از Extensionهاي موجود در پكيج كامل PHP مانند php_ldap.dll و خيلي نمونههاي ديگر استفاده كنيد. بنابراين براي يك نصب كامل و بدون نقص پكيج كامل PHP را نيز دريافت كنيد تا در صورت نياز به Extension خاصي درآينده با مشكلي برخورد نكنيد.
روش دوّم : نصب بصورت دستي و Manual
براي نصب PHP بصورت Manual دو روش اصلي وجود خواهد داشت. روش اوّل استفاده كردن از برنامه CGI و فايل PHP.exe است كه در پكيج اصلي ضميمه شده و روش دوم استفاده از SAPI Moduleهاست. نصب بصورت مدول SAPI از نسخه 4.1 به بعد بهينهسازي شده است و در نسخههاي قبلي از PHP 4 به همراه خطاهاي آشكاري اجرا خواهد شد و البته در نسخههاي قبل از 4 نيز اصلاً موجود نميباشد. براي استفاده از حالت نصب SAPI بايد از پشتيباني Web Server خود اطمينان حاصل كنيد. نسخههاي جديد Windows به همراه نسخههاي جديد Web Serverها مانند IIS 4 و IIS 5 از اين روش نصب پشتيباني ميكنند. مراحل زير را براي هر دوروش نصب بكار ببنديد.
- محتواي پكيج دريافتي از سايت رسمي PHP را بر روي فهرستي خارج از فهرستهاي سيستم باز كنيد. c:\php جاي مناسبي براي اين كار به نظر ميرسد. توجه كنيد كه اگر در هنگام UnZIP كردن پكيج فايلهاي را به همراه Pathپيش فرض آنها كپي كنيد دايركتوريهاي مختلفي در c:\php خواهيد ديد. از جمله Dlls، Extensions، Sapi و غيره. شما در ادامه نياز داريد كه جاي برخي از اين فايلها را تغيير دهيد بنابراين تفاوتي نخواهد كرد كه دقيقاً همين Structure را براي فايلهاي داخل پكيج بكار ببنديد. ما فرض ميكنيم كه شما پكيج اصلي را با در نظر گرفتن Pathهاي پيش فرض باز كردهايد.
- در مرحله دوّم شما بايد روش نص بخود را مشخّص كنيد. در صورتي كه مايل به نصب PHP بصورت يك Module بر روي SAPI و يا Apache هستيد با توجه كنيد كه فايلهاي DLL مورد نظر شما در دايركتوري sapi قرار گرفته اند و اگر مايل به استفاده از نسخه CGI ميباشيد، فايل php.exe را در ثسمت اصلي خواهيد يافت. فايل php4ts.dll در همه موارد نصب مورد نياز ميباشد همچنين توجّه كنيد كه اگر مايل به نصب Extension خاصي هستيد بايد DLLهاي مربوط به آنرا نيز در نظر بگيريد. بعد از مشخّص كردن بخشهاي مختلف مورد نيازتان فايلهاي مورد نظر را در يكي از شاخههاي Path ويندوز كپي كنيد. دايركتوري اصلي ويندوز هدف مناسبي براي اين كار ميباشد. توجّه كنيد كه همه فايلها و DLLها بايد در شاخهاي قرار گرفته باشند كه فايل اصلي PHP.exe در آنجا وجود دارد. شما قادر خواهيد بود اين شاخه را در هر كجا كه مايل بوديد قرار دهيد ولي پيشنهاد ميشود كه براي حصول اطمينان يك نسخه را نيز بر روي Pathهاي ويندوز كپي كنيد.
- مرحله بعدي كپي كردن DLL اصلي PHP مي باشد كه بايد در دايركتوري سيستم ويندوز قرار گيرد اين دايركتوري در Windowsهاي 9X و ME در X:\Windows\System، در Windowsهاي 2000 و NT در X:\WINNT\System32 و در Windows XP در X:\Windows\System32 ميباشد. DLL اصلي PHP به نام php4ts.dll بايد با توجه به سيستم عامل مورد استفاده در دايركتوري سيستم كپي شود. اگر اين فايل از ابتدا بر روي سيستم شما موجود بود آنرا Overwrite كنيد و همچنين هر يك از DLL هاي موجود در شاخه Dlls نيز اگر در هنگام كپي كردن معادلي بر روي كامپيوتر شما داشت با خيال راحت آنها را نيز Overwrite كنيد.
- آخرين بخش براي كپي كردن فايل ini تنظيمات PHP ميباشد. دو نسخه از اين فايل بر روي پكيج اصلي موجود است يكي به نام php.ini-dist و ديگري به نام php.ini-optimized. شما قادر خواهيد بود با هر دوي اين فايلها يك سرور كامل و مناسب داشته باشيد ولي استفاده از نسخه Optimized به شما كمك خواهد كرد كه از تنظيمات پيش فرض براي داشتن بهترين امنيت و بالاترين ضريب اطمينان استفاده كنيد. من پيشنهاد ميكنم كه از همين فايل استفاده كنيد. اين فايل را به شاخه Windows بر روي سيستم خود كپي كنيد و نام آنرا به php.ini تغيير دهيد. دايركتوري Windows براي ويندوزهاي 9X، ME و XP X:\Windows و براي ويندوزهاي NT و 2000 ،X:\WINNT ميباشد.
- بعد از بخش كپي كردن فايلها شما بايد فايل php.ini را Edit كنيد تابا چند تنظيم ساده php را بيشتر با سيستمتان آشنا كنيد. در بخش اولي مقدار extension_dir را به Pathي كه بر روي آن فايلهاي DLL و بخشهاي اصلي را قرار دادهايد تغيير دهيد.
- سپس مقدار doc_root را به آدرس دايركتوري اصلي Web Server خود بصور مثال c:\inetpub\[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] تغيير دهيد.
- در بخش آخر شما ميتوانيد فايل X:\Windows\System32\Inetsrv\browscap.ini را با توجه به نيازتان تغيير دهيد. يك نسخه كامل از اين فايل نيز در Package دريافتي شما موجود ميباشد. براي نصب PHP بصورت SAPI Module نيز شما بايد به كنسول IIS مراجعه كنيد و يك Application Mapping بصورت Executable به سرور خود بيافزاييد. اين Mapping بايد به فايل php4isapi.dll اشاره كند. ساير بخشها نيز از اين قسمت به بعد مانند نصب خودكار براي CGI خواهد بود.
اميدوارم مشكلي با نصب PHP با اين روش نداشته باشيد. سعي خواهم كرد كه درباره نصب PHP بر روي Linux و همچنين Apache Web Server نيز مقالههايي بنويسم. قصدم اين بود كه يك راهنماي كامل براي نصب PHP تحت ويندوز و IIS تهيه كنم و براي رسيدن به اين هدف از شما تقاضا دارم كه اگر اشكالي در روش نصب ميبينيد و يا مطلبي براي تكميل آن در آختيار داريد آنرا در اختيار بنده قرار بدهيد تا به اين مقاله بيافزايم. همچنين اگر مشكلي با نصب PHP داشتيد ميتوانيد از انجمن سايت Iranphp.net استفاده كنيد.
موفّق باشيد
masoud_razor
09-07-2008, 22:42
فايل پيکربندي PHP
قبل از شروع مطالب نگاهي اجمالي به ويژگيهاي فايل پيکربندي PHP منطقي به نظر مي رسد. نام اين فايل php.ini مي باشد و به دلايلي از ساختار کلي فايلهاي ini که بيشتر در برنامه هاي کاربردي ويندوز استفاده مي شود، پيروي مي کند. اين فايل متني به صورت ASCII مي باشد که به بخشهايي (session) تقسيم مي شود. هر بخش متغيرهايي را که مربوط به آن بخش مي شوند، در بر مي گيرد. هر بخش چيزي شبيه زير مي باشد:
[MySection]
variable=\"value\"
anothervariable=\"anothervalue\"
نام بخش در يک جفت براکت"[]" در بالا قرار مي گيرد. و زير آن در هر سطر يک متغير با مقدارش قرار مي گيرد. متغيرها به حروف حساس (case sensitive) هستند و نمي توانند شامل فاصله (space) باشند، در حالي که مقادير متناظر آنها مي توانند اعداد، رشته کاراکتري (string) و يا Boolean باشند.
سمي کالن ";" در ابتداي هر سطر به عنوان نشانگر درج توضيحات (comment) مي باشد. اين راهي ساده براي فعال يا غيرفعال کردن ويژگيهاي PHP مي باشد، به جاي حذف کردن يک سطر مي توانيد به اين روش آن را به توضيح تبديل کرده که در پردازش فايل ها شرکت نخواهد کرد. در صورتي که فکر مي کنيد ممکن است بعد ها بخواهيد از ويژگي که اکنون به کارتان نمي آيد، استفاده کنيد بهتر است آن را پاک نکنيد.
براي اينکه PHP بتواند فايل php.ini را تشخيص بدهد بايد آن را در دايرکتوري جاري، دايرکتوري که در متغير $PHPRC تعريف شده، يا دايرکتوري که هنگام کامپايل مشخص شده است(براي ويندوز اين همان دايرکتوري اصلي PHP است) نگهداريد.
بعد از اينکه شما تغييراتي در فايل php.ini داديد براي آنکه تغييرات اعمال شوند بايد سرور خود را مجددا راه اندازي نماييد (سرور را restart کنيد). البته فرض بر اين است که شما قبلا در حال استفاده PHP بر سرور خود بوده ايد. براي استفاده هاي command-line از PHP فايل پيکربندي php.ini در هرباري که برنامه PHP احضار مي شود خوانده و چک مي شود.
تنظيم ويژگيهاي مفسر
اولين مرحله در اين مقاله از مهمترين گامهاي آن مي باشد، ويژگيهايي که به مفسر زبان PHP مربوط مي شود. اولين مورد در اينجا engine variable مي باشد که چک مي کند که PHP engine بايد فعال "on" يا غير فعال "off" باشد. Off کردن اين متغير به معني اين است که کدهاي PHP توسط سرور تفسير نشوند.معمولاً نيازي به اين تغيير حس نمي شود، پس اين متغير را به صورت on رها کنيد.
engine=On
متغير short_open_tag کنترل مي کند که آيا مفسر بايد تگهاي کوتاه را همانند تگ استاندارد تشخيص دهد يا نه.در صورتي که تشخيص مي دهيد اين نمونه تگها باعث ناسازگاري با ديگر زبانها مي شوند يا اينکه تصميم به استفاده از قوانين syntax مختص PHP داريد مي توانيد آن را off کنيد.
short_open_tag = On
معمولاً session, cookie و اطلاعات HTTP header در يک اسکريپت PHP بايد قبل از توليد هرگونه خروجي توسط آن اسکريپت فرستاده شوند. در صورتي که اين در برنامه شما امکان پذير نيست مي توانيد هر چه را که PHP به نام output buffering مي شناسد، توسط متغيرهاي output_buffering فعال کنيد.
با on بودن output buffering، زبان PHP خروجي اسکريپت شما را در يک بافر مخصوص نگه مي دارد و هنگامي آنها را مي فرستد که به طور مشخص به آن دستور داده شود. اين به شما امکان مي دهد که cookieها يا اطلاعات HTTP header را از وسط يا انتهاي کد اسکريپت خود بفرستيد. هرچند اين مي تواند کارآيي را در حاشيه کاهش دهد.
output_buffering = Off
شما مي توانيد با يک عدد به عنوان مقدار براي متغير output_buffering اندازه بافر را تعيين کنيد.
output_buffering = 2048
هنگامي که PHP شروع به کار مي کند يک پيام حاوي شماره نسخه خود به هدر استاندارد سرور مي افزايد.براي غيرفعال کردن آن مي توانيد متغير expose_PHP را off کنيد.اين مي تواند مفيد باشد، مثلا اگر بخواهيد امکانات وب سرور خود را از ديد هکرها پنهان کنيد.
expose_PHP = On
تنظيم مسير جستجوي
شما مي توانيد مسير جستجويي را براي PHP با تنظيم متغير include_patch که ليستي از مسيرها را مي پذيرد، مشخص کنيد. PHP هنگامي که با فايلي که مسير آن مشخص نشده است ، مواجه مي شود به طور اتوماتيک اين مسيرها را چک مي کند.
اگر شما کتابخانه اي از توابع يا مجموعه اي از کلاسها داريد که زياد از آنها استفاده مي کنيد مي توانيد دايرکتوري موقعيت آنها را در اين متغير قرار دهيد. همچنين اين متغير مکان مناسبي براي اضافه کردن دايرکتوري PEAR خود PHP مي باشد، که مجموعه اي از کلاسهايي که بسيار استفاده مي شوند را شامل مي شود.
include_path = \".:/usr/local/lib/php/pear:\"
کاربران ويندوز براي مشخص کردن چندين دايرکتوري بايد از سمي کالن";" بين آنها استفاده کنند و کاربران unix از کالن ":".
دو متغير جالب در اين زمينه auto_prepend_file و auto_append_file مي باشند. اين متغيرها فايلهايي را مشخص مي کنند که PHP به ابتدا يا انتهاي هر سند PHP اضافه خواهد کرد. اين مورد بيشتر براي اضافه کردن header و footer به صفحاتي است که توسط PHP ايجاد مي شوند، به طوري که باعث مي شود تعدادي خط کد به هر سند PHP که شما مي نويسيد اضافه گردد.
اين فايلها هم مي توانند اسکريپتهاي PHP و هم html معمولي باشند، ولي کدهاي PHP براي اين امر بايد در تگ استاندارد محصور شده باشند.
auto_prepend_file = /home/web/includes/header.php
auto_append_file = /home/web/includes/legal.php
چگونگي رفتار با خطاها
خطا ها در PHP در چهار دسته مي آيند: parsing errors يا خطاي زمان تجزيه (کامپايل)، تذکرات درمورد خطاهاي موجود در کد مثلا مقدار دهي نکردن يک متغير، warning يا هشدار و fatal error. معمولا هنگامي که PHP با يکي از خطاهاي parsing error يا warning يا fatal error مواجه مي شود، خطاها را نمايش مي دهد و اگر خطا از نوع fatal error باشد اجراي اسکريپت را در همان نقطه متوقف مي کند. شما مي توانيد اين رفتار را با متغير error_reporting که چند فيلد خطا را مي گيرد و تنها خطاهايي را که با آنها سازگار باشند نمايش مي دهد، اصلاح کنيد.
error_reporting = E_ALL
براي غير فعال کردن نمايش خطاها مقدار متغير display_errors را به نادرست تغيير دهيد و به جاي آن پيام خطاها را در ثبات خطاها از طريق متغير log_errors بنويسيد.
انجام اين کار براي امنيت بيشتر مفيد است، با غيرفعال کردن نمايش خطا شما اطلاعات ويژه سيستم خود را مخفي مي کنيد بدون توجه به اينکه آيا کاربران قصد خراب کردن سايت شما را دارند يا فقط استفاده مي کنند.به جاي آن شما بايد خطاها را در يک فايل دلخواه يا ثبات خطاي سيستم (system logger)، با تنظيم مقدار متغير error_log به مسير فايل انتخابي يا مقدار پيش فرض "syslog"، ثبت کنيد. فقط به ياد داشته باشيد که مرتبا به اين فايل سربزنيد تا ببينيد که در برنامه شما چه خطاهايي وجود دارد.
display_errors = Off
log_errors = On
error_log = \"error.log\"
فعال کردن توسعه ها
توسعه هاي متعددي براي PHP موجود است. در سيستمهاي يونيکس لازم است که اين توسعه ها در زمان کامپايل ساخته شوند. در ويندوز، dll هاي باينري وجود دارند که بايد ضميمه شوند. متغير extension_dir محتوي نام شاخه اي است که PHP در آن به دنبال اين توسعه ها مي گردد. مثلا:
extension_dir = \"C:\Program Files\Internet Tools\Apache\bin\php4\extensions\"
نسخه ويندوز PHP به همراه ۲۰ توسعه منتشر مي شود که تمامي آنها در فايل php.ini ليست شده اند. براي فعال کردن هر توسعه، علامت سمي کالن جلوي آن را حذف کرده و سرور خود را از نو راه اندازي کنيد. براي غير فعال کردن يک توسعه نيز مي توانيد جلوي آن علامت سمي کالن رو اضافه کنيد.
اگر توسعه مورد نظرتان در ليست توسعه ها در فايل php.ini نيست از متغير extension استفاده کرده و نام dll مورد نظر را به آن نسبت دهيد. مثلا:
extension=php_domxml.dll
extension=php_dbase.dll
تنظيم متغيرهاي مربوط به توسعه ها
متغير هاي مربوط به توسعه ها، در بخش جداگانه اي از فايل پيکربندي (php.ini) ذخيره مي شوند. براي مثال تمام متغيرهايي که به توسعه هاي MySQL مربوط مي شوند بايد در قسمت [MySQL] در فايل php.ini، قرار بگيرند.
اگر قصد استفاده از تابع mail در PHP را داريد، 3 متغير وجود دارد که بايد آنها را تنظيم کنيد. متغيرهاي SMTP و sendmail_from (در ويندوز) يا sendmail_path (در يونيکس) در هنگام ارسال e-mail از طريق تابع mail مورد استفاده قرار مي گيرند. در ويندوز اين متغير ها براي تنظيم SMTP Server و همچنين براي تعيين آدرس From در ساختار e-mail به کار مي روند. در يونيکس متغير sendmail_path مسير MTA يا Mail Transfer Agent را براي ارسال mail تنظيم مي کند.
SMTP = myserver.localnet.com
sendmail_from = me@localhost.com
sendmail_path = /usr/sbin/sendmail
متغيرهاي java.class.path ، java.home، java.library و java.library.path همگي آدرس کلاس ها و کتابخانه هاي جاوا را تنظيم ميکنند. اين مقادير به وسيله توسعه هاي جاوا مورد استفاده قرار مي گيرند. بنابراين اگر مي خواهيد PHP بتواند ارتباط صحيحي با برنامه هاي جاواي شما برقرار کند از درستي و معتبر بودن مقادير اين متغير ها اطمينان حاصل کنيد.
java.class.path = .\php_java.jar
java.home = c:\jdk
java.library = c:\jdk\jre\bin\hotspot\jvm.dll
java.library.path = .\
متغير session.save_path مشخص کننده آدرس شاخه موقتي است که براي ذخيره اطلاعات session ها بکار مي رود. معمولا اين متغير به طور پيش فرض مقدار /tmp را دارد، اما از آنجا که اين شاخه در ويندوز وجود ندارد بايد آن را با آدرس درست شاخه موقت ويندوز تصحيح کنيد در غير اين صورت هنگام فراخواني دستور session_start با خطا مواجه مي شويد. همچنين مي توانيد با تنظيم متغير session.cookie_lifetime مدت اعتبار cookie هاي session را بر حسب ثانيه مشخص کنيد.
session.save_path = c:\windows\temp
session.cookie_lifetime = 1800
تنظيمات مربوط به امنيت
تعدادي متغير در php.ini وجود دارد که به امنيت PHP نصب شده بر روي سيستم شما مريوط مي شوند. مهمترين آنها متغير safe_mode مي باشد که به طور مثال استفاده از آن براي محدود کردن آنچه کاربر مي تواند از طريق PHP انجام دهد بهISP ها توصيه ميشود.
safe_mode = Off
اگر safe mode فعال باشد (safe_mode = on) مي توانيد با تنظيم متغير safe_mode_include_dir مشخص کنيد که کدام شاخه ها براي فايل ها مورد جستجو قرار بگيرند. همچنين ميتوانيد نوع برنامه هايي که کدهاي PHP مي توانند از طريق فرمان exec آنها را اجرا کنند، را محدود کنيد. بدين منظور بايد اين برنامه هاي مجاز را در يک شاخه مخصوص قرار دهيد و از طريق متغير safe_mode_include_dir به PHP بگوييد که تنها در آن شاخه به دنبال آنها بگردد.بدين ترتيب تنها برنامه هاي درون اين شاخه توسط فرمان exec قابل دسترس خواهند بود.
safe_mode_include_dir = /usr/local/lib/php/safe-include
safe_mode_exec_dir = /usr/local/lib/php/safe-bin
شما مي توانيد اعمال مربوط به فايل ها را از طريق متغير open_basedir محدود کنيد. آدرس نسبت داده شده به اين متغير به عنوان ريشه اصلي (root) براي اعمال مربوط به فايل ها به کار مي رود. وقتي که اين متغير مقدار مي گيرد فايلهايي که در ساختار درختي اين ريشه نباشند براي PHP غير قابل دسترس خواهند بود. اين روش مناسبي براي محدود کردن کاربران يک سيستم اشتراکي مي باشد تا آنها تنها به آدرسهاي مربوط به خودشان دسترسي داشته باشند.
open_basedir = /home/web/
متغير max_execution_time تعيين ميکند که PHP حداکثر چند ثانيه منتظر پايان يافتن يک کد باشد قبل از آنکه به اجبار آن را خاتمه دهد. وقتي کد شما گرفتار حلقه هاي بينهايت ميشود اين متغير بکار مي آيد.اگر چه ممکن است اين موضوع گاهي مزاحمت ايجاد کند مثلا زماني که کد نوشته شده نياز به انجام اعمال زمانبري دارد، مثلا upload کردن يک فايل حجيم. در اين مواقع بايد مواظب باشيد که اين مقدار را افزايش دهيد تا مانع آن شويد که PHP اجراي کد شما را در وسط يک کار مهم خاتمه دهد.
max_execution_time = 90
تنظيمات مربوط به upload فايل ها و متغير هاي فرمها
اگر پيکربندي هاي امنيتي که تاکنون ذکر شد کافي نيست باز هم مي توانيد با غير فعال کردن قابليت upload فايل از طريق متغير file_uploads، يا با محدود کردن حداکثر حجم قابل upload از طريق متغير upload_max_filesize سيستم خود را از اين هم امن تر کنيد. اغلب تمايل خواهيد داشت که فضاي کوچکي را براي upload فايلها اختصاص دهيد مگر اينکه برنامه اي داشته باشيد که قرار باشد فايل هايي نظير يک گالري عکس يا يک FTP Service را پذيرا باشد.
file_uploads = On
upload_max_filesize = 2M
اگر تمايلي به upload کردن فايلها نداريد اما از تعداد زيادي فرم در صفحات PHP تان استفاده ميکنيد، 2 متغير ديگر وجود دارد که بايد برايتان جالب باشد. اول متغير register_globals، علت بيشترين سردردهاي برنامه نويسان با سابقهPHP در PHP 3.x اين متغير به طور پيش فرض فعال بود (on) که موجب ميشد وقتي يک فرم submit مي شد متغيرهاي آن بطور اتوماتيک به متغيرهاي PHP تبديل شوند.
مسايل امنيتي موجب شد که در PHP 4.x اين متغير بطور پيش فرض غير فعال باشد. (off). در نتيجه متغيرهاي فرم تنها به کمک آرايه هاي ويژه $_GET و $_POST قابل دسترس باشند. اين امر خيلي از کدهاي نوشته شده با PHP 3.x را با مشکل مواجه ساخت. مثلا مقداري که در يک فيلد وارد شده بود در PHP 3.x با $email قابل دسترس بود در حالي که در PHP 4.x با $_POST[email] يا $_GET[email] ميتوان به آن رجوع کرد.
ميتوانيد اين متغير را غير فعال کنيد (off) تا امنيت بيشتري را در برابر حملاتي که از طريق فرمها صورت مي گيرند برقرار کنيد. به منظور سازگاري با کدهاي نوشته شده با PHP 3.x آن را فعال کنيد:
register_globals = on
متغير ديگري که به کار با فرم ها مربوط ميشود post_max_size است که کنترل مي کند حداکثر چه حجم داده اي توسط متد POST يک فرم پذيرفته شود. به نظر نمي آيد که زماني لازم شود اين مقدار را از 8 MB افزايش دهيد. در عوض احتمال دارد بخواهيد آن را به يک مقدار واقعي تر تغيير دهيد. به هر حال اگر قصد داريد از امکانات upload فايل در PHP استفاده کنيد اين مقدار را بيشتر از مقدار متغير upload_max_size قرار دهيد.
post_max_size = 8M
يک متغير جديد هم در PHP 5 معرفي شده است: max_input_time. که حداکثر زمان بر حسب ثانيه که عمل دريافت داده هاي ورودي از طريق POST ،GET و PUT مي تواند طول بکشد را مشخص مي کند. اگر برنامه شما تحت يک اتصال کند اجرا مي شود بهتر است اين مقدار را افزايش دهيد تا به برنامه اجازه دهيد مدت بيشتري را به دريافت داده هاي ورودي اختصاص دهد.
max_input_time = 90
افزايش کارآيي
هنوز مقادير ديگري هم وجود دارد که با دستکاري آنها مي توانيد کارايي مفسر PHP را بالا ببريد. به منظور جلوگيري از اجراي کدهايي که ممکن است تمام حافظه موجود سيستم را اشغال کنند، PHP به شما اجازه مي دهد که براي استفاده از حافظه محدوديتي معين کنيد. اين کار از طريق متغير memory_limit قابل انجام است که حداکثر ميزان حافظه قابل استفاده توسط يک برنامه واحد را مشخص مي کند.
memory_limit = 8M
مقدار متغير memory_limit اغلب بايد از مقدار متغير post_max_size بيشتر باشد.
مساله ديگري که با دانستن آن مي توانيد کارايي را افزايش دهيد غير فعال کردن متغيرهاي $argc و $argv است که تعداد و محتواي آرگومان هاي خط فرمان که به يک برنامه ارسال شده اند، را مشخص مي کنند.
register_argc_argv = false
همينطور غير فعال کردن آرايه هاي $[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] , $[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] . چرا که به احتمال زياد در دنياي جديد $_GET , $_POST ديگر نيازي به آنها نيست. غير فعال کردن اين اجزا باعث بهبود کارآيي مي شود البته فقط در PHP 5 و از طريق متغيرregister_long_arrays قابل انجام است.
register_long_arrays = false
تابع ini_set
و در آخر نکاتي در مورد تابع ini_set. در حالي کهPHP تمام تنظيمات اش را در هنگام بالا آمدن، از فايل php.ini مي خواند، اين اجازه را به شما مي دهد که اين تنظيمات را به کمک تابع جالب ini_set و در برنامه خود انجام دهيد. البته اين تغييرات فقط براي همان برنامه اي که در آن از تابع ini_set استفاده کرده ايد اعمال مي شوند .اين تابع 2 آرگومان مي گيرد: نام متغير پيکربندي اي که مي خواهيد مقدارش را تغيير دهيد و مقدار جديد آن. اين هم يک مثال که حداکثر زمان اجراي مجاز براي برنامه اي که اين کد در داخل آن نوشته شده است را افزايش مي دهد.
<?php
ini_set('max_execution_time', 600);
// more code
?>
باز هم يادآوري مي شود که اين تنظيمات در داخل هر برنامه اي که نوشته شود فقط همان برنامه را تحت الشعاع قرار مي دهد. وقتي که برنامه خاتمه پيدا کند مقدار متغير به طور اتوماتيک به مقدار اوليه تغيير خواهد کرد.
اگر برنامه هايPHP شما بر روي يک سرور مشترک (Shared Server) اجرا مي شوند احتمالا شما دسترسي به فايل پيکربندي php.ini نخواهيد داشت. در اين موارد تابع ini_set کمک شاياني مي کند. چرا که اجازه مي دهد تنظيمات مورد نظرتان را براي برنامه هاي خودتان اعمال کنيد
masoud_razor
10-07-2008, 13:52
مديريت فايل هاي ارسالي توسط كاربران
مديريت فايل هاي ارسالي توسط كاربران
حتما تا بحال سايت هايي را ديده ايد كه به كاربران اجازه Upload فايل از طريق
صفحات (فرم هاي) Html را مي دهند به عنوان مثال در قسمت Profile هاي ياهو كه شما
به عنوان يك كاربر عادي مي توانيد تصوير خود را كه يك فايل با فرمت Gif يا Jpg
است و يا نمونه پيغام صوتي خود را به Profile تان اضافه كنيد و يا بخش آرشيو سايت
هاي تحقيقاتي كه به اعضاي خود اجازه مي دهند نتايج كار خود را در قالب يك فايل
PDF و يا بصورت Zip شده بر روي سايت قرار دهند .
به مطالب گفته شده در بالا حتما به اين نتجه رسيده ايد كه در اينگونه سيستم ها
سه نكته اساسي قرار داد .
1- چكونگي ارسال فايل با استفاده از پروتكل HTTP به جاي FTP.
2- بررسي فرمت فايل و جلوگيري از Upload فايل هاي غير مجاز.
3- بررسي اندازه فايل و جلوگيري از ارسال فايلهاي حجيم.
براي دريافت فايل از كاربر ابتدا بايد فرمي به شكل زير ايجاد كرد :
<form name=\"form1\" method=\"post\" action=\"_URL_\"
enctype=\"multipart/form_data\">
<input type=\"file\" name=\"userfile\">
<input type=\"submit\" name=\"Submit\" value=\"Submit\">
</form>
عبارت multipart/form_data فرم بالا را از فرمهايي كه تا بحال با آن كار كرده
ايم متمايز مي كند . در فرم بالا قبل از دكمه Submit كادر مخصوص در يافت فايل قرار
گرفته در واقع اين همان فايلي است كه كاربر قصد ارسال به سرور را دارد.
در اين فرم _URL_ اشاره به برنامه PHP اي دارد كه قصد داريد عمل دريافت فايل را
در آنجا انجام دهيد .
تا اينجا فرم مورد نياز طراحي شده است حال با يك برنامه ساده مثل نمونه زير مي
توان فايل را از Client خوانده و بر روي سرور ذخيره كرد.
<?
if(isset( $Submit )) {
if ($_FILES['userfile']['type'] == "image/gif\"){ copy ($_FILES['imagefile']['tmp_name'], \"files/\".$_FILES['imagefile']['name'])
or die (\"Could not copy\");
echo \"\";
echo \"Name: \".$_FILES['imagefile']['name'].\"\";
echo \"Size: \".$_FILES['imagefile']['size'].\"\";
echo \"Type: \".$_FILES['imagefile']['type'].\"\";
echo \"Copy Done....\";
}
else {
echo \"\";
echo \"Could Not Copy, Wrong Filetype (\" .$_FILES['imagefile']['name'].\")\";
}
}?>
اين برنامه در صورتي كه فايل ارسالي يك فايل GIF باشد آنرا با همان نامي كه روي
كامپيوتر كاربر قرارداشته در شاخه Files بر روي سرور ذخيره مي كند .
البته همانطور كه ميدانيد متغيير هايي كه براي Upload فايل تعريف مي شوند بسته
به نسخه PHP و تنظيمات آن متفاوت مي باشند .
بعد از يك Upload موفق ، هنگامي كه track_vars فعال باشد آرايه هاي $_FILESو $[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
ايجاد مي گردند . سرانجام اگر register_globals فعال باشد متغييرها به صورت globals
ايجاد خواند شد.
توجه : track_vars از نسخه 4.0.3 به طور پيش فرض فعال است . از PHP 4.1.0 به بعد
ترجيحا از متغيير عمومي $_FILES به جاي $[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] استفاده مي گردد .
$[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]$_FILES : به منظور مهيا كردن مشخصات فايل (هاي) ارسال شده ايجاد
شده اند . محتواي اين دو متغيير به شرح زير است البته توجه كنيد كه ‘userfile’
نام انتخابي ما در هنگام ساخت فرم HTML است
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.