Tài liệu này mô tả một bộ cài đặt thay thế tương thích với "LAMP" stack (Linux, Apache, MySQL, và PHP), được gọi là "LEMP." LEMP stack là một nhóm các phần mềm có thể được sử dụng để phục vụ các trang web động và các ứng dụng web. Đây là một từ viết tắt mô tả một hệ điều hành Linux, với một máy chủ web Nginx. Các dữ liệu được lưu trữ trong MySQL và được xử lý bằng PHP. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn làm thế nào để cài đặt một LEMP stack trên một máy chủ Centos 7. Trước khi bạn bắt đầu bạn cần làm các công việc sau: Kiểm tra hostname Mã: hostname hostname -f Cập nhập hệ thống Mã: yum update Nginx Web Server Cài đặt và cấu hình 1. Cài đặt từ gói EPEL: Quá trình cài đặt như sau: 1. Cài đặt gói EPEL Mã: yum install epel-release 2. Cài đặt nginx bằng yum Mã: yum install nginx 3. Tiến hành khởi động và cho phép nginx chạy lúc khởi động hệ thống Mã: systemctl start nginx.service systemctl enable nginx.service Cấu hình nginx Virtual Hosting Mở file cấu hình lên: Mã: vim /etc/nginx/nginx.conf Mã: server { listen 80; server_name www.example.com example.com; access_log /var/www/example.com/logs/access.log; error_log /var/www/example.com/logs/error.log; location / { root /var/www/example.com/public_html; index index.html index.htm index.php; } } Ở đây ta cần quan tâm đến dòng server_name và dòng root. Thay thế dòng server_name với tên miền của bạn cần sử dụng, còn dòng root nơi bạn khai báo nơi để dữ liệu trang web của bạn. Theo cấu hình trên, tạo tạo ra thư mục như sau: Mã: mkdir -p /var/www/example.com/public_html Tạo 3 thư mục chứa dữ liệu liên quan virtual host Mã: mkdir -p /etc/nginx/site-available mkdir -p /etc/nginx/site-enable mkdir -p /etc/nginx/webdata Thư mục site-available được dùng để chứa config nginx cho từng domain Thư mục site-enable được dùng để kích hoạt cho domain chạy được nginx thông qua liên kết cứng - giữa site-available, chỉ những domain liên kết cứng mới được quyền chạy Thư mục webdata được dùng chứa source của domain Thêm vào file cấu hình nginx.conf như sau: Mã: vim /etc/nginx/nginx.conf Mã: http{ include mime.type; include /opt/nginx/site-enable/*.conf; server_names_hash_bucket_size 64; Khởi động lại nginx Mã: systemctl restart nginx.service Triển khai PHP với FastCGI Nếu ứng dụng của bạn bao gồm mã PHP bạn sẽ cần phải thực hiện những điều sau đây. Giải pháp "PHP-FastCGI" cho phép nginx có thể xử lý và phục vụ các trang có chứa mã PHP. Bắt đầu quá trình triển khai thực hiện các lệnh sau để cài đặt phụ thuộc yêu cầu: Mã: yum install php-cli php spawn-fcgi Tạo script cho quá trình xử lý php-cgi Mã: vim /usr/bin/php-fastcgi Mã: #!/bin/sh if [ `grep -c "nginx" /etc/passwd` = "1" ]; then FASTCGI_USER=nginx elif [ `grep -c "www-data" /etc/passwd` = "1" ]; then FASTCGI_USER=www-data elif [ `grep -c "http" /etc/passwd` = "1" ]; then FASTCGI_USER=http else # Set the FASTCGI_USER variable below to the user that # you want to run the php-fastcgi processes as FASTCGI_USER= fi /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 6 -u $FASTCGI_USER -f /usr/bin/php-cgi Lệnh sau đây để làm cho script thực thi Mã: chmod +x /usr/bin/php-fastcgi Cấu hình PHP-FastCGI như một dịch vụ Khi PHP-FastCGI được cài đặt nó không tự động được thiết lập như là một dịch vụ trong systemd. Nếu bạn muốn dễ dàng kiểm soát PHP-FastCGI với systemd, bạn có thể cấu hình PHP-FastCGI như một dịch vụ systemd. Để làm điều này, bạn cần phải tạo một tập tin dịch vụ mà chỉ đường dẫn đến tập tin /usr/bin/php-fastcgi bạn đã tạo: Mã: vim /etc/systemd/system/php-fastcgi.service Mã: [Unit] Description=php-fastcgi systemd service script [Service] Type=forking ExecStart=/usr/bin/php-fastcgi start [Install] WantedBy=multi-user.target Một khi tập tin đã được tạo ra, bạn sẽ cần phải tải lại systemd daemon, kích hoạt dịch vụ, sau đó khởi động nó: Mã: systemctl daemon-reload systemctl enable php-fastcgi.service systemctl start php-fastcgi.service MariaDB Cài đặt và cấu hình 1. Cài gói MariaDB bằng lệnh yum: Mã: yum install mariadb-server 2. Khởi động MariaDB lần đầu tiên và thiết lập chạy khi khởi động Mã: systemctl enable mariadb.service systemctl start mariadb.service 3. Chạy mysql_secure_installation để cấu hình bảo mật MySQL Bạn sẽ được cung cấp tùy chọn để thay đổi mật khẩu gốc, loại bỏ tài khoản người dùng ẩn danh, vô hiệu hóa đăng nhập root bên ngoài của localhost, và loại bỏ các cơ sở dữ liệu, kiểm tra và tải lại đặc quyền. Mã: mysql_secure_installation Tạo cơ sở dữ liệu MariaDB 1. Đăng nhập vào MariaDB Mã: mysql -u root -p 2. Tạo cơ sở dữ liệu và user Mã: CREATE DATABASE mydomain; CREATE USER 'myuser' IDENTIFIED BY 'MyPassword'; GRANT ALL PRIVILEGES ON mydomain.* to 'myuser'; exit 3. Thoát khỏi MariaDB Mã: quit