Web Server với Nginx 1.10 + PHP 7.0 + MariaDB 10.0

Về MariaDB

  • MySQL được tạo ra từ năm 1995 bởi công ty MySQL AB do David Axmark, Allan LarssonMichael “Monty” Widenius sáng lập
  • Tháng giêng 2008, Sun Microsystem mua MySQL AB
  • Tháng 4 2009 Oracle thâu tóm Sun Microsystems, trở thành chủ sở hữu MySQL
  • Các nhà phát triễn ban đầu của MySQL lo ngại về tương lai của MySQL dưới thời Oracle, họ quyết định rời đi và tạo ra MariaDB trên cơ sở mã nguồn mở của MySQL.
  • So với MySQL, MariaDB có cú pháp câu lệnh giống và hầu như tương thích hoàn toàn (xem http://mariadb.com/about) nhưng tốc độ thực thi nhanh hơn và hoàn toàn miễn phí

Cài đặt

echo "Chuẩn bị cho cài đặt phiên bản stretch..."
echo "deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi" | sudo tee /etc/apt/sources.list.d/stretch.list
echo -e "Package: *\nPin: release n=jessie\nPin-Priority: 600" | sudo tee /etc/apt/preferences &> /dev/null
sudo apt-get update
echo
echo "1. Cài đặt PHP7.0..."
sudo apt-get install -t stretch -y php7.0 php7.0-curl php7.0-mcrypt php7.0-mysql php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip
echo
echo "2. Cài đặt MariaDB 10.0..."
sudo apt-get install -y mariadb-server
# read -p "   Mật khẩu root của MariaDB: " pwd
# mysqladmin --user=root password "$pwd"
# echo "UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';" | mysql -uroot -p${pwd}
echo
echo "3. Cài đặt Nginx 1.10..."
sudo apt-get install -t stretch -y nginx

Cấu hình

echo
echo "...Cấu hình nginx..."
sudo cp -f /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
cat <<EOF | sudo tee /etc/nginx/nginx.conf > /dev/null
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
 worker_connections 768;
}

http {
##
# Basic Settings
##
 sendfile on;
 tcp_nopush on;
 tcp_nodelay on;
 client_header_timeout 10;
 client_body_timeout 10;
 keepalive_timeout 10 10;
 send_timeout 10;
 types_hash_max_size 2048;
 server_names_hash_bucket_size 64;
 include /etc/nginx/mime.types;
 default_type application/octet-stream;

##
# SSL Settings
##
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
 ssl_prefer_server_ciphers on;

##
# Logging Settings
##
 access_log /var/log/nginx/access.log;
 error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
 gzip on;
 gzip_disable "msie6";
 gzip_min_length 1100;
 gzip_vary on;
 gzip_proxied any;
 gzip_buffers 16 8k;
 gzip_comp_level 6;
 gzip_http_version 1.1;
 gzip_types text/plain text/css applciation/json application/x-javascript text/xml application/xml
application/rss+xml text/javascript images/svg+xml application/x-font-ttf font/opentype
application/vnd.ms-fontobject;
##
# Virtual Host Configs
##
 include /etc/nginx/conf.d/*.conf;
 include /etc/nginx/sites-enabled/*;
}
EOF
echo "...Cấu hình web server..."
read -p "Nhập thư mục gốc của web server (Enter nếu không biết): " www
echo
[ -z $www ] && www='/usr/share/nginx/html'
chown -R www-data:www-data $www
find $www -type f -print0 | xargs -0 chmod 644
find $www -type d -print0 | xargs -0 chmod 755
read -p 'Nhập domain name của web server (Enter nếu không có): ' domain
echo
[ -z $domain ] && domain='_'
sudo cp -f /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
cat <<EOF | sudo tee /etc/nginx/sites-available/default > /dev/null
server {
 listen 80 default_server;
 listen [::]:80 default_server;
 root $www;
 index index.php index.html index.htm;
 server_name $domain;
 location / {
  try_files $uri $uri/ /index.php?$query_string =404;
 }
 location ~ \.php$ {
  include snippets/fastcgi-php.conf;
  fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 }
}
EOF

Cài đặt PHPMyadmin

echo "4. Cài đặt PhpMyAdmin..."
sudo apt-get install -t stretch -y phpmyadmin
ln -s /usr/share/phpmyadmin $www/ &> /dev/null

Khởi động lại Web Server: Câu lệnh rút gọn

Thêm vào cuối tập tin  ~/.bashrc

alias sudo='sudo '
alias webrestart='bash -c "/etc/init.d/nginx restart && /etc/init.d/php7.0-fpm restart"'

Lưu lại, sau đó refresh lại ~/.bashrc bằng câu lệnh

. ~/.bashrc

Xong rồi, khi nào cần khởi động lại web server ta chỉ cần gõ lệnh

sudo webrestart

Chú thích

  • Nếu domain name là _ thì nginx có thể chạy lỗi. Cho RPi một local domain sẽ giải quyết được lỗi.
  • Mặc định nginx chấp nhận soft link, không cần cấu hình thêm

Leave a Comment

Filed under Software

Leave a Reply