یکی از رایجترین چالشهایی که مدیران وبسایتهای مبتنی بر سیستمهای مدیریت محتوا مانند وردپرس، اسکریپتهای اختصاصی یا فریمورکهای PHP با آن مواجه هستند، عدم هماهنگی میان ساعت سرور و ساعت محلی کشور (مانند وقت رسمی ایران) است.
این ناهماهنگی زمانی میتواند اختلالات زیادی در عملکرد وبسایت ایجاد کند؛ از جمله ثبت نادرست تاریخ و ساعت در دیتابیس، تداخل در زمانبندی وظایف خودکار یا همان کرانجابز (Cron Jobs)، نمایش اشتباه زمان انتشار پستها و نظرات، و سردرگمی در تحلیل فایلهای لاگ سرور.
به همین دلیل، تسلط بر نحوه تنظیم دقیق منطقه زمانی یا همان Timezone در محیط پیاچپی اهمیت بسیار بالایی دارد.
در این مقاله آموزشی جامع از وبلاگ سابین سرور قصد داریم به صورت کاملاً تخصصی، گامبهگام و کاربردی، روش تغییر و تنظیم Timezone در PHP را از طریق فایل تنظیمات php.ini و کنترل پنل محبوب سیپنل (cPanel) بررسی کنیم تا بدون نیاز به دانش پیچیده برنامهنویسی، ساعت سرور میزبان وبسایت خود را با دقت کامل شخصیسازی کنید.
در ادامه این راهنما، تمامی پیشنیازها، روشهای دسترسی، دستورات مورد نیاز و نکات امنیتی مرتبط را به تفصیل شرح خواهیم داد تا هیچگونه ابهامی برای شما باقی نماند.
چرا تنظیم Timezone در PHP اهمیت دارد؟
زبان برنامهنویسی PHP به صورت پیشفرض بر اساس ساعت هماهنگ جهانی (UTC) یا ساعت دیتاسنتر میزبان سرور تنظیم شده است. اگر دیتاسنتر هاست شما در کشوری دیگر (مثلاً در دیتاسنترهای اروپایی یا آمریکایی) قرار داشته باشد، تمام توابع زمانی PHP مثل تابع date() یا time() بر اساس همان منطقه زمانی پاسخ خواهند داد.
این مسئله در سیستمهای مالی، فروشگاههای آنلاین و سایتهای خبری که دقت ثانیهها در ثبت تراکنشها و انتشار اخبار حیاتی است، مشکلات جدی به وجود میآورد.
برای مثال، اگر در یک فروشگاه اینترنتی پرداخت انجام شود اما ساعت ثبت سفارش چند ساعت جلوتر یا عقبتر از زمان واقعی ثبت گردد، فرایند حسابداری، پیگیری سفارشات و انبارداری دچار اختلالات شدید خواهد شد.
علاوه بر این، ابزارهای مدیریت اتوماسیون مانند Cron Jobs که وظیفه اجرای تسکهای پسزمینه (مانند بکاپگیری خودکار، ارسال ایمیلهای دورهای و انتشار پستهای زمانبندیشده) را بر عهده دارند، کاملاً به ساعت تنظیمشده در PHP وابستهاند.
به همین خاطر، تنظیم دقیق این پارامتر یکی از نخستین اقدامات فنی پس از راهاندازی هاست به شمار میرود.
پیشنیازهای فنی برای تغییر Timezone در هاست
پیش از اقدام برای تغییر منطقه زمانی، باید توجه داشته باشید که روش کار بستگی مستقیم به نوع سرویس میزبانی شما دارد. در هاستهای اشتراکی، اعمال تنظیمات سراسری سرور به صورت مستقیم توسط کاربر امکانپذیر نیست، زیرا تغییر فایل اصلی php.ini سرور روی تمامی اکانتهای دیگر نیز تأثیر منفی میگذارد.
به همین دلیل، هاستینگهای استاندارد این امکان را فراهم میکنند تا هر کاربر بتواند یک فایل php.ini اختصاصی یا تنظیمات محلی برای دایرکتوری خود داشته باشد.
خوشبختانه در تمامی سرویسهای میزبانی سابین سرور، از جمله هاست پرسرعت وردپرس و سرورهای مجازی، امکان استفاده از فایل php.ini اختصاصی به صورت پیشفرض مهیا شده است و کاربران میتوانند بدون هیچگونه محدودیت فنی، پیکربندیهای دلخواه خود را اعمال نمایند.
در صورت استفاده از هاستهای اشتراکی سایر شرکتها، حتماً پیش از شروع کار از پشتیبانی هاستینگ خود درباره فعال بودن قابلیت MultiPHP INI Editor یا امکان استفاده از فایلهای پیکربندی اختصاصی PHP سؤال کنید.
پیشنهاد مطالعه: برای آشنایی بیشتر با نحوه مدیریت این فایلها، مقاله تخصصی آموزش ساخت php.ini در سی پنل را مطالعه کنید.
آموزش گامبهگام تنظیم Timezone در سیپنل (cPanel)
اگر هاست وبسایت شما از کنترل پنل سی پنل استفاده میکند، ابزارهای داخلی بسیار مناسبی برای مدیریت نسخهها و پارامترهای PHP در اختیار دارید. در ادامه، مراحل ساخت و ویرایش فایل پیکربندی به صورت تصویری و گامبهگام تشریح شده است:
مرحله اول: ورود به پنل مدیریت هاست
ابتدا با استفاده از اطلاعات کاربری خود وارد هاست لینوکس خود شوید. پس از ورود به صفحه اصلی cPanel، به دنبال بخش Software بگردید.
مرحله دوم: دسترسی به ابزار MultiPHP INI Editor
در بخش Software، روی گزینه MultiPHP INI Editor کلیک کنید تا وارد صفحه مدیریت تنظیمات PHP شوید.

