Thứ hai, 18/09/2017 | 00:00 GMT+7

Cách cài đặt Lighttpd với MySQL và PHP trên FreeBSD 11.0

Lighttpd là một web server open-souce , nhẹ được tối ưu hóa cho môi trường tốc độ cao trong khi vẫn giữ mức sử dụng tài nguyên thấp. Nó là một giải pháp thay thế tuyệt vời cho các web server thường được sử dụng là Nginx và Apache. Trong hướng dẫn này, bạn sẽ cài đặt và cấu hình Lighttpd trên server chạy FreeBSD 11.0. Bạn cũng thêm MySQL và PHP vào web server Lighttpd mới của bạn để bạn có thể phục vụ các ứng dụng web cũng như nội dung tĩnh.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần :

  • Server chạy FreeBSD 11.0.
  • Một account user được cấu hình để chạy các lệnh với sudo . Tài khoản freebsd mặc định đi kèm với Digital Ocean FreeBSD Server sẽ phù hợp với hướng dẫn này. Để tìm hiểu thêm về cách cấu hình FreeBSD, hãy xem loạt bài hướng dẫn Bắt đầu với FreeBSD .

Bước 1 - Cài đặt Lighttpd

Có một số tùy chọn để cài đặt Lighttpd, nhưng trong hướng dẫn này, bạn sẽ sử dụng các gói để cài đặt. Phương pháp này nhanh hơn cài đặt từ nguồn hoặc thông qua Cổng và phần mềm được cài đặt bằng phương pháp này rất dễ cập nhật.

Để cài đặt Lighttpd với gói của nó, trước tiên hãy cập nhật thông tin repository đảm bảo bạn có danh sách các gói mới nhất hiện có:

  • sudo pkg update

Tiếp theo, download và cài đặt gói lighttpd :

  • sudo pkg install lighttpd

Xác nhận cài đặt bằng lệnh y . Lighttpd sẽ cài đặt.

Với cấu hình mặc định này, bạn sẽ thấy lỗi này khi khởi động server :

Output
(network.c.260) warning: please use server.use-ipv6 only for hostnames, not without server.bind / empty address; your config will break if the kernel default for IPV6_V6ONLY changes

Điều này là do cấu hình Lighttpd mặc định không được cấu hình hoàn toàn để hỗ trợ IPv6. Để tránh bị bất ngờ sau này, hãy chỉnh sửa file cấu hình của Lighttpd và tắt hỗ trợ cho IPv6, vì bạn sẽ không cần nó để hoàn thành hướng dẫn này. Bạn có thể kích hoạt nó trong tương lai nếu bạn quyết định sử dụng nó:

  • sudo ee /usr/local/etc/lighttpd/lighttpd.conf

Tìm phần này:

/usr/local/etc/lighttpd/lighttpd.conf
... ## ## Use IPv6? ## server.use-ipv6 = "enable" ... 

Thay đổi enable để disable :

/usr/local/etc/lighttpd/lighttpd.conf
... ... server.use-ipv6 = "disable" ... 

Tiếp theo, tìm dòng này ở cuối file cấu hình:

/usr/local/etc/lighttpd/lighttpd.conf
... ... $SERVER["socket"] == "0.0.0.0:80" { } 

Comment nó ra, vì nó không cần thiết khi ta không sử dụng IPv6:

/usr/local/etc/lighttpd/lighttpd.conf
... ... #$SERVER["socket"] == "0.0.0.0:80" { } 

Sau đó, lưu file và thoát khỏi editor .

Tiếp theo hãy cấu hình MySQL.

Bước 2 - Cài đặt và cấu hình MySQL

MySQL là một hệ thống quản lý database sẽ cho phép tạo database cho các ứng dụng PHP mà bạn định lưu trữ trên web server Lighttpd của bạn .

Bạn sẽ cài đặt MySQL thông qua gói của nó, giống như bạn đã làm với Lighttpd. Sau đó, bạn sẽ cài đặt password cho user gốc MySQL và vô hiệu hóa một số tùy chọn thử nghiệm khác. Điều này đảm bảo bạn sẽ có một cài đặt MySQL an toàn.

