Thứ sáu, 25/04/2014 | 00:00 GMT+7

Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên Ubuntu 14.04

Phần mềm LEMP là một group phần mềm được dùng để phục vụ các trang web động và ứng dụng web. Đây là từ viết tắt mô tả hệ điều hành Linux, với web server Nginx. Dữ liệu backend được lưu trữ trong MySQL và xử lý bởi PHP.

Trong hướng dẫn này, ta sẽ trình bày cách cài đặt LEMP trên server Ubuntu 14.04. Hệ điều hành Ubuntu xử lý yêu cầu đầu tiên. Ta sẽ mô tả cách chạy các thành phần còn lại.

Lưu ý: LEMP có thể được cài đặt tự động trên Server bằng cách thêm tập lệnh này vào Dữ liệu user của nó khi chạy nó. Hãy xem hướng dẫn này để tìm hiểu thêm về Dữ liệu user Server.

Yêu cầu

Trước khi hoàn thành hướng dẫn này, bạn phải có account regular user , không phải root trên server của bạn với các quyền sudo . Bạn có thể tìm hiểu cách cài đặt loại account này bằng cách hoàn thành các bước 1-4 trong cài đặt server ban đầu Ubuntu 14.04 của ta .

Sau khi bạn có account của bạn , hãy đăng nhập vào server của bạn bằng tên user đó. Đến đây bạn đã sẵn sàng để bắt đầu các bước được nêu trong hướng dẫn này.

1. Cài đặt Server Web Nginx

Để hiển thị các trang web cho khách truy cập trang web của ta , ta sẽ sử dụng Nginx, một web server hiện đại, hiệu quả.

Tất cả phần mềm ta sẽ nhận được cho quy trình này sẽ đến trực tiếp từ repository mặc định của Ubuntu. Điều này nghĩa là ta có thể sử dụng trình quản lý gói apt để hoàn tất cài đặt.

Vì đây là lần đầu tiên ta sử dụng apt cho phiên này, ta nên bắt đầu bằng cách cập nhật index gói local của bạn . Sau đó, ta có thể cài đặt server :

sudo apt-get update sudo apt-get install nginx 

Trong Ubuntu 14.04, Nginx được cấu hình để bắt đầu chạy khi cài đặt.

Bạn có thể kiểm tra xem server có hoạt động hay không bằng cách truy cập vào domain hoặc địa chỉ IP công khai của server trong trình duyệt web .

Nếu bạn không có domain được trỏ đến server của bạn và bạn không biết địa chỉ IP công khai của server , bạn có thể tìm thấy nó bằng lệnh một trong những thông tin sau vào terminal của bạn:

<pre>
ip addr hiển thị eth0 | grep inet | awk '{in $ 2; } '| sed 's /\/.*$//'
</pre>
<pre>
<span class = “highlight”> 111.111.111.111 </span>
<span class = “highlight”> fe80 :: 601: 17ff: fe61: 9801 </span>
</pre>

Hoặc bạn có thể thử sử dụng:

<pre>
curl http://icanhazip.com
</pre>
<pre>
<span class = “highlight”> 111.111.111.111 </span>
</pre>

Hãy thử một trong những dòng mà bạn nhận được trong trình duyệt web của bạn . Nó sẽ đưa bạn đến trang đích mặc định của Nginx:

<pre>
http: // <span class = “highlight”> tên domain hoặc IP server </span>
</pre>

Trang mặc định của Nginx

Nếu bạn nhìn thấy trang trên, bạn đã cài đặt thành công Nginx.

2. Cài đặt MySQL để quản lý dữ liệu trang web

Bây giờ ta đã có web server , ta cần cài đặt MySQL, một hệ quản trị database , để lưu trữ và quản lý dữ liệu cho trang web của ta .

Bạn có thể cài đặt cái này dễ dàng bằng lệnh :

sudo apt-get install mysql-server 

Bạn cần cung cấp password root (quản trị) để sử dụng trong hệ thống MySQL.

Phần mềm database MySQL hiện đã được cài đặt, nhưng cấu hình của nó vẫn chưa hoàn chỉnh.

Đầu tiên, ta cần yêu cầu MySQL tạo cấu trúc folder mà nó cần để lưu trữ database và thông tin của nó. Ta có thể làm điều này bằng lệnh :

sudo mysql_install_db 

Tiếp theo, bạn cần chạy một tập lệnh bảo mật đơn giản sẽ nhắc bạn sửa đổi một số giá trị mặc định không an toàn. Bắt đầu tập lệnh bằng lệnh :