مرحله سوم: انتخاب حالت ویرایش و دامنه مورد نظر
در صفحه باز شده، بخش multiphp_ini_editor شامل دو حالت Basic Mode و Editor Mode است. ابتدا بخش Basic Mode را انتخاب کنید و سپس از منوی کشویی ظاهر شده، دامنه یا سابدامین مورد نظر خود را که قصد اعمال تغییرات روی آن دارید انتخاب نمایید.

در این قسمت شما تنظیماتی را در پیش روی خود خواهید دید که هرکدام مقوله خود را دارند و به مرور در وبلاگ سابین سرور افزوده میشوند.
پس از انتخاب دامنه، در انتهای صفحه بر روی گزینه Apply کلیک کنید تا ساختار اولیه فایل شکل بگیرد. هدف از انجام این مراحل تا اینجای کار، ساخت اتوماتیک فایل php.ini است.
مرحله چهارم: ویرایش پیشرفته و درج کد تنظیم ساعت
پس از کلیک بر روی Apply، فایل php.ini به صورت اتوماتیک در پوشه روت اصلی یعنی public_html هاست شما ایجاد میشود. حالا برای ویرایش دستی و دقیق پارامتر زمانی، در همین بخش روی تب Editor Mode کلیک کنید.
مانند مرحله قبل، دامنه هاست خود را از منوی کشویی انتخاب کنید. حالا در محیط ویرایشگر متنی، به خطوط کد فایل هدایت میشوید.

