با رشد سایت یا برنامه شما، ممکن است سرور فعلی دیگر توان پاسخگویی به درخواستهای زیاد کاربران را نداشته باشد. اگر وبسرور و پایگاه داده روی یک سرور باشند، همه بار روی یک ماشین است و عملکرد کاهش مییابد. جدا کردن پایگاه داده و وبسرور روی دو سرور جداگانه باعث افزایش سرعت و امنیت میشود. در این راهنما، نحوه راهاندازی یک سرور MySQL از راه دور را به شما آموزش میدهیم. مثال ما وردپرس است، ولی این روش برای هر برنامهای که از MySQL استفاده میکند کاربرد دارد.
پیشنیازها
قبل از شروع باید موارد زیر آماده باشند:
در صورتی که هنوز سرور اوبونتوی خود را راهاندازی نکردهاید، ابتدا راهنمای کامل نصب Ubuntu 24 را ببینید.
-
دو سرور Ubuntu (مثلاً 20.04 یا 22.04) با یک کاربر غیرریشه و دسترسی sudo و فایروال UFW فعال.
-
یکی برای پایگاه داده (Database Server)
-
دیگری برای وبسرور (Web Server)
-
-
نصب MySQL روی سرور پایگاه داده.
-
نصب Nginx و PHP روی وبسرور.
-
پیشنهاد میشود گواهی TLS/SSL رایگان از Let’s Encrypt روی وبسرور نصب شود تا اتصالها رمزگذاری شوند.
مرحله ۱ — پیکربندی MySQL برای اتصال از راه دور
-
فایل تنظیمات MySQL را باز کنید:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfبخش [mysqld] را پیدا کرده و مقدار bind-address را به IP سرور پایگاه داده تغییر دهید تا اتصال از راه دور امکانپذیر شود.
bind-address = db_server_ipبرای امنیت، اتصالها را با SSL رمزگذاری کنید:
require_secure_transport = onکلیدها و گواهیهای SSL را ایجاد کنید:
sudo mysql_ssl_rsa_setup --uid=mysqlسرور MySQL را ریستارت کنید تا تغییرات اعمال شوند:
sudo systemctl restart mysqlپورت MySQL (3306) را در فایروال باز کنید:
sudo ufw allow mysqlمرحله ۲ — ایجاد پایگاه داده و کاربران
-
وارد MySQL شوید:
sudo mysql -u root -pیک پایگاه داده برای وردپرس بسازید:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;ایجاد کاربر محلی (فقط اتصال از سرور پایگاه داده) و دادن دسترسی:
CREATE USER 'local_db_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'local_db_user'@'localhost';ایجاد کاربر از راه دور (اتصال از سرور وب):
CREATE USER 'remote_user'@'web_server_ip' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'remote_user'@'web_server_ip';
FLUSH PRIVILEGES;بررسی کنید اتصالها از سرور وب موفق باشد و سایر سرورها که اجازه ندارند، نتوانند متصل شوند.
برای مهاجرت دادههای موجود به این پایگاه داده جدید، آموزش ایمپورت و اکسپورت دیتابیس در MySQL نیز کاربردی است.
مرحله ۳ — آمادهسازی وبسرور برای وردپرس
-
نصب اکستنشنهای PHP مورد نیاز وردپرس:
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zipریستارت PHP-FPM:
sudo systemctl restart php7.4-fpmپیکربندی Nginx برای مدیریت فایلهای استاتیک و هدایت درخواستها به index.php. نمونه بخش مهم فایل:
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}بررسی صحت فایلهای پیکربندی:
sudo nginx -t
sudo systemctl reload nginxمرحله ۴ — نصب وردپرس
-
دانلود آخرین نسخه وردپرس:
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انتقال فایلها به روت وبسرور:
sudo cp -a /tmp/wordpress/. /var/www/your_domain
sudo chown -R www-data:www-data /var/www/your_domainمرحله ۵ — تنظیمات فایل پیکربندی وردپرس
-
کلیدهای امنیتی را از WordPress Secret Key Generator دریافت و جایگزین کنید.
-
اطلاعات اتصال به پایگاه داده را وارد کنید:
define('DB_NAME', 'wordpress');
define('DB_USER', 'remote_user');
define('DB_PASSWORD', 'remote_user_password');
define('DB_HOST', 'db_server_ip');
define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);مرحله ۶ — راهاندازی وردپرس از طریق مرورگر
-
به آدرس
http://your_domain.com/wp-adminبروید. -
زبان سایت، نام سایت، نام کاربری و رمز عبور را تنظیم کنید.
-
وارد داشبورد شوید و سایت خود را شخصیسازی کنید.