Vì bạn đã cập nhật thông tin repository pkg ở Bước 1, bạn có thể download và cài đặt gói server MySQL một cách nhanh chóng:

  • sudo pkg install mysql57-server

Xác nhận cài đặt bằng cách nhấn: y .

Sau khi cài đặt hoàn tất, hãy bật MySQL khi khởi động hệ thống:

  • sudo sysrc mysql_enable=yes

Sau đó khởi động dịch vụ mysql-server :

  • sudo service mysql-server start

Khi dịch vụ bắt đầu, hãy bảo mật cài đặt MySQL của bạn bằng cách sử dụng tập lệnh mysql_secure_installation . Thao tác này sẽ loại bỏ một số mặc định nguy hiểm và khóa quyền truy cập vào hệ thống database của bạn một chút. Bắt đầu tập lệnh tương tác bằng lệnh:

  • sudo mysql_secure_installation

Bạn sẽ thấy thông báo sau:

Output
Securing the MySQL server deployment. Connecting to MySQL server using password in '/root/.mysql_secret'

Tiếp theo, bạn sẽ được hỏi có muốn cấu hình plugin để xác thực password hay không:

Output
VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Cảnh báo : Kích hoạt tính năng này là lựa chọn cần cân nhắc . Nếu được bật, password không phù hợp với tiêu chí đã chỉ định sẽ bị MySQL từ chối và báo lỗi . Điều này sẽ gây ra sự cố nếu bạn sử dụng password yếu kết hợp với phần mềm tự động cấu hình thông tin đăng nhập user MySQL. Việc tắt tính năng xác thực là an toàn, nhưng bạn phải luôn sử dụng password mạnh, duy nhất cho thông tin đăng nhập database .

Trả lời Y có hoặc bất kỳ điều gì khác để tiếp tục mà không cần bật.

Nếu bạn chọn bật tính năng này, bạn cần chọn cấp độ xác thực password . Lưu ý nếu bạn nhập 2 , đối với cấp độ mạnh nhất, bạn sẽ nhận được lỗi khi đặt bất kỳ password nào không chứa số, chữ hoa và chữ thường và các ký tự đặc biệt hoặc dựa trên các từ thông dụng trong từ điển.

Output
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:

Tiếp theo, bạn sẽ được hỏi có muốn thay đổi password cho user root hay không :

