Chạy phpMyAdmin trên Nginx (LEMP) trong Debian Squeeze/Ubuntu 11.04
Quản Trị Mạng - Nginx là một máy chủ HTTP sử dụng ít tài nguyên hơn nhiều so với Apache trước đây, nó cung cấp các trang nhanh hơn, đặc biệt là các file tĩnh. Tuy nhiên gói phpMyAdmin từ kho lưu trữ Debian/Ubuntu đi kèm với các tập tin cấu hình cho Apache và Lighttpd, nhưng lại không dành cho Nginx. Vì vậy trong bài viết này chúng tôi sẽ hướng dẫn các bạn cách sử dụng gói phpMyAdmin trong nginx vhost trên hệ điều hành Debian Squeeze/Ubuntu 11.04.
Lưu ý
Ở đây chúng tôi sẽ sử dụng phpMyAdmin trong một vhost có tên www.example.com/example.com trong thư mục root /var/www/www.example.com/web. Bạn cần có một cài đặt LEMP đang hoạt động (bao gồm cả cài đặt MySQL).
>> Xem thêm: Hướng dẫn cài đặt Nginx với PHP5, PHP–FPM và MySQL trên CentOS 6.0
Ngoài ra, chúng ta cần chạy toàn bộ các bước hướng dẫn sau đây với quyền root. Do dó bạn cần thêm vào tất cả các dòng lệnh trong bài chuỗi sudo, hoặc trở thành root với lệnh:
sudo su
Cài đặt APC
APC là một PHP opcode cacher hoàn toàn miễn phí và mở cho bộ nhớ đệm giúp tối ưu hóa code php trung gian. Nó tương tự như các PHP opcode cacher khác, như eAccelerator và XCache. Chúng tôi khuyến cáo bạn nên cài đặt APC để tăng tốc độ tải trang PHP của mình.
Sử dụng dòng lệnh sau để tiến hành cài đặt APC:
apt-get install php-apc
Nếu bạn sử dụng PHP-FPM như FastCGI daemon của mình, hãy khởi động lại nó bằng lệnh sau:
/etc/init.d/php5-fpm restart
Nếu bạn sử dụng Lighttpd spawn-fcgi (chạy trên cổng 9000) như FastCGI daemon, cần đóng lại hoàn toàn và tạo một cái mới như sau:
netstat -tap
Một danh sách hiện ra như dưới đây, bạn chỉ cần chú ý tới PID của quá trình spawn-fcgi:
root@server1:~# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:sunrpc *:* LISTEN 734/portmap
tcp 0 0 *:www *:* LISTEN 2987/nginx
tcp 0 0 *:ssh *:* LISTEN 1531/sshd
tcp 0 0 *:57174 *:* LISTEN 748/rpc.statd
tcp 0 0 localhost.localdom:smtp *:* LISTEN 1507/exim4
tcp 0 0 localhost.localdom:9000 *:* LISTEN 1542/php5-cgi
tcp 0 0 localhost.localdo:mysql *:* LISTEN 1168/mysqld
tcp 0 52 server1.example.com:ssh 192.168.0.198:2462 ESTABLISHED 1557/0
tcp6 0 0 [::]:www [::]:* LISTEN 2987/nginx
tcp6 0 0 [::]:ssh [::]:* LISTEN 1531/sshd
tcp6 0 0 ip6-localhost:smtp [::]:* LISTEN 1507/exim4
root@server1:~#
Ở ví dụ này số PID là 1542, vì thế chúng tôi sẽ đóng nó lại như sau:
kill -9 1542
Tiếp theo tạo ra một quá trình spawn-fcgi mới:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
Cấu hình Vhost
Nếu bạn không được thiết lập sẵn nginx vhost, có thể làm theo cách dưới đây.
Tài liệu root của chúng tôi trên website www.example.com là /var/www/www.example.com/web. Nếu nó không tồn tại, có thể tạo ra bằng lệnh:
mkdir -p /var/www/www.example.com/web
Tiếp theo tạo một cấu hình nginx vhost cơ bản cho www.example.com trong đường dẫn /etc/nginx/sites-available/:
vi /etc/nginx/sites-available/www.example.com.vhost
server { listen 80; server_name www.example.com example.com; root /var/www/www.example.com/web; if ($http_host != "www.example.com") { rewrite ^ http://www.example.com$request_uri permanent; } index index.php index.html; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Make sure files with the following extensions do not get loaded by nginx because nginx would display the source code, and these files can contain PASSWORDS! location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_ { deny all; } # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). location ~ /\. { deny all; access_log off; log_not_found off; } location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ { expires max; log_not_found off; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Để kích hoạt vhost, chúng ta tạo một symlink (liên kết tượng trưng) cho nó từ đường dẫn /etc/nginx/sites-enabled/:
cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost
Cuối cùng nạp lại nginx để những thay đổi này có hiệu lực.
/etc/init.d/nginx reload
Cài đặt cấu hình phpMyAdmin + phpMyAdmin Vhost
Để cài đặt phpMyAdmin ta sử dụng lệnh sau:
apt-get install phpmyadmin
Lập tức bạn sẽ nhận được câu hỏi như sau:
Web server to reconfigure automatically: <-- Chọn none (bởi chỉ có apache2 và lighttpd mới có sẵn tùy chọn này)
Configure database for phpmyadmin with dbconfig-common? <-- No
Bây giờ bạn có thể tìm thấy phpMyAdmin trong đường dẫn /usr/share/phpmyadmin/. Tiếp theo chúng ta cần cấu hình vhost để Nginx có thể tìm thấy phpMyAdmin trong đường dẫn này.
Mở /etc/nginx/sites-available/www.example.com.vhost...
vi /etc/nginx/sites-available/www.example.com.vhost
… và thêm phần sau vào nội dung bên trong của server {}:
server { [...] location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } [...] }
Nạp lại Nginx
/etc/init.d/nginx reload
Lúc này bạn có thể mở trình duyệt của mình lên và nhập và địa chỉ http://www.example.com/phpmyadmin hoặc http://www.example.com/phpMyAdmin, sau đó tiến hành đăng nhập vào phpMyAdmin:
Nếu bạn sử dụng https thay vì http cho vhost, bạn nên thêm dòng fastcgi_param HTTPS on; vào cấu hình phpMyAdmin như sau:
vi /etc/nginx/sites-available/www.example.com.vhost
server { [...] location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_param HTTPS on; # <-- Dòng mới thêm vào
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}
[...]
}
Trường hợp bạn sử dụng cả http và https cho vhost, bạn cần thêm phần sau vào http {} trong /etc/nginx/nginx.conf:
vi /etc/nginx/nginx.conf
[...] http { [...] ## Detect when HTTPS is used map $scheme $fastcgi_https { default off; https on; } ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } [...]
Sau đó mở tập tin cấu hình vhost và thay dòng fastcgi_param HTTPS on; thành fastcgi_param HTTPS $fastcgi_https; để sử dụng phpMyAdmin cho cả yêu cầu http lẫn https:
vi /etc/nginx/sites-available/www.example.com.vhost
server { [...] location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_param HTTPS $fastcgi_https; # <-- add this line fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } [...] }
Cuối cùng là tải lại Nginx:
/etc/init.d/nginx reload
5 liên kết bạn có thể tham khảo thêm:
phpMyAdmin: http://www.phpmyadmin.net/
nginx: http://nginx.org/
nginx Wiki: http://wiki.nginx.org/
Debian: http://www.debian.org/
Ubuntu: http://www.ubuntu.com/

- Chạy Internet Explorer trong Ubuntu Linux
- Tùy chỉnh menu mặc định của Firefox trong Ubuntu 11.04
- Hướng dẫn cài đặt VMware Player trên Ubuntu 11.04
- Thiết lập ProFTPd với TLS trên Ubuntu 11.04
- Truy cập tới thư mục chia sẻ trong máy ảo Ubuntu 11.04
- Chạy SquirrelMail trên Nginx (LEMP) trong Debian Squeeze/Ubuntu 11.04
- Chạy SugarCRM Community Edition trên Nginx (LEMP) trong Debian Squeeze/Ubuntu 11.04
-
Cách xóa phân vùng bằng lệnh PowerShell
-
Đánh giá Linksys Velop: Hệ thống WiFi mesh linh hoạt, đầy đủ tính năng
-
5 cách quàng khăn đẹp chuẩn style Hàn Quốc, vừa ấm vừa giúp hack chiều cao tài tình
-
Cách lên đồ Kayle DTCL mùa 4.5, build Kayle Đao Phủ
-
Cách thay đổi bố cục danh sách ứng dụng trên Apple Watch
-
Cách thay đổi định dạng file ảnh chụp màn hình macOS
-
6 cách ngăn chặn Drive-by Download
-
8 mẹo SEO ảnh để tăng truy cập từ công cụ tìm kiếm
-
Samsung trình làng các mẫu thẻ nhớ SD EVO Plus và PRO Plus mới, đáp ứng nhu cầu đối với mọi tác vụ chuyên nghiệp
-
Cách cài ứng dụng từ xa lên điện thoại Android
-
Những chiếc tai nghe đắt nhất thế giới
-
Hướng dẫn tăng dung lượng ổ cứng ảo trên Virtualbox