راهنمای کامل نصب MySQL + Nginx + phpMyAdmin روی Ubuntu 24.04
# راهنمای کامل نصب MySQL + Nginx + phpMyAdmin روی Ubuntu 24.04 ## مشخصات سیستم - Ubuntu 24.04.1 LTS - MySQL 8 - Nginx - PHP 8.3 - phpMyAdmin --- # 1) تنظیم مخازن Ubuntu روی Mirror آروان فایل سورس: ```bash nano /etc/apt/sources.list
محتوا:
deb http://mirror.arvancloud.ir/ubuntu noble main restricted universe multiverse deb http://mirror.arvancloud.ir/ubuntu noble-updates main restricted universe multiverse deb http://mirror.arvancloud.ir/ubuntu noble-backports main restricted universe multiverse deb http://mirror.arvancloud.ir/ubuntu noble-security main restricted universe multiverse
آپدیت:
apt clean apt update
بررسی سورسهای اضافی:
grep -R "ubuntu.com" /etc/apt/
در صورت وجود فایل اضافی:
mv /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
2) نصب MySQL
apt install mysql-server -y
بررسی وضعیت:
systemctl status mysql
بررسی نسخه:
mysql --version
3) تنظیم رمز برای root در MySQL
ورود:
mysql
تنظیم پسورد:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'YourStrongPassword!'; FLUSH PRIVILEGES; EXIT;
تست ورود:
mysql -u root -p
4) نصب Nginx
apt install nginx -y
فعالسازی:
systemctl enable nginx systemctl restart nginx
بررسی:
systemctl status nginx
5) نصب PHP و افزونهها
apt install php-fpm php-mysql php-cli php-mbstring php-zip php-gd php-json php-curl unzip -y
بررسی نسخه:
php -v
6) نصب phpMyAdmin
apt install phpmyadmin -y
هنگام نصب:
web server → چیزی انتخاب نشود
dbconfig-common → Yes
7) تنظیم phpMyAdmin روی Nginx
ساخت فایل:
nano /etc/nginx/conf.d/phpmyadmin.conf
محتوا:
server {
listen 80;
server_name pma.example.com;
root /usr/share/phpmyadmin;
index index.php;
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.pma_pass;
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
تست nginx:
nginx -t
ریلود:
systemctl reload nginx
8) فعالسازی Basic Auth برای phpMyAdmin
نصب ابزار:
apt install apache2-utils -y
ساخت یوزر:
htpasswd -c /etc/nginx/.pma_pass admin
رمز عبور وارد کنید.
9) اتصال دامنه
DNS:
A Record
مثال:
pma.example.com -> YOUR_SERVER_IP
10) نصب SSL رایگان Let's Encrypt
apt install certbot python3-certbot-nginx -y
دریافت SSL:
certbot --nginx -d pma.example.com
11) رفع خطای phpMyAdmin controluser
خطا:
mysqli::real_connect(): Access denied for user 'phpmyadmin'@'localhost'
ویرایش فایل:
nano /etc/phpmyadmin/config.inc.php
پیدا کردن:
$dbuser='phpmyadmin'; $dbpass='...'; $cfg['Servers'][$i]['controluser'] = $dbuser; $cfg['Servers'][$i]['controlpass'] = $dbpass;
کامنت کردن:
// $dbuser='phpmyadmin'; // $dbpass='...'; // $cfg['Servers'][$i]['controluser'] = $dbuser; // $cfg['Servers'][$i]['controlpass'] = $dbpass;
ریستارت سرویسها:
systemctl restart php8.3-fpm systemctl restart nginx
12) دستورات مفید
ریستارت nginx:
systemctl restart nginx
ریستارت PHP:
systemctl restart php8.3-fpm
ریستارت MySQL:
systemctl restart mysql
تست nginx:
nginx -t
بررسی پورتها:
ss -tulpn
نرمافزارهای نصب شده
MySQL 8
Nginx
PHP 8.3
phpMyAdmin
Certbot
Basic Auth
+ Date: Wed 13 May 2026 | Time: | By: Javad Nasrollahi
|