در سرورهای مجازی یا اختصاصی تغییر timezone فقط با دسترسی روت روی سرور و توسط مدیر سرور صورت میگیرد. این امکان برای مدیران هاست های اشتراکی از طریق سرور وجود ندارد. چرا که نمیتوان در یک لحظه timezone های مختلفی روی سرور تنظیم کرد.
چرا به Time Zone صحیح نیازمندیم؟
موقعیت زمانی یک سرور بسته به موقعیت فیزیکی آن تنظیم میشود. به عنوان مثال وقتی شما از ما هاست آلمان تهیه میکنید موقعیت زمانی سرور بر روی آلمان تنظیم شده است. در این شرایط اگر شما بخواهید اسکریپت خاصی را روی وب سایت خود اجرا کنید که در زمان خاصی به وقت ایران کاری انجام دهد یا یک کرون را اجرا میکنید آن کرون در زمان اعلام شده توسط شما به وقت آلمان اجرا میشود.
پس شما برای مواردی مانند مدیریت log های وب سایت خود، یا آمار بازدید و عملکرد صحیح کرون جاب ها به تغییر Time Zone سایت خود نیاز پیدا خواهید کرد.
اطلاع پیدا کردن از Time Zone وب سایت
اگر شما میخواهید از موقعیت زمانی فعلی سرور خود استفاده کنید این کار با روش های مختلفی قابل انجام است. ما در این آموزش به شما خواهیم گفت که چگونه از طریق تابع phpinfo پی به مقدار Time Zone وب سایت خود ببرید.
بعد از وارد شدن به محیط هاست خود وارد مسیر public_html شوید و یک فایل با نام دلخواه مثلا test.php را ایجاد کرده و محتویات زیر را داخل آن بنویسید:
1 2 3 |
<?php phpinfo(); ?> |
سپس فایل را در مرورگر خود باز نمائید:
1 |
domain.com/test.php |
در صفحه باز شده عبارت timezone را جست و جو کنید:
همانگونه که ملاحظه میکنید موقعیت زمانی سرور شما قابل مشاهده خواهد بود.
تنظیم Time Zone مورد نظر از طریق htaccess
حال برای اینکه شما بخواهید مقدار موقعیت زمانی وب سایت خود را تغییر دهید ابتدا باید بتوانید تشخصی دهید که چه مقداری برای شما قابل تنظیم است. مثلا فرض کنید میخواهیم موقعیت زمانی ایران را بر روی وب سایت خود فعال کنیم. برای این کار ابتدا به وب سایت رسمی PHP سر میزنیم و قاره مورد نظر خود را انتخاب میکنیم:
سپس از صفحه باز شده به جست و جوی شهر مورد نظر خود میپردازیم:
همانطور که مشاهده میکنید برای Time Zone با موقعیت ایران مقدار Asia/Tehran صحیح است. شما میتوانید با استفاده از این روش مقدار صحیح موقعیت های دلخواه خود را بیابید.
حال فایل htaccess. را در هاست خود از شاخه public_html باز کنید و مقدار زیر را در آن وارد کرده و تغییرات را ذخیره نمائید:
1 |
SetEnv TZ Asia/Tehran |
یا
1 |
php_value date.timezone 'Asia/Tehran' |
همیشه توصیه میشود ابتدا از فایلی که میخواهید تغییر دهید یک نسخه پشتیبان تهیه کنید. بعد از ذخیره این فایل خواهید دید که موقعیت زمانی یا Time Zone وب سایت شما به موقعیت دلخواه تغییر کرده است. این تغییر تقریبا آنی بوده و بدون وقفه اعمال میشود. این تغییرات را میتوانید از طریق فایل test.php که ایجاد کرده اید مشاهده نمائید.
نکته: حتما در این مرحله فایل test.php را از روی هاست خود حذف نمائید.
امیدواریم که این آموزش نیز برای شما مفید واقع شده باشد و شما بتوانید به سادگی و با استفاده از فایل htaccess. مقدار timezone مورد نیاز خود را وارد نمائید.