01 اسفند 1398
در این آموزش قصد داریم از راه دور به دیتابیس سیستم خانه یا اداره خود متصل شویم. به عنوان مثال فرض کنید یک کتابفروشی داریم و اطلاعات کتابها را در کامپیوتر کتابفروشی محل کار خود ثبت میکنیم. حال میخواهیم در سایت اینترنتی خود آمار به روز شده کتابها را نیز نمایش دهیم. در این صورت کاربری که سایت کتابفروشی را باز میکند، در حالی که مطلع نیست در پشت صحنه به سیستم کتابفروشی رایانه محلی ما (در صورت وصل بودن به اینترنت) متصل شده و جدول آنلاین کتابها را مشاهده میکند.
روشی که به طور مرسوم استفاده میشود راهاندازی یک هاست با آیپی ولید است که در آن میزبان میتواند با ارائه آیپی ولید، مخاطبان را به رایانه خود هدایت کند؛ اما قصد من ارائه روش دیگری است که در آن ما یک سایت آماده داریم و در یکی از صفحات آن میخواهیم به دیتابیس خانه یا اداره خود متصل شده و از اطلاعات آن استفاده کنیم.
در این مثال داریم
یک سرور در شبکه محلی که من از wampserver استفاده میکنم
یک روتر که من در اینجا از میکروتیک استفاده میکنم
آیپی ولید؛ هر چند جهت تست کوتاه مدت نیازی به تهیه این نوع آیپی نیست. (این توضیح را هم بدهم که با ADSL نتیجه گرفتم ولی با خطوط LTE هنوز جواب نگرفتم)
یک سایت لینوکسی هم لازم داریم
1) تنظیمات کامپیوتر محلی
2) تنظیمات روتر
3) تنظیمات سایت
1) تنظیمات کامپیوتر محلی: میدانید که نشانی پیش فرض ومپسرور جهت دسترسی به پنل، http://localhost است. ابتدا باید بتوانیم آیپی سیستم خود را پیدا کرده و در ومپسرور تنظیم کنیم به طوری که بتوانیم با وارد کردن آیپی مثلا http://192.168.1.132 به جای localhost در مرورگر به پنل دسترسی پیدا کنیم.
برای یافتن IP می توانید Network Connection سیستم خود را باز کرده و آیپی را ببینید و یا این که با وارد کردن عبارت ipconfig در قسمت cmd ویندوز آی پی خود را مشاهده کنید
حالا به مسیر فایل httpd.conf در ومپسرور رفته و خط زیر را پیدا کنید Allow from localhost سپس در زیر این خط، دسترسی از طریق آیپی سیستم خود را بنویسید مثل Allow from 192.168.1.132
به نشانی http://192.168.1.132/phpmyadmin میرویم و برای این که بتوانیم از اینترنت به دیتابیس کامپیوتر خود دسترسی پیدا کنیم، از تب Users یک یوزرنیم و پسورد جدید و معتبر تعریف میکنیم. فیلد Host را «%» بگذارید و و سایر تنظیمات دسترسی را به دلخواه علامت بزنید.
2) تنظیمات روتر:
گفتیم که میخواهیم از سایت به دیتابیس لوکال دسترسی داشته باشیم؛ بنابراین باید تعریف کنیم زمانی که کاربر صفحه مورد نظر ما را در سایت باز کرد، میکروتیک - در نقش یک هدایت کننده - دسترسی وی به دیتابیس را برقرار نماید؛ منتها فقط کسانی را که از آیپی سایت ما وارد میشوند. برای این منظور باید یک nat rule جدید ایجاد کنیم
در شکل و تب General مقدار Y.Y.Y.Y آیپی سایت است (دقت کنید که ممکن است این آی پی با آی پی نمایش داده شده در اینترنت متفاوت باشد بنابراین از شرکت میزبانی خود در خصوص آیپی سایت سوال فرمایید) و در تب Action نیز آیپی سرور لوکال خود را یعنی 192.168.1.132 وارد کرده و جهت دسترسی به دیتابس پورت را 3306 قرار دهید
3) تنظیمات سایت:
در سایت باید کانکشنی بسازیم که بتوانیم از طریق آیپی ولید، به دیتابیس پنل لوکال دسترسی داشته باشیم. برای این منظور کافی است پس از مشخص کردن مقادیر هاست، یوزر، پسورد و نام دیتابیس محلی که در بالا تعریف کردیم، دستورات زیر را اجرا کنیم:
<?php $mysql_host = "X.X.X.X"; //نشانی آی پی ولید $mysql_user = "user"; //نام کاربری که دربالا ساختیم $mysql_password = "pass"; //رمزی که دربالا ساختیم $mysql_database = "local_db"; //نام دیتابیس لوکال $dsn_local = "mysql:host=$mysql_host;dbname=$mysql_database; charset=utf8"; try { $pdoConnLocal = new PDO($dsn_local, $mysql_user, $mysql_password,); } catch (Exception $e) { echo "Connection failed: ".$e->getMessage(); } ?>
با اجرای این دستور، کانکشن از طریق آیپی ولید به میکروتیک متصل شده و بنابر تنظیمات میکروتیک به دیتابیس کامپیوتر محلی ما هدایت میشود.