Nginx được đánh giá nhanh, nhẹ so với các webserver thông dụng như Apache, Lighttpd … Cách thức cấu hình websever của Nginx cũng rất đơn giản.
1. Cài đặt nginx, php
sudo su apt-get install -y nginx php5-common php5-cli php5-fpm php5-curl
Nếu không cần sử dụng PHP trên dòng lệnh, không cần cài đặt php-cli
2. Cấu hình
Mở file cấu hình /etc/nginx/sites-available/default,
- tìm đến dòng root /user/share/nginx/www, đổi thành tên thư mục mà ta muốn dùng làm gốc của web, thí dụ /mnt/www
- thêm index.php sau từ khóa index ở dòng kế tiếp
root /mnt/www; index index.php index.html index.htm
- thư mục www và các file bên trong phải có thuộc tính 755, dùng lệnh
chmod -R 755 /mnt/www
- sửa nhóm location / đổi index.html thành index.php
try_files $uri $uri/ /index.php;
- tìm đến dòng location ~ \.php$ sửa lại như sau (6 dòng)
location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
Nếu đã cài đặt php-cli, cho php-cli dùng chung cấu hình với php-fpm
cd /etc/php5/cli sudo mv php.ini php.ini.backup sudo ln -s ../fpm/php.ini
3. Câu lệnh khởi động lại webserver
service php5-fpm restart service nginx restart
4. Chạy một ứng dụng web
Copy mã nguồn của ứng dụng vào thư mục /usr/share/nginx/www hay một thư mục con có tên test. Mở từ browser dòng địa chỉ tương tự như
http://IP_của_RPI/test/index.php
5. Cài đặt MySQL
apt-get install mysql-server php5-mysql
6. phpmyadmin
Cài đặt theo nhu cầu qua dòng lệnh
apt-get install phpmyadmin
- Khi phpmyadmin hỏi cấu hình theo apache hay lighttp, bấm phím tab và enter để không chọn mục nào cả
- Sau khi cài đặt xong, mở /etc/nginx/sites-available/default, thêm sau nhóm location ~ \.php các dòng
location ~ \.php$ {
...
}
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
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;
}
- Khởi động lại webserver
- Mở phpmyadmin qua địa chỉ http://ip_rpi/phpmyadmin
- Lưu ý rằng ứng dùng này cần khá nhiều tài nguyên hệ thống
Script cài đặt webserver với nginx, php5
#!/bin/bash echo '1. Cài đặt web server...' sudo apt-get install -y nginx php5-common php5-cli php5-fpm php5-curl echo echo '2. Cấu hình Nginx, PHP...' [ -f /etc/nginx/sites-available/default.orig ] && sudo cp -f /etc/nginx/sites-available/default.orig /etc/nginx/sites-available/default || sudo cp -f /etc/nginx/sites-available/default /etc/nginx/sites-available/default.orig sudo sed -i -r 's|root /var/www/html\;|root /mnt/www\;|;s|index index.html |index index.php index.html |;s|#(location ~ \\.php)|\1|;s|#(\s+include snippets/fastcgi-php.conf\;)|\1|' /etc/nginx/sites-available/default sudo sed -i -z -r 's|#(\s+fastcgi_pass unix:/var/run/php5-fpm.sock;\n\s+)#\}|\1\}|' /etc/nginx/sites-available/default cd /etc/php5/cli sudo mv -f php.ini php.ini.backup sudo ln -s ../fpm/php.ini read -n 1 -s -p 'Cài đặt ssl cho nginx [Y/n]?' answer echo if [ -z $answer ] || [ "${answer,}" = 'y' ]; then echo '3. Cài đặt ssl cho nginx...' sudo mkdir /etc/nginx/ssl sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt sudo sed -i -r 's|\t# (listen 443 ssl default_server\;)|\t\1|;s|\t# (listen \[::\]:443 ssl default_server\;)|\t\1\n\tssl_certificate /etc/nginx/ssl/nginx.crt\;\n\tssl_certificate_key /etc/nginx/ssl/nginx.key\;|' /etc/nginx/sites-available/default fi sudo service nginx restart
Chú thích
Khi dùng apt-get install, đôi khi gặp thông báo lỗi
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Khi đó chạy lệnh
apt-get update --fix-missing
rồi lập lại lệnh cài đặt vừa rồi.