همزمان با رشد برنامه یا وبسایت شما، ممکن است به نقطهای برسید که کانفیگ فعلی سرور شما دیگر پاسخگو نباشد. اگر سرور وب و دیتابیس خود را روی یک دستگاه میزبانی میکنید، میتوانید این دو عملکرد را از هم جدا کنید تا هر کدام بتوانند بر روی سختافزار خود کار کنند و بهاینترتیب، بار پاسخگویی به درخواستهای بازدیدکنندگان شما را به اشتراک بگذارند. در این راهنما، نحوه ساخت دیتابیس ریموت در اوبونتو را توضیح میدهیم تا بتوانید وب اپلیکیشن خود را به آن متصل کنید. اگرچه در این آموزش از وردپرس استفاده شده است، اما این تکنیک به طور گسترده برای هر برنامهای که توسط دیتابیس MySQL پشتیبانی میشود قابل استفاده است.
پیشنیازهای ساخت دیتابیس ریموت در اوبونتو
قبل از اینکه مراحل آموزش را دنبال کنید باید موارد زیر را آماده کرده باشید:
-
دو سرور مجازی لینوکس با توزیع اوبونتو
هر کدام از این دو سرور باید دارای یک کاربر غیر روت با امتیازات sudo و فایروال UFW فعال داشته باشد. یکی از این سرورها میزبان بکاند MySQL شما خواهد بود و در سراسر این راهنما به عنوان سرور دیتابیس نامیده میشود.
سرور دیگر به صورت ریموت به سرور دیتابیس شما متصل میشود و به عنوان وب سرور عمل میکند. این سرور در طول این راهنما به عنوان وب سرور نامیده میشود. برای مثال، وب سرور شما میتواند یک سرور مجازی آلمان یا سرور مجازی هلند باشد.
-
نصب MySQL
MySQL باید در سرور دیتابیس شما نصب شده باشد. در دومین گام از راهنمای ساخت دیتابیس ریموت در اوبونتو ما بر روی نصب MySQL متمرکز میشویم. بنابراین میتوانید مراحل نصب MySQL را بر روی سرور دیتابیس دنبال کنید.
-
گواهیهای TLS/SSL
این پیشنیاز اختیاری است اما قویا توصیه میشود. قبل از شروع کار مطمئن شوید که گواهیهای SSL و TLS بر روی وب سرور شما نصب شده است. شما باید یک نام دامنه بخرید و رکوردهای DNS را برای سرور خود تنظیم کنید. خوشبختانه این گواهیها به صورت رایگان قابل تهیه هستند.
آموزش ساخت دیتابیس ریموت در اوبونتو
در ادامه به مراحل ساخت دیتابیس ریموت در اوبونتو میپردازیم.
مرحله اول: پیکربندی MySQL برای Listen کردن اتصالات ریموت در سرور دیتابیس
پس از رسیدن به سقف عملکرد یک پیکربندی در یک دستگاه، ذخیره دادههای شخص در یک سرور جداگانه راه خوبی برای مقیاسپذیری بیدردسر محسوب میشود. این کار همچنین ساختار اساسی لازم برای تعادل بار و گسترش زیرساخت شما را در زمان بعدی فراهم میکند. پس از نصب MySQL، باید برخی از مقادیر پیکربندی را تغییر دهید تا امکان اتصال از کامپیوترهای دیگر فراهم شود.
بیشتر تغییرات پیکربندی سرور MySQL را میتوان در فایل mysqld.cnf انجام داد که به طور پیشفرض در دایرکتوری «/etc/mysql/mysql.conf.d/» ذخیره میشود. این فایل را با امتیازات روت روی سرور دیتابیس خود در ویرایشگر دلخواهتان باز کنید. در این آموزش از ویرایشگر nano استفاده میکنیم:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
این فایل به بخشهایی تقسیم میشود که با لیبلهایی در کروشه مربع ([ ]) مشخص میشوند. بخش با لیبل mysqld را پیدا کنید:
. . . [mysqld] . . .
در این بخش به دنبال پارامتری به نام «bind-address» بگردید. این پارامتر به نرمافزار دیتابیس میگوید که در کدام آدرس شبکه به اتصالات Listen کند.
به طور پیشفرض، این پارامتر بر روی مقدار «127.0.0.1» تنظیم شده است. این یعنی MySQL بهگونهای پیکربندی شده است که فقط به دنبال اتصالات محلی (Local) باشد. شما باید این مقدار را تغییر دهید تا به یک آدرس IP خارجی که در آن میتوان به سرور خودتان دسترسی داشته باشید اشاره کنید.
اگر هر دو سرور شما در یک دیتاسنتر با قابلیت شبکه خصوصی قرار دارند، از IP شبکه خصوصی سرور دیتابیس خود استفاده کنید. در غیراینصورت، میتوانید از آدرس IP عمومی سرور دیتابیس خود استفاده کنید.
[mysqld] . . . bind-address = db_server_ip
از آنجایی که از طریق اینترنت به پایگاه داده خود متصل خواهید شد، توصیه میشود برای ایمن نگه داشتن دادههای خود اتصالات رمزگذاریشده را در نظر بگیرید. اگر اتصال MySQL خود را رمزگذاری نکنید، هر کسی در شبکه میتواند اطلاعات حساس را بین وب و سرورهای دیتابیس شما شناسایی کند. برای رمزگذاری اتصالات MySQL، خط زیر را بعد از خط bind-address که بهروزرسانی کردهاید اضافه کنید:
[mysqld] . . . require_secure_transport = on . . .
پس از اتمام کار فایل را ذخیره کرده و ببندید. اگر از ویرایشگر نانو استفاده میکنید، این کار با فشردن کلیدهای ترکیبی CTRL+X، سپس Y و در نهایت ENTER قابل انجام است.
برای اینکه اتصالات SSL به خوبی کار کنند، باید چند کلید و گواهی ایجاد کنید. MySQL از دستوری برخوردار است که به طور خودکار این موارد را تنظیم میکند. دستور زیر را اجرا کنید تا فایلهای لازم را ایجاد کند. همچنین این خط با تعیین UID کاربر MySQL، آنها را توسط سرور MySQL قابل خواندن میکند:
sudo mysql_ssl_rsa_setup --uid=mysql
برای وادار کردن MySQL به بهروزرسانی پیکربندی و خواندن اطلاعات SSL جدید، پایگاه داده را ریستارت کنید:
sudo systemctl restart mysql
برای تایید اینکه سرور اکنون به اینترفیس خارجی Listen میکند، دستور ss را به صورت زیر اجرا کنید:
sudo ss -plunt | grep mysqld Output tcp LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* users:(("mysqld",pid=4053,fd=22)) tcp LISTEN 0 151 db_server_ip:3306 0.0.0.0:* users:(("mysqld",pid=4053,fd=24))
ss آمار مربوط به سیستم شبکه سرور شما را پرینت میکند. این خروجی نشان میدهد فرایندی به نام mysqld به «db_server_ip» در پورت 3306 (پورت استاندارد MySQL) متصل شده است و تایید میکند که سرور در حال Listen کردن اینترفیس مناسب است.
سپس، آن پورت را در فایروال باز کنید تا امکان عبور ترافیک میسر شود:
sudo ufw allow mysql
اینها تمام تغییرات لازم در پیکربندی هستند که باید در MySQL ایجاد کنید. در مرحله بعد، یک دیتابیس و چند پروفایل کاربر را ایجاد میکنید که یکی از آنها برای دسترسی ریموت به سرور مورد استفاده قرار میگیرد.
مرحله دوم: راهاندازی یک دیتابیس وردپرس و اطلاعات ورود ریموت در سرور دیتابیس
حتی اگر MySQL در حال حاضر به یک IP آدرس خارجی Listen میکند، اما هیچ کاربر یا دیتابیسی که به صورت ریموت فعال شده باشد پیکربندی نشده است. یک پایگاه داده برای وردپرس و یک جفت کاربر که میتوانند به آن دسترسی داشته باشند را ایجاد کنید.
با اتصال به MySQL به عنوان کاربر روت MySQL کار خود را شروع کنید:
sudo mysql
توجه) اگر احراز هویت با رمزعبور را فعال کردهاید، همانطور که در مرحله سوم آموزش پیشنیاز MySQL توضیح داده شده است، برای دسترسی به شل MySQL باید از دستور زیر استفاده کنید:
mysql -u root -p
پس از اجرای این دستور، رمزعبور روت MySQL از شما درخواست میشود و پس از وارد کردن آن، یک دستور جدید «<mysql» دریافت میکنید.
از طریق دستور MySQL، یک دیتابیس ایجاد کنید که رودپرس از آن استفاده کند. اختصاص یک نام قابل تشخیص به این دیتابیس به شناسایی راحتتر آن کمک میکند. در این آموزش یک دیتابیس با نام wordpress ایجاد کردیم:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
اکنون که دیتابیس خود را ایجاد کردهاید، در مرحله بعد باید یک جفت کاربر ایجاد کنید. یک کاربر فقط محلی (Local) و همچنین یک کاربر ریموت متصل به آدرس IP وب سرور ایجاد کنید.
ابتدا کاربر محلی (local_db_user) خود را ایجاد کنید و کاری کنید که این اکانت فقط با تلاشهای اتصال محلی از نوع localhost مطابقت داشته باشد.
CREATE USER 'local_db_user'@'localhost' IDENTIFIED BY 'password';
سپس، به این اکانت اجازه کامل دسترسی به دیتابیس وردپرس بدهید:
GRANT ALL PRIVILEGES ON wordpress.* TO 'local_db_user'@'localhost';
این کاربر اکنون میتواند هر عملیاتی را در دیتابیس وردپرس انجام دهد، اما این اکانت نمیتواند به صورت ریموت استفاده شود، زیرا فقط با اتصالات دستگاه محلی (Local) مطابقت دارد. با در نظر گرفتن این موضوع، یک اکانت همراه ایجاد کنید که منحصرا با اتصالات وب سرور شما مطابقت داشته باشد. برای این کار به آدرس IP وب سرور خود نیاز دارید.
لطفا توجه داشته باشید که باید از یک آدرس IP استفاده کنید که از همان شبکهای استفاده میکند که در فایل «mysqld.cnf» پیکربندی کردهاید. این یعنی اگر یک IP شبکه خصوصی در فایل «mysqld.cnf» مشخص کردهاید، باید IP خصوصی وب سرور خود را در دو دستور زیر وارد کنید. اگر MySQL را برای استفاده از اینترنت عمومی پیکربندی کردهاید، باید آن را با آدرس IP عمومی وب سرور مطابقت دهید.
CREATE USER 'remote_user'@'web_server_ip' IDENTIFIED BY 'password';
پس از ایجاد اکانت ریموت خود، همان امتیازاتی که به کاربر محلی داده بودید را به به این اکانت نیز اختصاص دهید:
GRANT ALL PRIVILEGES ON wordpress.* TO 'remote_user'@'web_server_ip';
در نهایت، امتیازات را Flush کنید تا MySQL امتیازات جدید را در نظر بگیرد:
FLUSH PRIVILEGES;
سپس با وارد کردن دستور «exit» میتوانید از پرامپت MySQL خارج شوید:
exit
اکنون که یک دیتابیس جدید و یک کاربر فعال ریموت را پیکربندی کردهاید، میتوانید آزمایش کنید که آیا میتوانید از وب سرور خود به دیتابیس متصل شوید یا خیر.
مرحله سوم: تست اتصالات ریموت و محلی
قبل از ادامه آموزش ساخت دیتابیس ریموت بهتر است بررسی کنید که میتوانید هم از دستگاه محلی (سرور دیتابیس خود) و هم از وب سرور خود به دیتابیس متصل شوید یا خیر.
ابتدا اتصال محلی از سرور دیتابیس خود را با تلاش برای ورود به اکانت جدیدتان آزمایش کنید:
mysql -u local_db_user -p
وقتی از شما خواسته شد، رمزعبوری را که برای این اکانت تنظیم کرده بودید وارد کنید.
اگر پرامپت MySQL را دریافت کردید، اتصال محلی با موفقیت انجام شده است. میتوانید با تایپ کردن دوباره دستور exit خارج شوید:
exit
سپس برای آزمایش اتصالات ریموت به وب سرور خود وارد شوید:
ssh remote_user@web_server_ip
برای دسترسی به دیتابیس ریموت، باید برخی از ابزارهای کلاینت MySQL را روی وب سرور خود نصب کنید. اگر اخیرا این کار را نکردهاید، قبل از هر چیز کش بسته محلی خود را بهروز کنید:
sudo apt update
سپس ابزارهای کلاینت MySQL را نصب کنید:
sudo apt install mysql-client
پس از این، با استفاده از دستور زیر به سرور دیتابیس خود متصل شوید:
mysql -u remote_user -h db_server_ip -p
مجددا، باید مطمئن شوید که از آدرس IP صحیح برای سرور دیتابیس استفاده میکنید. اگر MySQL را برای Listen کردن در شبکه خصوصی پیکربندی کردهاید، IP شبکه خصوصی دیتابیس خود را وارد کنید. در غیراینصورت، آدرس IP عمومی سرور دیتابیس خود را وارد کنید.
از شما رمزعبور اکانت «remote_user» درخواست میشود. پس از وارد کردن رمزعبور، اگر همهچیز طبق انتظار کار کند به پرامپت MySQL منتقل میشوید. با دستور زیر بررسی کنید که اتصال از SSL استفاده میکند یا خیر:
status
اگر اتصال واقعا از SSL استفاده میکند، خط «SSL:» این موضوع را نشان میدهد. در مثال زیر میتوانید نمونه خروجی را مشاهده کنید:
Output -------------- mysql Ver 8.0.29-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu)) Connection id: 14 Current database: Current user: remote_user@web_server_ip SSL: Cipher in use is TLS_AES_256_GCM_SHA384 Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 8.0.29-0ubuntu0.20.04.2 (Ubuntu) Protocol version: 10 Connection: db_server_ip via TCP/IP Server characterset: utf8mb4 Db characterset: utf8mb4 Client characterset: utf8mb4 Conn. characterset: utf8mb4 TCP port: 3306 Binary data as: Hexadecimal Uptime: 1 hour 8 min 28 sec Threads: 2 Questions: 69 Slow queries: 0 Opens: 206 Flush tables: 3 Open tables: 125 Queries per second avg: 0.016 --------------
پس از تایید اینکه میتوانید به صورت ریموت متصل شوید، با استفاده از دستور زیر از پرامپت خارج شوید:
exit
شما دسترسی محلی و دسترسی از وب سرور را تایید کردهاید، اما هنوز تایید نکردهاید که سایر اتصالات نیز عبور میکنند یا رد میشوند. برای بررسی بیشتر، همین کار را از سرور سومی که حساب کاربری خاصی برای آن پیکربندی نشده است انجام دهید تا مطمئن شوید که به یک سرور دیگر اجازه دسترسی داده نشده است.
توجه داشته باشید که قبل از اجرای دستور زیر برای تلاش به منظور اتصال، ممکن است مجبور شوید برنامههای کلاینت MySQL را مانند قبل نصب کنید:
mysql -u wordpressuser -h db_server_ip -p
این دستور نباید با موفقیت کامل شود و باید خطایی مشابه زیر را برگرداند:
Output ERROR 1130 (HY000): Host '203.0.113.12' is not allowed to connect to this MySQL server
این خطا مورد انتظار است، زیرا شما یک کاربر MySQL ایجاد نکردهاید که مجاز به اتصال از این سرور باشد. همچنین این خطا باید اتفاق بیفتد تا مطمئن باشید که سرور دیتابیس شما دسترسی کاربران غیرمجاز به سرور MySQL شما را ممنوع میکند.
پس از آزمایش موفقیتآمیز اتصال ریموت خود، میتوانید به نصب وردپرس روی وب سرور ادامه دهید.
مرحله چهارم: آمادهسازی وب سرور برای نصب وردپرس
اگر مراحل پیشنیاز را به درستی انجام داده باشید، در حال حاضر Nginx و PHP باید نصب شده باشد. وردپرس و بسیاری از افزونههای آن، از اکستنشنهای اضافی PHP استفاده میکنند. قبل از نصب وردپرس بر روی وب سرور خود، سرور را با نصب چند مورد از این اکستنشنهای PHP برای استفاده در وردپرس آماده کنید:
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
توجه: هر افزونه وردپرس مجموعهای از الزامات خاص خود را دارد. برخی از افزونهها ممکن است به نصب بستههای اکستنشن PHP نیاز داشته باشند. اسناد افزونه خود را بررسی کنید تا پیشنیازهای PHP آن را شناسایی کنید. اگر این بستهها در دسترس باشند مانند مثال قبلی میتوان آنها را با دستور apt نصب کرد.
پس از اتمام نصب اکستنشنها، پروسه PHP-FPM را ریستارت کنید تا پردازشگر PHP در حال اجرا بتواند از ویژگیهای جدید که به تازگی نصب شدهاند استفاده کند:
sudo systemctl restart php7.4-fpm
در مرحله بعد، باید چند مورد از تنظیمات را در فایلهای سرور بلاک Nginx خود انجام دهید. براساس پیشنیازهایی که در ابتدای مقاله معرفی شد، باید یک فایل پیکربندی برای سایتتان در دایرکتوری «/etc/nginx/sites-available/» موجود باشد. همچنین این فایل باید بهگونهای پیکربندی شود تا به نام دامنه یا آدرس IP سرور شما پاسخ دهد و توسط گواهی TLS/SSL محافظت شود.
در این راهنمای ساخت دیتابیس ریموت در اوبونتو از دایرکتوری « /etc/nginx/sites-available/your_domain» به عنوان مثال استفاده شده است. در صورت لزوم مسیر فایل پیکربندی خود را با این دایرکتوری جایگزین کنید.
علاوهبراین، در این مثال «/var/www/your_domain» به عنوان دایرکتوری روت نصب وردپرس استفاده خواهد شد.
توجه: ممکن است شما در حال استفاده از دایرکتوری «/etc/nginx/sites-available/default» در پیکربندی پیشفرض با دایرکتوری «/var/www/html» به عنوان document root خود باشید. اگر پس از خرید VPS میخواهید فقط یک وبسایت را بر روی آن میزبانی کنید، استفاده از دایرکتوری منطقی است. در غیراینصورت، بهتر است پیکربندی لازم را به تکههای منطقی (یک فایل به ازای هر وبسایت) تقسیم کنید.
فایل سرور بلاک سایت خود را با استفاده از ویرایشگر متن دلخواهتان باز کنید. در این مثال ما از ویرایشگر نانو استفاده میکنیم:
sudo nano /etc/nginx/sites-available/your_domain
در این سرور بلاک، چند بلاک مکانی اضافه کنید. با ایجاد بلاکهای مکانی با تطابق دقیق برای درخواستهای مربوط به «/favicon.ico» و «/robots.txt» کار را آغاز کنید. نیازی به لاگ شدن درخواستها در این دو مکان وجود ندارد.
برای بلاک کردن این دو بخش شما از یک Expression مکان معمولی برای مطابقت با هر درخواستی برای فایلهای استاتیک استفاده میکنید، گزارشگیری (Logging) را برای این درخواستها خاموش میکنید و آنها را به عنوان «Highly Cacheable» علامتگذاری میکنید، زیرا این منابع معمولا منابع گرانی برای مدیریت هستند. میتوانید این دایرکتوری فایلهای استاتیک را طوری تنظیم کنید که حاوی هر پسوند فایل دیگری باشد که سایت شما ممکن است از آنها استفاده کند:
server { server_name your_domain www.your_domain; root /var/www/your_domain; index index.html index.htm index.php; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { log_not_found off; access_log off; allow all; } location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ { expires max; log_not_found off; } . . . }
در داخل مکان/بلاک موجود، میتوانید لیست try_files را تنظیم کنید. ابتدا، با قرار دادن اولین خط با علامت هشتگ (#) تنظیمات پیشفرض را به وضعیت کامنت تبدیل کنید. سپس خطوط زیر را اضافه کنید:
server { . . . location / { #try_files $uri $uri/ =404; try_files $uri $uri/ /index.php$is_args$args; } . . . }
با این خط جدید در پیکربندی، به جای برگرداندن خطای 404 به عنوان گزینه پیشفرض، کنترل از طریق آرگومانهای درخواست به فایل «index.php» منتقل میشود.
در مجموع، قسمت بالای فایل شما باید مشابه این باشد:
server { server_name your_domain www.your_domain; root /var/www/your_domain; index index.html index.htm index.php; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { log_not_found off; access_log off; allow all; } location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ { expires max; log_not_found off; } location / { # try_files $uri $uri/ =404; try_files $uri $uri/ /index.php$is_args$args; } ... }
پس از اتمام کار، فایل را ذخیره کرده و ببندید.
پیکربندی خود را از نظر وجود خطاهای سینتکس بررسی کنید. این کار از طریق دستور زیر قابل انجام است:
sudo nginx -t
اگر هیچ خطایی گزارش نشد، با دستور زیر Nginx را بازخوانی (Reload) کنید:
sudo systemctl reload nginx
پس از آمادهسازی وب سرور، حالا شما آماده هستید تا وردپرس را نصب کنید.
مرحله پنجم: نصب وردپرس بر روی وب سرور
برای نشان دادن قابلیتهای سرور MySQL جدید خود با قابلیت اتصال ریموت، مراحل نصب و پیکربندی وردپرس (سیستم مدیریت محتوای محبوب) را روی وب سرور انجام خواهید داد. پس از پیکربندی نرمافزار سرور خود، میتوانید وردپرس را دانلود کنید. به دلایل امنیتی، همیشه توصیه میشود که آخرین نسخه وردپرس را مستقیما از وبسایت این پروژه دریافت کنید.
ابتدا به یک دایرکتوری قابل نوشتن بروید (یک پوشه موقت مانند /tmp توصیه میشود) :
cd /tmp
این دستور دایرکتوری کاری شما را به پوشه موقت تغییر میدهد. سپس دستور زیر را وارد کنید تا آخرین نسخه وردپرس را به صورت فایل فشرده دانلود کنید:
curl -LO https://wordpress.org/latest.tar.gz
فایل فشرده را برای ایجاد ساختار دایرکتوری وردپرس استخراج کنید:
tar xzvf latest.tar.gz
شما این فایلها را به صورت لحظهای به روت خود منتقل خواهید کرد، اما قبل از انجام این کار، نام فایل پیکربندی نمونه را به نام فایلی که وردپرس میخواند تغییر دهید:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
کل محتویات دایرکتوری را در document root خود کپی کنید. فلگ -a تضمین میکند که مجوزهای شما حفظ میشوند و یک نقطه در انتهای دایرکتوری منبع شما قرار میگیرد تا نشان دهد همهچیز در دایرکتوری باید کپی شود (از جمله فایلهای پنهان) :
sudo cp -a /tmp/wordpress/. /var/www/your_domain
اکنون که فایلهای شما در جای مناسب قرار گرفتهاند، مالکیت را به کاربر و گروه «www-data» اختصاص دهید. این همان کاربر و گروهی است که Nginx را اجرا میکند و Nginx باید بتواند فایلهای وردپرس را بخواند و بنویسد تا امکان سرویسدهی به وبسایت و بهروزرسانی خودکار را داشته باشد:
sudo chown -R www-data:www-data /var/www/your_domain
فایلهای وردپرس شما اکنون در document root سرور هستند و مالکیت صحیحی دارند. حالا همهچیز برای پیکربندی وردپرس آماده است.
مرحله ششم: تنظیم فایل پیکربندی وردپرس
هنگامی که فایل پیکربندی وردپرس را باز میکنید، با تنظیم برخی از کلیدهای مخفی برای تامین امنیت فرایند نصب کار را شروع کنید. وردپرس یک مولد امن برای این مقادیر فراهم میکند تا مجبور نباشید به تنهایی مقادری را ایجاد کنید. این مقادیر فقط به صورت داخلی استفاده میشود، بنابراین داشتن مقادیر پیچیده و امن در اینجا با قابلیت استفاده آسیبی نمیرساند.
برای دریافت مقادیر ایمن از مولد کلید مخفی وردپرس دستور زیر را تایپ کنید:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
مقادیر منحصربهفردی را دریافت خواهید کرد که مشابه خروجی زیر است:
هشدار: مهم است که هر بار مقادیر منحصربهفرد خود را درخواست کنید. مقادیر نشاندادهشده در اینجا را کپی نکنید!
Output define('AUTH_KEY', 'L4|2Yh(giOtMLHg3#] DO NOT COPY THESE VALUES %G00o|te^5YG@)'); define('SECURE_AUTH_KEY', 'DCs-k+MwB90/-E(=!/ DO NOT COPY THESE VALUES +WBzDq:7U[#Wn9'); define('LOGGED_IN_KEY', '*0kP!|VS.K=;#fPMlO DO NOT COPY THESE VALUES +&[%8xF*,18c @'); define('NONCE_KEY', 'fmFPF?UJi&(j-{8=$- DO NOT COPY THESE VALUES CCZ?Q+_~1ZU~;G'); define('AUTH_SALT', '@qA7f}2utTEFNdnbEa DO NOT COPY THESE VALUES t}Vw+8=K%20s=a'); define('SECURE_AUTH_SALT', '%BW6s+d:7K?-`C%zw4 DO NOT COPY THESE VALUES 70U}PO1ejW+7|8'); define('LOGGED_IN_SALT', '-l>F:-dbcWof%4kKmj DO NOT COPY THESE VALUES 8Ypslin3~d|wLD'); define('NONCE_SALT', '4J(<`4&&F (WiK9K#] DO NOT COPY THESE VALUES ^ZikS`es#Fo:V6');
اینها خطوط پیکربندی هستند که میتوانید مستقیما در فایل پیکربندی خود جایگذاری کنید تا کلیدهای امن را تنظیم کنید. خروجی دریافتی را اکنون کپی کنید.
فایل پیکربندی وردپرس را باز کنید:
sudo nano /var/www/your_domain/wp-config.php
بخشی را پیدا کنید که حاوی مقادیر نمونه برای تنظیمات است:
. . . define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); . . .
آن خطوط را حذف کرده و مقادیری که از خط فرمان کپی کرده بودید را Paste کنید:
. . . define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); . . .
سپس باید چند مورد از تنظیمات اتصال دیتابیس را در ابتدای فایل تغییر دهید. شما باید نام دیتابیس، کاربر دیتابیس و رمزعبور مرتبط را که در MySQL پیکربندی شده است تنظیم کنید.
اطلاعات اتصال را برای دیتابیس ریموت خود وارد کنید. به یاد داشته باشید که از همان آدرس IP و اطلاعات ورودی که قبلا هنگام آزمایش دیتابیس ریموت خود استفاده کردهاید بهره ببرید:
. . . /** The name of the database for WordPress */ define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'remote_user'); /** MySQL database password */ define('DB_PASSWORD', 'remote_user_password'); /** MySQL hostname */ define('DB_HOST', 'db_server_ip'); . . .
و در نهایت، در ادامهی خط ;define( ‘DB_COLLATE’, ” این خط هایلایتشده را اضافه کنید. این خط به وردپرس میگوید برای دسترسی به دیتابیس MySQL شما از یک اتصال SSL استفاده کند:
... define( 'DB_COLLATE', '' ); define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL); ...
فایل را ذخیره کرده و ببندید.
با تنظیم پیکربندی، وردپرس نصب شده است و در مرحلهی بعدی باید از طریق رابط تحت وب وردپرس، تنظیمات اضافی را انجام دهید.
مرحله هفتم: راهاندازی وردپرس از طریق رابط وب
وردپرس یک فرایند راهاندازی مبتنیبر وب دارد. با قدم گذاشتن در این فرایند، وردپرس چند سوال از شما میپرسد و تمام جداول مورد نیازتان را در دیتابیس نصب میکند. در اینجا، با مراحل اولیه راهاندازی وردپرس آشنا میشوید. از این مراحل میتوان به عنوان نقطه شروع برای ساخت وبسایت سفارشی که از دیتابیس ریموت شما استفاده میکند بهره برد.
نام دامنه (یا آدرس Ip عمومی) مرتبط با وب سرور خود را همراه با «/wp-admin» در نوار آدرس مرورگر وب دلخواهتان وارد کنید:
http://your_domain.com/wp-admin
از شما خواسته میشود زبانی را که میخواهید استفاده کنید انتخاب کنید:
در مرحلهی بعد به صفحه تنظیمات اصلی خواهید رسید.
یک نام برای سایت وردپرسی خود انتخاب کرده و یک نام کاربری نیز مشخص کنید. توصیه میشود از یک نام منحصربهفرد استفاده کنید و از نامهای رایج مانند «admin» برای نام کاربری دوری کنید. رمزعبور قوی به طور خودکار تولید میشود. این رمزعبور را ذخیره کنید یا از یک رمزعبور قوی جایگزین استفاده کنید.
آدرس ایمیل خود را وارد کرده و انتخاب کنید که آیا میخواهید موتورهای جستوجو را از ایندکس کردن سایت خود منع کنید یا خیر:
هنگامی که اطلاعات خود را ارسال کردید، باید با استفاده از حساب کاربری که ایجاد کردهاید به رابط مدیریت وردپرس وارد شوید. سپس به داشبوردی هدایت خواهید شد که در آن میتوانید سایت جدید وردپرس خود را سفارشی کنید.
جمعبندی
با دنبال کردن آموزش ساخت دیتابیس ریموت در اوبونتو شما موفق شدهاید تا یک دیتابیس MySQL را برای پذیرش اتصالات محاظفتشده با SSL از فرایند ریموت نصب وردپرس راهاندازی کنید. دستورات و تکنیکهای استفادهشده در این راهنما برای هر برنامه وب که هر زبان برنامهنویسی نوشته شده قابل اجرا است، اما جزئیات پیادهسازی ممکن است برای هر کدام متفاوت باشد. برای اطلاعات بیشتر به مستندات دیتابیس برنامه یا زبان خود مراجعه کنید.