در هنگام نصب php , فایل php.ini نیز همراه با آن با یک سری از تنظیمات پیش فرض ایجاد می شود . فایل php.ini شامل دستوراتی با مقادیر پیش فرض را داراست . این مقادیر به دو صورت هستند .
- Value Directive – این مقادیر شامل مسیر یک فایل هستند . برای مثال , include_path یک مقدار directive است که برای ذخیره مسیری که باید فراخوانی شود است , اگر هیچ فایل یا url ی برای تابع include مشخص نشود .
- Flag directive – این دستورات می توانند با مقادیر boolean ست یا آنست شوند . مثلا on/off , 1/0 , true/false و غیره .. . برای مثال REGISTER_GLOBALS از وقتی که به عنوان یک مقدار منسوخ معرفی شد , به طور پیش فرض off است .
فایل php.ini شامل دو بخش بر اساس value و flag می تواند set شود . این بخش ها به صورت زیر است .
- HOST – این دستور برای ست کردن اسم هاست فایل اجرایی به کار می رود . بعد از این بخش می توانیم دستورات مورد نظر را ست کنیم
1 2 |
[HOST="www.netparadis.com"] display_errors = off |
مثلا اینجا با مشخص کردن display_errors با مقدار off تعیین کردیم که پروژه های phpی که با این آدرس اجرا می شوند هیچگونه خطایی را نمایش ندهند .
- PATH – این دستور برای تنظیم یک سری کانفیگ ها برای دایرکتری خاص (کاربر) استفاده می شود .
1 2 |
[PATH="/home/user/.."] display_errors = on |
پیکربندی فایل php.ini
فایل php.ini در مسیر نصب php قرار دارد . اگر پکیج xampp را نصب کرده باشید . می توانید از مسیر c:\xampp\php آن را پیدا کنید .
همچنین اگر از سرور لینوکسی استفاده می کنید می توانید از خروجی تابع phpinfo() مسیر فایل php.ini را پیدا کنید .
بعد از نصب php , می توانیم یک یا چندین نسخه از فایل php.ini را بیابیم .باید نسخه پیشنهادی را انتخاب کنیم . برای مثال نسخه های php.ini_dist و php.ini_recommended که یکی از آنها را بنا به نیاز انتخاب و به php.ini تغییر نام بدیم . به طور مثال برای کارایی و امنیت بیشتر بهتر است از فایل php.ini_recommended استفاده و آن را به php.ini تغییر نام بدید.
همچنین اگر php را از طریق پکیج XAMPP نصب کرده باشیم . نسخه های دیگری از این فایل مثل php.ini-development و php.ini-production وجود خواهند داشت که نسحه پیشنهادی ما php.ini-development است که باید آن را به php.ini تغییر بدید (فایل php.ini قبلی با یک بکاپ گرفته و بعد حذف کنید یا اینکه تغییر نام بدید .)
ایجاد تغییرات
می توانیم یک سری از موارد پایه ای را تغییر بدیم . مثلا اگر قصد دسترسی به یک فایل از یک سرور دیگر از طریق url داشتید باید مقدار allow_url_fopen را فعال کنید . بعد از ایجاد هر تغییری در فایل php.ini حتما باید سرویس ها را یکبار ریستارت کنید (از طریق xampp) یا اگر سرور لینوکسی دارید با دستورات :
1 2 3 4 5 6 7 |
for apache => service httpd restart for litespeed => /usr/local/lsws/bin/lswsctrl restart |
بستگی به نوع وب سرور شما (آپاچی یا لایت اسپید) یکی از دستورات بالا را به کار ببرید
تغییرات بعد از ریستارت وب سرور در محیط php اعمال خواهند شد .
پیکربندی فایل php.ini
این فایل شامل متغییر های محیطی مثل error handling (مدیریت خطا) , دسترسی remote , آپلود فایل , تنظیملت مربوط به تصاویر . برای مثال تنظیمات حداکثر حجم فایل آپلودی یا مقدار timeout اجرای یک فایل php و غیره .. .است .
همجنین این فایل شامل دستوراتی برای مدیریت مسایل مربوط به کوکی و سیشن ها نیز است .
با تغییر فایل php.ini می توانید بسیاری از تنظیمات را به دلخواه یکبار برای همیشه ایجاد کنید تا نیازی به استفاده از توابع php در هر دفعه که پروژه های را می نویسید نباشد .
تنظیمات زیادی وحود دارد که لیست موارد مهم و کاربردی را برای شما آوردم که بنا بر نیاز خود هر یک از آن ها را که از اسمشان مشخص است تغییر بدید
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
expose_php=off enable_dl=off safe_mode=off magic_quotes_gpc=off register_globals=off session.save_path=/tmp log_errors = On display_errors = Off memory_limit = 1024M max_execution_time=300 max_input_time=300 max_input_vars=10000 upload_max_filesize=500M post_max_size=500M session.save_path=/tmp log_errors = On display_errors = Off timezone="asia/tehran" |
هر سوالی داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستم .
موفق و پیروز باشید.
سلام اقای شفیعی.
نحوه مخفی کردن path در قسمت Request header .
من وقتی از قسمت inspect اطلاعات سایت میبینم ادرس کامل مسیر نشون میده(path: /tar/get.php).
میخواستم کلا ادرس مشخص نباشه به این صورت(path: /) و یا (path: /tar/get)
ممنون میشم راهنمایی کنید.
باتشکر
سلام. منظورتون کدوم بخش INSPECT هست که این اطلاعات رو میبینید ؟
سلام اقای شفیعی.
قسمت :path: / < Request Headers < Network < INSPECT
سلام.
داخل فایل php.ini مقدار expose_php رو برابر false قرار بدید و بعد یکبار وب سرور رو ریستارت کنید
همچنین میتونید داخل .htaccess اسکریپت هم این خط رو قرار بدید (در هاست های اشتراکی ممکنه کار نکنه و باید دسترسی این رو تو سرور داشته باشید تا بشه مخفی کرد)
Header always unset path
Header unset path
سلام اقای شفیعی.ممنون
بله در هاست اشتراکی امکان تغییرات نیست .
یک سوال دیگه داشتم ازتون.
گواهی ssl سایت فعال هستش ولی url انکریپت نمیشه.تو بعضی از سایت ها هم url و path هر دو انکریپت شدن.واسه انکریپت کردن ادرسurl تو هاست اشتراکی باید چیکار کرد.
سلام.
url ها سمت سرور اینکریپت میشن ولی شما نمیبینید که شده یا نه. این اینکریپت شدن تو لایه شبکه خود سرور مشخصه
سلام، توی php.ini بخشی هست که تعیین کنه که میشه به سرور ریکوئست فرستاد یا نه؟ من با یه هاست که دارم میخوام برا سرورم یه درخواست ارسال کنم اما همش میزنه http request failed.
سلام. خیر فکر نکنم چنین موردی باشه. باید به هاستینگ تیکت بزنید و اگر این مشکل در لوکال هاست وجود داره باید مجدد نصب کنید