Output
Change the password for root ? ((Press y|Y for Yes, any other key for No) :

Nhấn Y để thay đổi password này.

Nếu bạn đã cài đặt xác thực password , bạn sẽ được hiển thị độ mạnh password cho password root hiện có và hỏi bạn có muốn thay đổi password đó không.

Output
New password: Re-enter new password: Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :

Nhấn Y để tiếp tục với password mới.

Đối với các câu hỏi còn lại, bạn nên nhấn Y và nhấn phím Đi vào mỗi lần nhắc. Thao tác này sẽ xóa một số user ẩn danh và database thử nghiệm, vô hiệu hóa đăng nhập root từ xa và tải các luật mới này để MySQL áp dụng ngay những thay đổi mà ta đã thực hiện.

Sau đó, khởi động lại dịch vụ mysql-server đảm bảo rằng version của bạn ngay lập tức áp dụng các thay đổi bảo mật:

  • sudo service mysql-server restart

Khi version MySQL được cài đặt và chạy, ta có thể cài đặt và cấu hình PHP.

Bước 3 - Cài đặt và cấu hình PHP

PHP là thành phần cài đặt của ta sẽ xử lý mã để hiển thị nội dung động. Nó có thể chạy các tập lệnh, kết nối với database MySQL của ta để lấy thông tin và chuyển giao nội dung đã xử lý cho web server của ta để hiển thị.

, hãy sử dụng gói hệ thống để cài đặt PHP, cùng với phần mở rộng PHP mysqli bổ sung hỗ trợ MySQL:

  • sudo pkg install php71 php71-mysqli

Lighttpd không chứa PHP processor root như một số web server khác, vì vậy ta sẽ sử dụng PHP-FPM , viết tắt của “FastCGI Process Manager”. Ta sẽ cấu hình Lighttpd để sử dụng module này để xử lý các yêu cầu PHP. Trước khi làm điều đó, ta cần phải tự cấu hình PHP-FPM.

Bắt đầu bằng cách chỉnh sửa file cấu hình PHP-FPM:

  • sudo ee /usr/local/etc/php-fpm.d/www.conf

Ta sẽ cấu hình PHP-FPM để sử dụng socket Unix thay vì cổng mạng để giao tiếp. Điều này an toàn hơn cho các dịch vụ giao tiếp trong một server .

Tìm dòng này trong file cấu hình:

/usr/local/etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000 

Thay đổi dòng này để sử dụng socket php-fpm :

/usr/local/etc/php-fpm.d/www.conf
listen = /var/run/php-fpm.sock 

Bây giờ, hãy đặt chủ sở hữu, group và quyền cho socket sẽ được tạo. Tìm phần này của file cấu hình:

/usr/local/etc/php-fpm.d/www.conf
... ;listen.owner = www ;listen.group = www ;listen.mode = 0660 ... 

Bỏ ghi chú phần sau bằng cách bỏ dấu chấm phẩy ở đầu mỗi dòng, để phần này trông giống như sau:

/usr/local/etc/php-fpm.d/www.conf
... listen.owner = www listen.group = www listen.mode = 0660 ... 

Lưu file khi bạn hoàn tất.

Tiếp theo, tạo một file php.ini sẽ cấu hình hoạt động chung của PHP. Có hai file mẫu được bao gồm: php.ini-productionphp.ini-development . Tệp php.ini-production sẽ gần với những gì bạn muốn cho server của bạn , vì vậy hãy sao chép nó vào /usr/local/etc/php.ini , vị trí mà PHP mong đợi để tìm file cấu hình của nó:

  • sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Mở file php.ini mới bằng editor của bạn:

  • sudo ee /usr/local/etc/php.ini

Bên trong file cấu hình, tìm phần cho hành vi cgi.fix_pathinfo . Nó sẽ được comment ra và được đặt thành 1 theo mặc định:

/usr/local/etc/php.ini
... ;cgi.fix_pathinfo=1 ... 

Bỏ comment này và đặt giá trị thành 0 . Điều này ngăn không cho PHP cố gắng thực thi các phần của đường dẫn nếu không tìm thấy file được chuyển vào quy trình. Điều này có thể được kẻ tấn công sử dụng để thực thi mã độc.

/usr/local/etc/php.ini
... cgi.fix_pathinfo=0 ... 

Lưu file và thoát khỏi editor .

Sau đó, kích hoạt dịch vụ php-fpm để bắt đầu khi server khởi động :

  • sudo sysrc php_fpm_enable=yes

Sau đó bắt đầu dịch vụ:

  • sudo service php-fpm start

Tiếp theo, hãy cấu hình Lighttpd để phục vụ các ứng dụng PHP.

Bước 4 - Cấu hình Lighttpd để cung cấp các ứng dụng PHP

Trong bước này, bạn sẽ cấu hình Lighttpd để sử dụng FastCGI và PHP-FPM. Điều này sẽ kích hoạt PHP trên Lighttpd và hỗ trợ PHP nhanh chóng và hiệu quả.

Đầu tiên, kích hoạt module FastCGI. Mở file cấu hình module Lighttpd:

  • sudo ee /usr/local/etc/lighttpd/modules.conf

Tìm phần sau:

/usr/local/etc/lighttpd/modules.conf
... ## ## FastCGI (mod_fastcgi) ## #include "conf.d/fastcgi.conf" ... 

Bỏ comment include bằng cách bỏ ký hiệu # . Nếu bạn không tìm thấy dòng đó, hãy thêm nó vào cuối file .

/usr/local/etc/lighttpd/modules.conf
... ## ## FastCGI (mod_fastcgi) ## include "conf.d/fastcgi.conf" ... 

Lưu file và thoát khỏi editor .

Tiếp theo, chỉnh sửa file cấu hình FastCGI:

  • sudo ee /usr/local/etc/lighttpd/conf.d/fastcgi.conf

Tệp này có một số ví dụ, đã comment . Thêm các dòng cấu hình sau vào cuối file , cấu hình Lighttpd để phân phát file PHP với FastCGI và PHP-FPM:

/usr/local/etc/lighttpd/conf.d/fastcgi.conf
... fastcgi.server += ( ".php" =>         ((                 "socket" => "/var/run/php-fpm.sock",                 "broken-scriptfilename" => "enable"         )) ) ... 

Tiếp theo, kích hoạt Lighttpd để bắt đầu khi server khởi động . Bằng cách này, Lighttpd sẽ tự động khởi động khi nào web server được khởi động lại:

  • sudo sysrc lighttpd_enable=yes

Sau đó bắt đầu dịch vụ lighttpd :

  • sudo service lighttpd start

Bây giờ PHP đã sẵn sàng, hãy đảm bảo mọi thứ hoạt động.

Bước 5 - Kiểm tra cài đặt server

Để kiểm tra server Lighttpd mới được cấu hình, trước tiên hãy tạo folder /usr/local/www/data , đây là nơi Lighttpd sẽ tìm kiếm các trang web để phân phát.

  • sudo mkdir -p /usr/local/www/data

Sau đó, tạo một info.php trong folder /usr/local/www/data/ . Tệp này sẽ kiểm tra xem PHP đang hoạt động hay không và cho phép bạn xem lại thông tin về cài đặt web server trong trình duyệt web:

  • sudo ee /usr/local/www/data/info.php

Thêm mã này vào file :

/usr/local/www/data/info.php
<?php phpinfo(); ?> 

Lưu file và thoát khỏi editor .

Truy cập http:// your_server_ip /info.php trong trình duyệt web . Bạn sẽ thấy một trang giống như sau:

Trang thông tin PHP

Trang này hiển thị thông tin về hệ điều hành, web server và cách web server của bạn xử lý các file PHP. Nó cũng xác minh web server của bạn có thể phân phát các file PHP một cách chính xác.

Nếu bạn không thấy trang này và thay vào đó thấy Lỗi 503 Dịch vụ Không Khả dụng , hãy đảm bảo dịch vụ php-fpm khởi động đúng cách ở bước trước.

Khi bạn đã xác minh mọi thứ đang hoạt động, hãy xóa trang info.php , vì nó tiết lộ thông tin về server của bạn mà bạn nên giữ riêng tư:

  • sudo rm /usr/local/www/data/info.php

Web server hiện đã được cấu hình đầy đủ và sẵn sàng hoạt động. Đặt các file của bạn vào /usr/local/www/data để phân phát chúng.

Kết luận

Bây giờ web server Lighttpd đã hoàn tất và đang chạy, bạn có thể lưu trữ các trang web, tài liệu và các file khác trên web server của bạn . Để làm cho web server của bạn an toàn hơn bằng cách thêm cấu hình SSL và các tính năng bảo mật khác. Để biết thêm thông tin về Lighttpd, hãy truy cập diễn đàn Lighttpd .


Tags:

Các tin liên quan

Cách cấu hình backup MySQL với Percona XtraBackup trên Ubuntu 16.04
2017-08-30
Cách cấu hình sao chép nhóm MySQL trên Ubuntu 16.04
2017-04-13
Cách cài đặt MySQL mới nhất trên Ubuntu 16.04
2017-04-06
Cách cấu hình SSL / TLS cho MySQL trên Ubuntu 16.04
2017-03-20
Cách Import, Export database trong MySQL hoặc MariaDB
2016-12-21
Cách thay đổi thư mục dữ liệu MySQL sang vị trí mới trên CentOS 7
2016-12-19
Cách thay đổi thư mục dữ liệu MySQL sang vị trí mới bằng cách sử dụng liên kết biểu tượng
2016-12-02
Cách cài đặt MySQL trên CentOS 7
2016-12-01
Cách cài đặt MySQL trên Ubuntu 16.04
2016-11-23
Cách kết nối với server MySQL từ xa bằng MySQL Workbench
2016-10-21