Cài đặt phpMyAdmin trực tiếp trên Ubuntu Server
Giới thiệu
Nếu như bạn sử dụng phiên bản mới nhất của PHP thì việc cài đặt phpMyAdmin rất đơn giản, có thể xem ở bài viết này. Tuy nhiên, trong trường hợp sử dụng phiên bản PHP cũ hơn (như mình, phiên bản 7.4 để chạy OwnCloud trên Server test), thì nếu cài đặt trực tiếp có thể phát sinh lỗi. Vì vậy, bài này sẽ hướng dẫn cách cài đặt trực tiếp từ mã nguồn lên Ubuntu Server
Hệ thống
- Ubuntu Server
- LAMP trong đó PHP đang sử dụng phiên bản 7.4
Cài đặt
Gỡ sạch phiên bản phpMyAdmin đã cài đặt
sudo apt purge phpmyadmin -y
Về thư mục gốc của user, tải về phiên bản cần sử dụng (với PHP7.4 mình sử dụng phiên bản 4.9.10), giải nén, đổi tên và copy thư mục đã giải nén vào thư mục /var/www/ (thư mục này là tùy chọn, để dễ nhớ thì mình cho vào thư mục chứa web của Apache). Truy cập vào thư mục phpmyadmin ở /var/www/ đã copy vào bên trên.
cd ~
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.10/phpMyAdmin-4.9.10-all-languages.zip
unzip phpMyAdmin-4.9.10-all-languages.zip
sudo mv phpMyAdmin-4.9.10-all-languages phpmyadmin
sudo copy -R phpmyadmin/ /var/www/
cd phpMyAdmin-4.9.10-all-languages
Copy file cấu hình cho phpMyAdmin
cp config.sample.inc.php config.inc.php
Mở file cấu hình này ra, bạn tìm đến dòng
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
OK, phần này bạn cần nhập một chuỗi 32 ký tự. Đóng file này lại.
phpMyAdmin sử dụng phương thức xác thực cookie, cho phép bạn đăng nhập vào phpMyAdmin với tư cách là bất kỳ người dùng MariaDB hợp lệ nào với sự trợ giúp của cookie. Trong phương pháp này, mật khẩu người dùng MariaDB được lưu trữ và mã hóa bằng thuật toán Tiêu chuẩn mã hóa nâng cao (AES) trong một cookie tạm thời.
Trước đây, phpMyAdmin thay vì sử dụng mật mã Blowfish cho mục đích này và điều này vẫn được phản ánh trong tệp cấu hình của nó, đó là phần $cfg['blowfish_secret'] đã thấy ở trên.
Ở giữa các dấu nháy đơn, hãy nhập một chuỗi gồm 32 ký tự ngẫu nhiên. Đây không phải là cụm mật khẩu bạn cần nhớ, nó sẽ chỉ được thuật toán AES sử dụng nội bộ. Bạn có thể nhập ngẫu nhiên chuỗi này, tuy nhiên, ở đây mình sử dụng pwgen để tạo ngẫu nhiên chuỗi này.
Tải ứng dụng pwgen
sudo apt install pwgen
Ở thư mục phpMyAdmin vừa truy cập vào, sử dụng pwgen để tạo password
pwgen -s 32 1
Copy chuỗi mà chương trình tạo ra vào copy vào phần $cfg['blowfish_secret'] ở file config.inc.php (đã mở thử ở trên)
Tạo cấu hình phpMyAdmin cho Apache, tạo file
sudo nano /etc/apache2/conf-available/phpmyadmin-custom.conf
Và nhập nội dung sau
Alias /phpmyadmin /var/www/phpmyadmin
<Directory "/phpmyadmin /var/www/phpmyadmin">
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
Require all granted
</Directory>
Bật cấu hình này lên, khởi động lại Apache và MariaDB
sudo a2enconf phpmyadmin-custom
sudo systemctl restart apache2 mariadb
OK, giờ chúng ta đã cài đặt thành công phpMyAdmin từ mã nguồn rồi đó. Chúc các bạn thành công.
Mở rộng
Cấu hình để chỉ có bạn được phép truy cập vào phpMyAdmin
Sửa file
sudo nano /etc/apache2/conf-available/phpmyadmin-custom.conf
Bằng nội dung sau
Alias /phpmyadmin /var/www/phpmyadmin
<Directory "/phpmyadmin /var/www/phpmyadmin">
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
Require local
# Hoặc là thay "Require local" bằng "Require ip 127.0.0.1" trong đó 127.0.0.1 là địa chỉ IP của máy bạn
</Directory>
Sửa lỗi không truy cập được thư mục
Khi bạn cài xong, truy cập vào có thể phát sinh lỗi này
Thư mục $cfg['TempDir'] (./tmp/) không thể truy cập được. phpMyAdmin không thể tạo được cache cho giao diện và điều này sẽ làm chậm quá trình tải trang.
Để giải quyết cảnh báo trên, chúng ta làm như sau: Tạo thư mục "/var/www/phpmyadmin/tmp" và phân quyển để phpMyAdmin có thể ghi tạm bằng lệnh
sudo mkdir /var/www/phpmyadmin/tmp
sudo chmod 777 /var/www/phpmyadmin/tmp