پس از انتخاب دامنه، در خط مناسب (مثلاً در خطوط انتهایی یا خط ۱۷ بسته به حجم فایل و تنظیمات دیگر) کد زیر را جهت تنظیم دقیق منطقه زمانی وارد کنید:
date.timezone = "Asia/Tehran"
توجه داشته باشید که عبارت Asia/Tehran منطقه زمانی رسمی ایران را روی سرور فعال میکند. اگر نیاز به تنظیم منطقه دیگری دارید، میتوانید استاندارد جهانی آن شهر یا کشور (مانند Europe/Berlin یا America/New_York) را وارد کنید.
مرحله پنجم: ذخیرهسازی نهایی
پس از وارد کردن کد فوق، در نهایت برای ذخیرهسازی تغییرات، بر روی گزینه Apply در پایین صفحه کلیک کنید. توجه داشته باشید که اگر پیش از این فایل PHP.ini را دستی ایجاد کرده بودید، کافی است مستقیماً سراغ ویرایشگر رفته و کد مربوط به تاریخ را اضافه یا ویرایش کنید.
بررسی صحت عملکرد Timezone پس از تغییرات
پس از اینکه تنظیمات فوق را ذخیره کردید، مهم است که از اعمال صحیح آن اطمینان حاصل کنید. برای این کار روشهای سادهای وجود دارد که به شما کمک میکند بدون خطا روند کار را تایید کنید:
- استفاده از فایل PHP Info: میتوانید یک فایل آزمایشی به نام
info.phpدر پوشهpublic_htmlبسازید و درون آن کد<?php phpinfo(); ?>را قرار دهید. سپس آن را در مرورگر فراخوانی کرده و به دنبال بخشdate.timezoneبگردید تا مطمئن شوید مقدار آن رویAsia/Tehranتنظیم شده است. (فراموش نکنید پس از بررسی، این فایل را برای امنیت بیشتر حذف کنید). - بررسی در وردپرس: اگر از وردپرس استفاده میکنید، به پیشخوان مدیریت رفته و در بخش تنظیمات عمومی (General Settings)، هماهنگی ساعت محلی را بررسی کنید.
پیشنهاد مطالعه: اگر قصد دارید مدیریت بهینهتری روی منابع هاست خود داشته باشید، مطالعه مقاله آموزش بهینه سازی وب سایت از طریق هاست cPanel را از دست ندهید.
نکات امنیتی و پایداری در مدیریت تنظیمات PHP
هنگام کار با فایلهای پیکربندی سرور و ویرایش پارامترهای PHP، رعایت چند نکته امنیتی و فنی اهمیت بالایی دارد:
- بکاپگیری پیش از تغییرات: همواره توصیه میشود پیش از اعمال تغییرات در فایلهای سیستمی هاست، یک نسخه پشتیبان تهیه کنید.
- سازگاری نسخه PHP: مطمئن شوید که نسخه PHP هاست شما با کدهای وبسایتتان سازگار است.
- امنیت فایلها: فایل php.ini شامل تنظیمات حساس سرور است؛ بنابراین سطح دسترسی (Permission) آن را روی استاندارد 644 قرار دهید تا از دسترسیهای غیرمجاز جلوگیری شود.
سناریوهای جایگزین برای تنظیم Timezone
علاوه بر استفاده از فایل php.ini، روشهای دیگری نیز برای تنظیم منطقه زمانی در اسکریپتهای PHP وجود دارد که در شرایط خاص میتوانند مفید باشند:
- تنظیم از طریق فایل .htaccess: در برخی سرورها که امکان استفاده مستقیم از php.ini وجود ندارد، میتوانید با افزودن خط
php_value date.timezone "Asia/Tehran"به فایل .htaccess در روت هاست، این تنظیم را اعمال کنید. - استفاده مستقیم در کدهای PHP: اگر دسترسی به فایلهای کانفیگ ندارید، میتوانید در ابتدای فایل اصلی اسکریپت خود (مانند functions.php در وردپرس یا فایل اصلی کانفیگ) تابع
date_default_timezone_set('Asia/Tehran');را فراخوانی کنید. با این حال، روش فایل php.ini به دلیل پایداری سراسری، گزینه اول و استاندارد تری است.
جمعبندی و نتیجهگیری
تنظیم صحیح منطقه زمانی یا Timezone در PHP یکی از الزامات اولیه و فنی برای راهاندازی پایدار هر وبسایت حرفهای است. همانطور که در این آموزش مشاهده کردید، با استفاده از قابلیت MultiPHP INI Editor در سیپنل و تعریف دستور ساده date.timezone = "Asia/Tehran" در فایل php.ini، میتوانید به راحتی ساعت سرور میزبان را با ساعت محلی هماهنگ کنید و از بروز خطاهای زمانی در دیتابیس، کرانجابها و سیستمهای اتوماسیون جلوگیری نمایید.
اگر در هر یک از مراحل ذکر شده با سؤالی مواجه شدید یا برای راهاندازی و انتقال وبسایت خود به یک زیرساخت پرسرعت و پایدار به راهنمایی نیاز دارید، تیم پشتیبانی فنی سابین سرور به صورت ۲۴ ساعته و در سه شیفت آماده پاسخگویی و رفع نیازهای زیرساختی شماست. شما میتوانید جهت ارتقای کیفیت و سرعت وبسایت خود، از پلنهای متنوع هاست و سرورهای اختصاصی سابین سرور دیدن فرمایید.





4 پاسخ
سلام . در فایل php.ini اینکه کدام خط این کد نوشته شود مهم است؟ برای من خط 16 می شود.
سلام
خیر مهم نیست کدوم خطه
سلام ممنون از اطلاعاتتون در پیشخوان سایت من پیام میده که منطقه زمانی پیشفرض پی اچ پی نامعتبر است راهنمایی های شما را انجام دادم ولی هنوز درست نشده
سلام
سلامت باشید
این مورد مربوط به تنظیمات سرور شما هم هستش که باید تنظیمات رو انجام بدند و وبسرورو ری استارت کنند تا درست بشه.