فایل php.ini بخش کلیدی پیکربندی PHP است که تاثیر قابلتوجهی بر نحوه عملکرد سرورها و پروژههای PHP دارد. با تنظیمات دقیق و بهینهسازی پارامترهای آن، میتوان عملکرد سرورها را بهبود بخشید، منابع را بهتر مدیریت کرد و سطح امنیتی سیستم را افزایش داد. برای توسعهدهندگان و مدیران سرور، تسلط بر تنظیمات php.ini به معنای کنترل بیشتر و انعطافپذیری در اجرای پروژههای وب است.
فایل php.ini چیست؟
فایل php.ini یکی از اصلیترین اجزای پیکربندی زبان برنامهنویسی PHP به شمار میرود که نقش حیاتی در نحوه عملکرد و اجرای PHP در سرورها ایفا میکند. این فایل پیکربندی، تنظیمات مختلفی را برای بهینهسازی عملکرد، امنیت و مدیریت منابع در اختیار سرورها و اسکریپتهای PHP قرار میدهد. در واقع، فایل php.ini به عنوان قلب تنظیمات PHP شناخته میشود و با پیکربندی دقیق و بهینهسازی آن، میتوان کارایی و پایداری پروژههای PHP را به طور قابل توجهی بهبود بخشید.
اهمیت و کاربرد فایل php.ini
فایل php.ini به مدیران سرور و توسعهدهندگان وب این امکان را میدهد که تنظیمات PHP را با توجه به نیازهای پروژهها و سرورهای خود بهینهسازی کنند. این تنظیمات شامل پارامترهای متعددی است که کنترل نحوه استفاده از حافظه، مدیریت فایلها، اجرای اسکریپتها، و همچنین فعال یا غیرفعالسازی ماژولها و توابع خاص PHP را بر عهده دارند. به عنوان مثال، با تنظیم میزان حافظهای که هر اسکریپت میتواند استفاده کند (مانند memory_limit)، توسعهدهندگان میتوانند از مصرف بیش از حد منابع سرور توسط یک اسکریپت جلوگیری کنند و به این ترتیب ثبات سیستم را حفظ کنند.
یکی دیگر از ویژگیهای کلیدی فایل php.ini این است که به توسعهدهندگان اجازه میدهد محدودیتهایی برای زمان اجرای اسکریپتها تعیین کنند. پارامتری مانند max_execution_time میتواند به جلوگیری از اجرای طولانیمدت اسکریپتها کمک کند و از ایجاد مشکلاتی همچون بار بیش از حد سرور جلوگیری کند. به همین ترتیب، تنظیم upload_max_filesize امکان محدود کردن حجم فایلهایی که میتوان در سیستم آپلود کرد را فراهم میسازد، که این مورد نیز در امنیت و بهینهسازی سیستم بسیار اهمیت دارد.
سفارشیسازی تنظیمات برای پروژهها
فایل php.ini به توسعهدهندگان این امکان را میدهد تا تنظیمات عمومی سرور را برای پروژههای خاص خود سفارشیسازی کنند. این به معنای ایجاد محیطی بهینهشده برای اجرای نرمافزارهای مختلف تحت PHP است. به عنوان مثال، برخی پروژهها ممکن است نیاز به فعالسازی ماژولهای خاصی داشته باشند که به طور پیشفرض غیرفعال هستند. با فعالسازی این ماژولها از طریق php.ini، میتوان قابلیتهای اضافی را به برنامههای PHP اضافه کرد. همچنین، در صورتی که پروژهای نیاز به مدیریت خاصی بر روی ارسال ایمیلها، ثبت لاگها یا مدیریت خطاها داشته باشد، تنظیمات مرتبط را میتوان در این فایل پیکربندی کرد.
امنیت و مدیریت منابع با فایل php.ini
فایل php.ini همچنین نقش مهمی در افزایش امنیت سرورهای PHP ایفا میکند. با تنظیم مقادیر مرتبط با امنیت، مانند محدود کردن دسترسی به فایلهای خاص، غیرفعال کردن توابع خطرناک (مانند exec و system) و جلوگیری از اجرای کدهای مخرب، میتوان از حملات امنیتی جلوگیری کرد و سطح امنیتی سیستم را افزایش داد. در نهایت، تنظیمات php.ini برای بهینهسازی مدیریت منابع نیز اهمیت دارد. با تعیین مقادیر مناسب برای پارامترهایی مانند max_input_time و post_max_size، میتوان کارایی سیستم را بهبود بخشید و از مشکلاتی نظیر پر شدن حافظه یا کندی عملکرد جلوگیری کرد.
نحوه دسترسی به فایل php.ini
برای ویرایش فایل php.ini، معمولاً نیاز به دسترسی به سرور از طریق SSH دارید.
با استفاده از دستور زیر میتوانید مسیر فایل پیکربندی PHP را پیدا کنید:
php -i | grep php.ini
با اجرای این دستور، مسیر فایل php.ini به شما نمایش داده خواهد شد. در برخی از سیستمها و مخصوصاً اگر از دایرکت ادمین و custombuild 2.0 استفاده میکنید، ممکن است لازم باشد از دستور زیر برای پیدا کردن و ویرایش فایل php.ini استفاده کنید:
/usr/local/bin/php -i | grep 'Loaded Configuration File'
پس از پیدا کردن مسیر فایل، میتوانید آن را با استفاده از یک ویرایشگر متن مانند nano یا vi ویرایش کنید.
برخی از مهمترین تنظیمات php.ini
در فایل php.ini میتوان تنظیمات متنوع و مهمی انجام داد که در ادامه به برخی از آنها اشاره میکنیم:
افزایش و کاهش مقدار حافظه مصرفی دستورات PHP (memory_limit)
این پارامتر تعیین میکند که هر اسکریپت PHP چه مقدار حافظه مجاز به استفاده دارد. برای پروژههای بزرگ و سنگین، افزایش این مقدار میتواند کارایی و سرعت اسکریپتها را بهبود بخشد.
memory_limit = 256M
این تنظیم مقدار حافظه مصرفی هر اسکریپت را به 256 مگابایت محدود میکند.
فعال و غیر فعال کردن برخی Functionها (disable_functions)
از این تنظیم برای غیرفعال کردن توابع PHP که ممکن است به دلایل امنیتی یا عملکردی نامناسب باشند، استفاده میشود. توابعی مانند exec(), shell_exec(), و system() معمولاً در سرورهای اشتراکی یا برای حفظ امنیت غیرفعال میشوند.
disable_functions = exec, shell_exec, system
تنظیم نهایت زمان اجرای یک اسکریپت (max_execution_time)
این پارامتر مدت زمانی که اسکریپت PHP میتواند اجرا شود را تعیین میکند. اگر اسکریپت بیشتر از این زمان طول بکشد، بهطور خودکار متوقف خواهد شد. این تنظیم برای جلوگیری از اجرای طولانی مدت اسکریپتها که میتواند منجر به مصرف بیش از حد منابع سرور شود، مفید است.
max_execution_time = 30
تعیین مسیر آپلود فایلها (upload_tmp_dir)
این پارامتر مسیر موقت آپلود فایلها را تعیین میکند. زمانی که کاربر فایلی را از طریق فرم HTML آپلود میکند، فایل ابتدا به این مسیر موقت ذخیره میشود.
upload_tmp_dir = /tmp
تغییر حجم و نوع فایلهای آپلودی (upload_max_filesize و post_max_size)
دو پارامتر مهم برای کنترل حجم فایلهایی که کاربر میتواند آپلود کند. upload_max_filesize حداکثر حجم یک فایل تکی را مشخص میکند، و post_max_size حداکثر حجم دادههای ارسال شده از طریق فرم را تعیین میکند.
upload_max_filesize = 50M
post_max_size = 55M
تنظیمات مربوط به ماژولهای PHP
از طریق این فایل میتوانید ماژولهای PHP را بارگذاری یا غیرفعال کنید. به عنوان مثال، اگر نیاز به استفاده از ماژول curl یا mbstring دارید، باید در این فایل فعالسازی شوند.
extension=curl
extension=mbstring
فایل php.ini کجا قرار دارد؟
فایل php.ini بسته به نوع سرور، نسخه PHP و سیستمعامل مورد استفاده شما در مسیرهای مختلفی قرار دارد. همین موضوع باعث میشود کاربران در پیدا کردن دقیق این فایل دچار مشکل شوند. در اینجا به شما روشهای مختلفی برای پیدا کردن مسیر فایل php.ini آموزش خواهیم داد.
هنگامی که PHP اجرا میشود، سیستم فایل php.ini را در مسیرهای زیر جستجو میکند:
-
مکان تعیین شده برای SAPI (Server Application Programming Interface)
-
تنظیمات محیطی PHPRC
-
دایرکتوری فعلی (getcwd)دایرکتوری نصب PHP یا وب سرور
نحوه پیدا کردن فایل php.ini
روشهای مختلفی برای پیدا کردن مسیر php.ini وجود دارد. در ادامه به برخی از این روشها اشاره میکنیم:
1. استفاده از دستور خط فرمان
اگر به خط فرمان (SSH) سرور خود دسترسی دارید، میتوانید با اجرای دستور زیر مسیر فایل php.ini را پیدا کنید:
php -i | grep php.ini
این دستور اطلاعات مربوط به پیکربندی PHP را نمایش داده و مسیر فایل php.ini را نشان میدهد. همچنین اگر از دایرکتادمین یا سیپنل استفاده میکنید و از custombuild 2.0 بهره میبرید، میتوانید دستور زیر را امتحان کنید:
/usr/local/bin/php -i | grep 'Loaded Configuration File'
2. ایجاد اسکریپت PHP
اگر به خط فرمان دسترسی ندارید، میتوانید با ایجاد یک فایل PHP و استفاده از تابع phpinfo()، مسیر php.ini را پیدا کنید.
یک فایل جدید با نام دلخواه، مثل phpinfo.php بسازید.
کد زیر را داخل آن قرار دهید:
<?php
phpinfo();
?>
این فایل را در مرورگر خود اجرا کنید. خروجی شامل اطلاعات زیادی در مورد پیکربندی PHP خواهد بود. در این اطلاعات میتوانید مسیر php.ini را پیدا کنید که در قسمت Loaded Configuration File نمایش داده میشود.
3. استفاده از PHP Selector در هاست اشتراکی
برای کاربرانی که از هاست اشتراکی استفاده میکنند، معمولاً دسترسی مستقیم به فایل php.ini وجود ندارد. اما برخی از هاستینگها ابزارهایی مانند PHP Selector را در اختیار کاربران قرار میدهند که به آنها اجازه میدهد نسخه PHP و برخی تنظیمات مهم مانند محدودیت حافظه و اندازه فایلهای آپلودی را تغییر دهند. در صورتی که هاستینگ شما چنین امکانی را فراهم نکرده باشد، میتوانید تنظیمات خاصی را از طریق تیم فنی هاستینگ پیگیری کنید.
مسیرهای معمول فایل php.ini در سیستمعاملهای مختلف
بسته به نوع سیستمعاملی که استفاده میکنید، مسیر پیشفرض php.ini ممکن است متفاوت باشد:
-
سیستمهای لینوکس (مانند CentOS، Ubuntu):
-
/etc/php.ini
-
/etc/php/7.4/apache2/php.ini
-
/usr/local/php/php.ini
-
سیستمهای ویندوز:
-
C:\Program Files\PHP\php.ini
-
C:\xampp\php\php.ini
-
هاستهای اشتراکی:
-
معمولاً مسیر دقیق php.ini در کنترل پنل هاست ذکر میشود یا از طریق تیم پشتیبانی قابل پیگیری است.
پیدا کردن مسیر فایل php.ini در سی پنل
در سی پنل (cPanel)، مسیر فایل php.ini بسته به پیکربندی سرور و نسخه PHP ممکن است متفاوت باشد. به طور کلی، در سی پنل دو روش برای پیدا کردن فایل php.ini وجود دارد:
استفاده از PHP Info برای پیدا کردن مسیر php.ini
یکی از سادهترین روشها برای پیدا کردن مسیر فایل php.ini در سی پنل، ایجاد یک فایل PHP و استفاده از تابع phpinfo است:
- وارد cPanel شوید.
- به قسمت File Manager بروید و به پوشه public_html یا هر دایرکتوریای که میخواهید فایل را در آن قرار دهید، بروید.
- یک فایل جدید با نام دلخواه (مثلاً phpinfo.php) ایجاد کنید.
- محتوای زیر را در آن قرار دهید:
<?php
phpinfo();
?>
- فایل را ذخیره کنید.
- در مرورگر، آدرس yoursite.com/phpinfo.php را باز کنید (جایگزین yoursite.com با دامنه خودتان).
- در خروجی که نمایش داده میشود، به دنبال عبارت Loaded Configuration File بگردید که مسیر دقیق فایل php.ini شما را نشان میدهد.
استفاده از MultiPHP INI Editor در سی پنل
سی پنل دارای یک ابزار داخلی به نام MultiPHP INI Editor است که به شما اجازه میدهد برخی از تنظیمات PHP را بدون نیاز به دسترسی مستقیم به فایل php.ini تغییر دهید:
- وارد سی پنل شوید.
- به بخش Software بروید و گزینه MultiPHP INI Editor را پیدا کنید.
- روی آن کلیک کنید.
- در قسمت Configure PHP INI basic settings، دامنه خود را از لیست انتخاب کنید.
- در اینجا میتوانید تنظیمات مهم PHP مثل memory_limit، upload_max_filesize و post_max_size را ویرایش کنید.
فایل php.ini در دایرکت ادمین (DirectAdmin)
در کنترل پنل DirectAdmin، مسیر فایل php.ini به نسخه PHP و نوع سرور (مانند CLI یا CGI) بستگی دارد. با این حال، مانند سیپنل، شما میتوانید از روشهای مختلف برای پیدا کردن مسیر دقیق فایل php.ini استفاده کنید. در ادامه علاوه بر معرفی مسیرهای پیشفرض، روشهای دیگری برای پیدا کردن این فایل در دایرکت ادمین توضیح داده شده است.
مسیرهای پیشفرض فایل php.ini در DirectAdmin
بسته به نوع نصب و نسخه PHP که استفاده میکنید، فایل php.ini معمولاً در یکی از مسیرهای زیر قرار دارد:
اگر از نسخه پیشفرض CLI PHP استفاده میکنید:
/usr/local/lib/php.ini
اگر از PHP نسخه 5 در حالت CGI (suphp) استفاده میکنید:
/usr/local/etc/php5/cgi/php.ini
اگر از PHP نسخه 4 در حالت CGI استفاده میکنید:
/usr/local/etc/php4/cgi/php.ini
پیدا کردن مسیر دقیق فایل php.ini با استفاده از خط فرمان (SSH)
اگر به SSH دسترسی دارید، میتوانید با استفاده از دستورات زیر مسیر دقیق فایل php.ini را پیدا کنید:
برای پیدا کردن مسیر php.ini در محیط CLI:
php -i | grep php.ini
برای کاربران PHP CGI، میتوانید دستور زیر را اجرا کنید:
/usr/local/bin/php -i | grep 'Loaded Configuration File'
این دستورات اطلاعات پیکربندی PHP را نمایش داده و مسیر php.ini را در قسمت Loaded Configuration File نشان میدهند.
استفاده از PHP Info
اگر به SSH دسترسی ندارید، میتوانید یک فایل PHP ایجاد کنید و از تابع phpinfo() استفاده کنید تا مسیر فایل php.ini را پیدا کنید:
یک فایل با نام دلخواه (مثل phpinfo.php) در مسیر public_html بسازید.
محتوای زیر را در فایل قرار دهید:
<?php
phpinfo();
?>
فایل را در مرورگر باز کنید:
http://yourdomain.com/phpinfo.php
در صفحه نمایش داده شده، به دنبال Loaded Configuration File بگردید که مسیر فایل php.ini را نمایش میدهد.
مسیر فایل php.ini در وردپرس
در وردپرس، بهخصوص اگر از هاست اشتراکی استفاده میکنید، به طور مستقیم به فایل php.ini دسترسی ندارید. با این حال، میتوانید برخی از تنظیمات PHP را از طریق فایل .htaccess یا حتی برخی فایلهای دیگر، مانند wp-config.php، تغییر دهید.
ویرایش تنظیمات PHP از طریق فایل htaccess. در وردپرس
فایل .htaccess یکی از فایلهای اصلی برای کنترل تنظیمات وبسرور Apache در وردپرس است. شما میتوانید از این فایل برای تغییر برخی از تنظیمات PHP استفاده کنید، حتی اگر به فایل php.ini دسترسی مستقیم نداشته باشید.
برای اضافه کردن یا ویرایش تنظیمات PHP در وردپرس از طریق .htaccess مراحل زیر را دنبال کنید:
-
وارد پنل مدیریت هاست شوید (مثل سی پنل یا دایرکت ادمین).
-
به قسمت File Manager بروید.
-
به مسیر public_html (که معمولاً دایرکتوری اصلی وردپرس است) بروید.
-
فایل .htaccess را پیدا کرده و آن را ویرایش کنید.
اگر این فایل را نمیبینید، ممکن است فایلهای مخفی شده باشند. گزینه "Show Hidden Files" را در پنل فایل منیجر فعال کنید.
برای اضافه کردن تنظیمات PHP، کد زیر را در فایل .htaccess وارد کنید:
php_value name value
-
name: نام تنظیمی است که میخواهید تغییر دهید (مثلاً upload_max_filesize).
-
value: مقداری است که برای این تنظیم انتخاب میکنید (مثلاً 8M برای 8 مگابایت).
فایل htaccess چیست؟ آشنایی با کاربردهای این فایل و ساخت آن
ویرایش فایل php.ini (*)
را به سادگی و بدون نیاز به دسترسی مستقیم به فایلهای سرور تغییر دهید. این ابزار یک رابط کاربری ساده فراهم میکند که به کاربران اجازه میدهد پارامترهای مختلف PHP را به راحتی ویرایش کنند. در ادامه مراحل ویرایش فایل php.ini با MultiPHP INI Editor توضیح داده شده است:
مراحل ویرایش فایل php.ini با MultiPHP INI Editor:
ورود به cPanel: ابتدا به cPanel سرور خود وارد شوید. برای این کار، به آدرس yourdomain.com/cpanel مراجعه کنید و اطلاعات کاربری خود را وارد نمایید.
پیدا کردن ابزار MultiPHP INI Editor: پس از ورود به cPanel، در بخش Software یا Software and Services، گزینه MultiPHP INI Editor را پیدا کرده و بر روی آن کلیک کنید.
انتخاب مسیر PHP: در صفحهای که باز میشود، ابتدا باید از قسمت Configure PHP INI basic settings، دامنهای که میخواهید فایل php.ini آن را ویرایش کنید انتخاب کنید. اگر سرور شما از چند نسخه PHP پشتیبانی میکند، مطمئن شوید که نسخه PHP مرتبط با دامنه یا پروژه خود را انتخاب کردهاید.
ویرایش تنظیمات PHP: در این قسمت، لیستی از تنظیمات مهم PHP نمایش داده میشود که میتوانید مقادیر آنها را تغییر دهید. برخی از تنظیمات رایج که ممکن است بخواهید تغییر دهید عبارتاند از:
-
-
memory_limit: محدودیت حافظه که اسکریپتهای PHP میتوانند استفاده کنند.
-
upload_max_filesize: حداکثر حجم فایلهایی که از طریق اسکریپتهای PHP آپلود میشوند.
-
max_execution_time: حداکثر زمانی که یک اسکریپت PHP میتواند اجرا شود.
-
post_max_size: حداکثر اندازه دادههایی که از طریق فرمها به سرور ارسال میشود.
-
display_errors: نمایش خطاهای PHP (برای توسعه بهتر است فعال باشد ولی در حالت تولید غیرفعال شود)
-
شما میتوانید مقدار هر پارامتر را تغییر دهید و با کلیک روی دکمهی Apply یا Save، تنظیمات جدید را ذخیره کنید.
بررسی تغییرات: پس از ذخیره تغییرات، میتوانید از طریق اسکریپتهای PHP یا با استفاده از دستور phpinfo() در یک فایل PHP، مطمئن شوید که تنظیمات جدید به درستی اعمال شدهاند.
نکات مهم:
-
نسخه PHP: حتماً مطمئن شوید که در MultiPHP INI Editor نسخه PHP مرتبط با دامنه یا پروژه خود را انتخاب کردهاید، زیرا هر نسخه PHP تنظیمات مختص به خود را دارد.
-
حفظ امنیت: برخی از تنظیمات مانند display_errors بهتر است در محیط تولید غیرفعال باشند، زیرا نمایش خطاها ممکن است اطلاعات حساس در مورد سرور را فاش کند.
-
احتیاط در تغییرات: قبل از تغییر دادن تنظیمات حساس مانند محدودیتهای حافظه یا زمان اجرا، مطمئن شوید که تنظیمات جدید مناسب پروژه و سرور شما هستند.
جمعبندی
در نهایت، فایل php.ini یکی از مهمترین ابزارها برای تنظیم و کنترل نحوه اجرای PHP در سرور است. این فایل به مدیران سیستم و برنامهنویسان اجازه میدهد تا تنظیمات حیاتی مانند محدودیت حافظه، زمان اجرای اسکریپتها، و کنترل اندازه فایلهای آپلودی را به صورت دقیق مشخص کنند. دسترسی و ویرایش این فایل میتواند کارایی و امنیت پروژههای PHP را بهبود ببخشد. هرچند در برخی هاستهای اشتراکی دسترسی مستقیم به این فایل ممکن نیست، اما با استفاده از روشهایی مانند .htaccess و wp-config.php میتوان بسیاری از تنظیمات را به صورت غیرمستقیم مدیریت کرد.