sudo mysql_secure_installation 

Bạn cần nhập password root MySQL mà bạn đã chọn trong khi cài đặt.

Tiếp theo, nó sẽ hỏi bạn có muốn thay đổi password đó không. Nếu bạn hài lòng với password root MySQL của bạn , hãy nhập “N” để không và nhấn “ENTER”. Sau đó, bạn sẽ được yêu cầu xóa một số user và database thử nghiệm. Bạn chỉ cần nhấn “ENTER” qua các dấu nhắc này để xóa cài đặt mặc định không an toàn.

Khi script đã được chạy, MySQL đã sẵn sàng hoạt động.

3. Cài đặt PHP để xử lý

Bây giờ ta đã cài đặt Nginx để phục vụ các trang của ta và MySQL được cài đặt để lưu trữ và quản lý dữ liệu của ta , nhưng ta vẫn cần một thứ gì đó để kết nối hai phần này và để tạo nội dung động. Ta có thể sử dụng PHP cho việc này.

Vì Nginx không chứa PHP processor root như một số web server khác, ta cần cài đặt php5-fpm , viết tắt của “fastCGI process manager”. Ta sẽ yêu cầu Nginx chuyển các yêu cầu PHP đến phần mềm này để xử lý.

Ta có thể cài đặt module này và cũng sẽ lấy một gói trợ giúp bổ sung cho phép PHP giao tiếp với backend database của ta . Quá trình cài đặt sẽ kéo các file lõi PHP cần thiết vào. Làm điều này bằng lệnh :

sudo apt-get install php5-fpm php5-mysql 

Cấu hình PHP processor

Bây giờ ta đã cài đặt các thành phần PHP của bạn , nhưng ta cần thực hiện một chút thay đổi cấu hình để giúp cài đặt của ta an toàn hơn.

Mở file cấu hình php5-fpm với quyền root:

sudo nano /etc/php5/fpm/php.ini 

Những gì ta đang tìm kiếm trong file này là tham số đặt cgi.fix_pathinfo . Điều này sẽ được comment bằng dấu chấm phẩy (;) và được đặt thành “1” theo mặc định.

Đây là một cài đặt cực kỳ không an toàn vì nó yêu cầu PHP cố gắng thực thi file gần nhất mà nó có thể tìm thấy nếu file PHP không khớp chính xác. Điều này về cơ bản sẽ cho phép user tạo các yêu cầu PHP theo cách cho phép họ thực thi các tập lệnh mà họ không được phép thực thi.

Ta sẽ thay đổi cả hai điều kiện này bằng cách bỏ comment và đặt nó thành “0” như sau:

cgi.fix_pathinfo=0 

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

Bây giờ, ta chỉ cần khởi động lại PHP processor của bạn bằng lệnh :

sudo service php5-fpm restart 

Điều này sẽ thực hiện thay đổi mà ta đã thực hiện.

4. Cấu hình Nginx để sử dụng PHP processor của ta

Bây giờ, ta đã cài đặt tất cả các thành phần cần thiết. Thay đổi cấu hình duy nhất mà ta vẫn cần làm là yêu cầu Nginx sử dụng PHP processor của ta cho nội dung động.

Ta thực hiện việc này ở cấp độ khối server (các khối server tương tự như các server ảo của Apache). Mở file cấu hình khối server Nginx mặc định bằng lệnh :

sudo nano /etc/nginx/sites-available/default 

Hiện tại, với các comment đã bị xóa, file khối server mặc định của Nginx trông giống như sau:

<pre>
người phục vụ {
nghe 80 server mặc định ;
nghe [::]: 80
server mặc định ipv6only = on;

root /usr/share/nginx/html; index index.html index.htm;  server_name localhost;  location / {     try_files $uri $uri/ =404; } 

}
</pre>

Ta cần thực hiện một số thay đổi đối với file này cho trang web của bạn .

  • Đầu tiên, ta cần thêm tùy chọn index.php làm giá trị đầu tiên của index thị index của ta để cho phép các file index PHP được phục vụ khi một folder được yêu cầu.
  • Ta cũng cần sửa đổi chỉ thị server_name để trỏ đến domain hoặc địa chỉ IP công cộng của server .
  • Tệp cấu hình thực tế bao gồm một số dòng được chú thích xác định các quy trình xử lý lỗi. Ta sẽ bỏ ghi chú những người bao gồm chức năng đó.
  • Để PHP processor thực tế, ta cần bỏ ghi chú một phần của phần khác. Ta cũng cần thêm chỉ thị try_files đảm bảo Nginx không chuyển các yêu cầu xấu đến PHP processor của ta .

Những thay đổi bạn cần thực hiện có màu đỏ trong văn bản bên dưới:

<pre>
người phục vụ {
nghe 80 server mặc định ;
nghe [::]: 80
server mặc định ipv6only = on;

root /usr/share/nginx/html; index <span class="highlight">index.php</span> index.html index.htm;  server_name <span class="highlight">server_domain_name_or_IP</span>;  location / {     try_files $uri $uri/ =404; }  <span class="highlight">error_page 404 /404.html;</span> <span class="highlight">error_page 500 502 503 504 /50x.html;</span> <span class="highlight">location = /50x.html {</span>     <span class="highlight">root /usr/share/nginx/html;</span> <span class="highlight">}</span>  <span class="highlight">location ~ \.php$ {</span>     <span class="highlight">try_files $uri =404;</span>     <span class="highlight">fastcgi_split_path_info ^(.+\.php)(/.+)$;</span>     <span class="highlight">fastcgi_pass unix:/var/run/php5-fpm.sock;</span>     <span class="highlight">fastcgi_index index.php;</span>     <span class="highlight">fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;</span>     <span class="highlight">include fastcgi_params;</span> <span class="highlight">}</span> 

}
</pre>

Khi bạn đã áp dụng các thay đổi ở trên, bạn có thể lưu file .

Khởi động lại Nginx để áp dụng các thay đổi cần thiết:

sudo service nginx restart 

5. Tạo một file PHP để kiểm tra cấu hình

LEMP của bạn bây giờ sẽ được cài đặt hoàn chỉnh. Ta vẫn nên kiểm tra đảm bảo rằng Nginx có thể xử lý chính xác các file .php cho PHP processor của ta .

Ta có thể làm điều này bằng cách tạo một file PHP thử nghiệm trong root tài liệu của ta . Mở một file mới có tên là info.php trong root tài liệu của bạn trong editor của bạn:

sudo nano /usr/share/nginx/html/info.php 

Ta có thể nhập cái này vào file mới. Đây là mã PHP hợp lệ sẽ trả về thông tin được định dạng về server của ta :

<?php phpinfo(); ?> 

Khi bạn hoàn tất, hãy lưu file .

Bây giờ, bạn có thể truy cập trang này trong trình duyệt web của bạn bằng cách truy cập vào domain của server hoặc địa chỉ IP công cộng, theo sau là /info.php :

<pre>
http: // <span class = “highlight”> tên domain hoặc IP server </span> /info.php
</pre>

Bạn sẽ thấy một trang web được tạo bởi PHP với thông tin về server của bạn:

Thông tin trang PHP

Nếu bạn thấy một trang giống như thế này, bạn đã cài đặt PHP processor với Nginx thành công.

Sau khi bạn kiểm tra điều này, có lẽ tốt nhất là xóa file bạn đã tạo vì nó có thể cung cấp cho user lạ một số gợi ý về cấu hình của bạn có thể giúp họ xâm nhập trái phép. Bạn luôn có thể tạo lại file này nếu cần.

Hiện tại, hãy xóa file bằng lệnh :

sudo rm /usr/share/nginx/html/info.php 

Kết luận

Đến đây bạn sẽ có một LEMP được cấu hình trên server Ubuntu 14.04 của bạn . Điều này mang lại cho bạn một nền tảng rất linh hoạt để cung cấp nội dung web cho khách truy cập của bạn.

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 14.04
2014-04-18
Thiết lập server ban đầu với Ubuntu 14.04
2014-04-17
Giới thiệu về công cụ nén tệp trên server Linux
2014-04-15
Cách tải phần mềm và nội dung lên VPS Linux của bạn
2014-04-14
Cách bảo vệ server của bạn chống lại lỗ hổng bảo mật OpenSSL.
2014-04-08
Cách cấu hình mail server bằng Postfix, Dovecot, MySQL và SpamAssassin
2014-04-01
Cách cấu hình mail server bằng Postfix, Dovecot, MySQL và SpamAssassin
2014-04-01
Cách cấu hình công cụ để sử dụng IPv6 trên VPS Linux
2014-04-01
Cách điều chỉnh cấu hình SSH Daemon của bạn trên VPS Linux
2014-03-26
Cách xác thực người dùng với server SSH bằng Monkeysphere trên VPS Ubuntu
2014-03-24