Thứ hai, 09/12/2013 | 00:00 GMT+7

Hướng dẫn đơn giản về cách cài đặt ứng dụng trực diện web trên VPS

Server Linux là một nền tảng cực kỳ linh hoạt để phát triển và phục vụ nội dung. Không có một cách đúng đắn duy nhất để gửi đơn đăng ký, nhưng có một số thủ tục hoặc bộ ứng dụng nhất định hoạt động tốt với nhau. Nếu bạn cài đặt một lượng lớn phần mềm chạy trên web, bạn có thể sẽ nhận thấy rằng các quy trình cài đặt và cấu hình chung đều tuân theo cùng một đường dẫn.


Nói chung, các ứng dụng này được hỗ trợ bởi hệ thống quản lý database , chẳng hạn như MySQL / MariaDB, PostgreSQL, MongoDB, v.v. Nội dung web thực được truy cập thông qua web server , như Apache hoặc Nginx. Nội dung động được xử lý thông qua ngôn ngữ lập trình phía server , chẳng hạn như PHP, Python, Ruby, v.v. Đây là cơ sở của cái mà ta gọi là " ứng dụng ".

ứng dụng truyền thống nhất là LAMP . Đó là Linux cho hệ điều hành, Apache làm web server , MySQL cho database và PHP để xử lý thông tin. Các thành phần khác có thể được thay thế theo yêu cầu của bạn. Một trong những điều tốt đẹp về phần mềm Nguồn mở là nó linh hoạt và thích ứng.

Một loại ứng dụng phổ biến được cài đặt bằng cách sử dụng các ngăn xếp web này là phần mềm diễn đàn. Hầu hết các diễn đàn yêu cầu bạn trải qua cùng một quy trình cơ bản bao gồm cài đặt web server , hệ thống database và ngôn ngữ lập trình (bao gồm các thư viện và module cho phép các công cụ này giao tiếp). Sau đó, bạn cần cài đặt phần mềm thực tế và sau đó cấu hình tất cả các phần để hoạt động cùng nhau.

Quy trình chung là giống nhau đối với hầu hết các loại phần mềm diễn đàn. Trong bài viết này, ta sẽ sử dụng phần mềm diễn đàn MyBB trên Ubuntu 12.04 để trình bày các bước thích hợp. Nhiều diễn đàn khác (Simple Machines, Vanilla, phpBB, PunBB, v.v.) sẽ sử dụng một quy trình tương tự, mặc dù sẽ có một số thay đổi giữa mỗi diễn đàn.

Bước một –– Cài đặt ngăn xếp


Trong bài viết này, ta sẽ sử dụng một server Ubuntu 12.04.

Điều đầu tiên bạn cần làm khi cố gắng sử dụng phần mềm này là cài đặt các thành phần ngăn xếp sẽ thực hiện việc nâng vật nặng. Trong trường hợp của ta , LAMP truyền thống sẽ phục vụ tốt cho ta .

Trước tiên, ta sẽ cài đặt từng thành phần và cấu hình chúng trong bước tiếp theo.

Cài đặt Apache


Đầu tiên, cập nhật các gói của bạn và cài đặt Apache, đây sẽ là web server của ta . Phần mềm này phục vụ các trang web khi user truy cập trang web . Mọi trang web trên internet đều được phục vụ bởi một trình duyệt web.

sudo apt-get update sudo apt-get install apache2 

Cài đặt MySQL


Tiếp theo, ta sẽ cài đặt MySQL, đây sẽ là hệ quản trị database của ta . Hệ quản trị database có nhiệm vụ lưu trữ thông tin một cách có tổ chức. Nó được dùng để sắp xếp, tìm kiếm, cập nhật và định dạng hầu hết các loại dữ liệu hữu ích cho một trang web ( user , số liệu thống kê, trang, v.v.).

Bên cạnh phần mềm quản lý database thực tế, ta cũng sẽ cài đặt một số thư viện và module cho phép các thành phần khác của ta giao tiếp dễ dàng với nó. Trong khi cài đặt, bạn cần chọn và xác nhận password quản trị database . Đây có thể là bạn muốn :

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql 

Cài đặt PHP


Các thành phần ngăn xếp duy nhất còn lại mà ta cần cài đặt là trình thông dịch PHP và các thư viện liên quan của nó. PHP là ngôn ngữ mà ta gọi là ngôn ngữ kịch bản phía server .

Về cơ bản, điều này có nghĩa rằng nó là một ngôn ngữ lập trình thực thi mã trên server . Điều này cho phép bạn tạo nội dung động dựa trên yêu cầu của user và thông tin được lưu trữ trong database của bạn. Một ngôn ngữ lập trình có thể đóng role là chất kết dính để kết nối các phần khác:

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt 

Bước hai –– Cấu hình ngăn xếp


Bây giờ ta đã cài đặt tất cả các thành phần của ngăn xếp web của bạn , ta cần thực hiện một số cấu hình nhanh để bảo mật và khởi tạo môi trường của ta và đảm bảo mọi thứ được cấu hình để hoạt động cùng nhau. Các bước này nên được thực hiện khi nào bạn đang cài đặt một dịch vụ giao diện web, bởi vì cấu hình mặc định không phải lúc nào cũng lý tưởng.

Cấu hình MySQL


Đầu tiên, ta sẽ khởi tạo môi trường MySQL. Ta có thể khởi tạo môi trường database bằng lệnh :

sudo mysql_install_db 

Sau đó, ta có thể bảo mật cài đặt của bạn bằng cách đảo ngược một số cài đặt không an toàn, nhưng được đặt mặc định để cho phép dễ dàng kiểm tra. Chạy tập lệnh tương tác bằng lệnh :

sudo mysql_secure_installation 

Tiếp theo sẽ hỏi bạn . Đầu tiên, nó sẽ nhắc bạn nhập password quản trị database mà bạn đã đặt trong quá trình cài đặt MySQL. Sau đó, trả lời “yes” cho từng câu hỏi tiếp theo (ngoại trừ câu hỏi thay đổi password , nếu bạn hài lòng với lựa chọn của bạn ).

Cấu hình Apache


Tiếp theo, ta cần cấu hình một file trong folder cấu hình Apache của bạn để ưu tiên các file PHP thành các trang HTML thông thường. Điều này nghĩa là nếu có sự lựa chọn giữa việc cung cấp một yêu cầu không rõ ràng, server sẽ chọn trang PHP. Đây thường là cách bạn muốn web server hoạt động khi chúng được sử dụng song song với PHP và database .

Chỉnh sửa file này bằng trình soạn thảo bạn muốn . Ta sẽ sử dụng nano ở đây:

sudo nano /etc/apache2/mods-enabled/dir.conf 

Trong file này, có một chỉ thị được gọi là DirectoryIndex liệt kê tên file ưu tiên được cung cấp khi một folder được trình duyệt web yêu cầu. Ta cần thêm index.php vào đầu danh sách. Chỉnh sửa file sao cho phù hợp với file này:

<pre>
<IfModule mod_dir.c>

  DirectoryIndex <span class="highlight">index.php</span> index.html index.cgi index.pl index.php index.xhtml index.htm 

</IfModule>
</pre>

Sau khi thực hiện thay đổi này, bạn cần khởi động lại web server để thay đổi này có hiệu lực:

sudo service apache2 restart 

Cấu hình PHP


Đối với mục đích của ta , cấu hình PHP mặc định sẽ hoạt động tốt. Tuy nhiên, trong các trường hợp khác, bạn có thể cần thay đổi một số giá trị trong file cấu hình của nó để kích hoạt chức năng bổ sung, khóa các tài nguyên không cần thiết, v.v.

Các file cấu hình PHP được đặt tại /etc/php5 . Tệp mà bạn có thể sẽ quan tâm nhất là /etc/php5/apache2/php.ini . Điều này sẽ cấu hình cách PHP hoạt động khi tương tác với Apache:

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

Như bạn thấy , file này dài đến mức khó tin. Điều này một phần là do có quá nhiều tùy chọn cấu hình và một phần là do file được comment rất tốt.

Đôi khi các ứng dụng có thể được tối ưu hóa bằng cách thay đổi một số giá trị trong file này. Ví dụ: nếu bạn đang thực hiện một số tính toán cường độ cao, bạn có thể cần phải tăng mức sử dụng bộ nhớ tối đa của một quy trình PHP:

memory_limit = 128M 

Mặc dù vậy, mặc định sẽ ổn cho các mục đích của ta .

Bước Ba –– Tạo Database Ứng dụng


Ta đã cài đặt và cấu hình phần mềm ngăn xếp để hoạt động tốt cùng nhau. MySQL đã được cài đặt và đang chạy, nhưng hiện không có database nào mà ta có thể sử dụng cho ứng dụng của bạn . Ta sẽ tạo một account để phần mềm diễn đàn của ta có thể quản lý dữ liệu của nó.

Đầu tiên, đăng nhập vào MySQL. Điều này sẽ nhắc bạn nhập cùng một password bạn đã chọn để quản trị MySQL trong khi cài đặt:

mysql -u root -p 

Bạn sẽ đăng nhập vào giao diện MySQL và dấu nhắc lệnh của bạn sẽ thay đổi. Ta có thể cung cấp các lệnh SQL cho phần mềm database từ dấu nhắc này. SQL là ngôn ngữ truy vấn mà MySQL thực hiện. Nó được sử dụng để tạo, sửa đổi và tương tác với cả phần mềm database và chính dữ liệu.

Để phân chia thông tin từ diễn đàn của bạn , ta cần tạo một database , đây là đơn vị tổ chức cơ bản có sẵn cho ta . Ta sẽ đặt tên nó theo tên phần mềm liên quan trong trường hợp một ngày nào đó ta có nhiều database được lưu trữ trên cùng một máy. Điều này sẽ cho phép ta dễ dàng xác định mỗi thứ chứa những gì.

Trong ví dụ của ta , ta đang cài đặt phần mềm “MyBB”, vì vậy ta sẽ đặt tên nó cho phù hợp. Tất cả các lệnh SQL phải kết thúc bằng dấu chấm phẩy (;):

<pre>
TẠO CƠ SỞ DỮ LIỆU <span class = “highlight”> mybb </span>;
</pre>

Ta cũng nên tạo một user cụ thể để sử dụng database này. Đây là một thực tiễn tốt vì nó cho phép ta kiểm soát những gì phần mềm có quyền truy cập ở mức độ chi tiết. Ở đây, ta sẽ tạo một user và gán password cho nó trong một dòng:

<pre>
TẠO NGƯỜI DÙNG '<span class = "highlight"> mybbuser </span>' @ 'localhost' ĐƯỢC XÁC NHẬN BỞI '<span class = “highlight”> password </span>';
</pre>

Ta có một database và một user , nhưng chúng chưa được liên kết với nhau. Ta cần cấp cho user quyền truy cập vào database :

<pre>
CẤP TẤT CẢ CÁC QUYỀN RIÊNG TƯ TRÊN <span class = “highlight”> mybb </span>. * ĐẾN '<span class = “highlight”> mybbuser </span>' @ 'localhost' ĐƯỢC XÁC ĐỊNH BỞI '<span class = “highlight”> password </span> ';
</pre>

Ta có thể áp dụng các thay đổi của bạn và thoát khỏi giao diện MySQL bằng lệnh như sau:

FLUSH PRIVILEGES; exit 

Bước Bốn –– Download và Cấu hình Phần mềm Diễn đàn


Bây giờ ta đã cấu hình ngăn xếp web của bạn và một database được tạo cho ứng dụng của ta . Tất cả các bước sơ bộ đã hoàn tất và ta có thể download và bắt đầu cấu hình ứng dụng thực tế của bạn .

Ta sẽ download các file ban đầu trong một folder tạm thời trong folder chính của ta . Tạo nó và thay đổi vào folder ngay bây giờ:

mkdir ~/temp cd ~/temp 

Đây là folder nơi ta sẽ download và cấu hình phần mềm của bạn trước khi chuyển nó vào folder root nơi Apache có thể phân phối các file . Bạn sẽ phải lấy các file của dự án từ các trang web tương ứng của họ. Trong trường hợp của ta , ta có thể tải version mới nhất trực tiếp từ trang web:

wget -O mybb.zip http://www.mybb.com/download/latest 

Ta cần extract các file bằng unzip , chưa được cài đặt trên hệ thống của ta . Ta có thể khắc phục điều đó bằng lệnh này:

sudo apt-get install unzip 

Bây giờ ta có thể extract phần mềm từ repository zip:

unzip mybb.zip 

Thao tác này sẽ tạo ra hai folder được gọi là DocumentationUpload . Thư mục Upload chứa các file diễn đàn thực tế, trong khi folder Documentation , không ngạc nhiên, chứa tài liệu. Bạn có thể di chuyển folder tài liệu đến bất kỳ nơi nào bạn muốn. Đối với folder khác, ta cần chuyển nó vào folder root :

sudo mv ~/temp/Upload /var/www/forum 

Bây giờ, ta có các file trong folder root , nơi Apache có thể tìm thấy chúng và phục vụ chúng. Tuy nhiên, ứng dụng không đi kèm với các file cấu hình của nó. Nó đi kèm với các file cấu hình ví dụ mà ta có thể sao chép nguyên trạng. Thay đổi folder diễn đàn mà ta vừa chuyển file của bạn vào:

cd /var/www/forum 

Di chuyển file cấu hình mặc định vào vị trí:

sudo mv inc/config.default.php inc/config.php 

Bây giờ ta chỉ cần điều chỉnh quyền trên một vài file để phần mềm diễn đàn có thể được cấu hình chính xác:

sudo chmod a+rw inc/settings.php sudo chmod a+rw inc/config.php sudo chmod a+rw cache sudo chmod a+rw uploads sudo chmod a+rw uploads/avatars 

Với những thay đổi này, phần mềm MyBB sẽ có thể truy cập các file cấu hình và tải lên các folder và áp dụng các thay đổi nếu cần.

Hầu hết, tại thời điểm này, phần còn lại của phần mềm được cấu hình thông qua trình duyệt web. MyBB không khác về mặt này. Mở trình duyệt web và chuyển đến địa chỉ IP hoặc domain của bạn, theo sau là /forum/install/ :

<pre>
http: // <span class = “highlight”> your_domain </span> / forum / install /
</pre>

Bạn sẽ thấy trang đầu tiên của công cụ cấu hình dựa trên web. Điều này sẽ hướng dẫn bạn qua các giai đoạn cuối cùng của quá trình cấu hình. Bạn sẽ chọn tùy chọn của bạn và cho MyBB biết thông tin về cài đặt của bạn:

Bắt đầu cấu hình web DigitalOcean MyBB

Nhấp vào nút “tiếp theo” để xem qua một vài trang đầu tiên. Tất cả các trang kiểm tra yêu cầu phải có màu xanh lục:

Kiểm tra các yêu cầu của DigitalOcean MyBB

Trên trang tiếp theo, bạn phải nhập thông tin database mà bạn đã cấu hình. Nếu bạn đang theo dõi, trang web sẽ trông giống như sau:

Cấu hình database  DigitalOcean MyBB

Trên trang “Cấu hình bảng”, hãy điền vào cách thích hợp để truy cập diễn đàn của bạn. Bạn có thể cần thay đổi địa chỉ IP thành domain và điền vào một số thông tin khác:

Cấu hình bo mạch DigitalOcean MyBB

Điền vào một admin-user để hoàn tất quá trình.

Sau khi chạy xong cấu hình, bạn cần xóa folder cài đặt khỏi folder root của web. Điều này ngăn user lạ cấu hình lại phần mềm:

sudo rm -r /var/www/forum/install 

Bạn có thể truy cập trang web bằng cách truy cập:

<pre>
http: // <span class = “highlight”> your_domain </span> / forum
</pre>

Sản phẩm cuối cùng của DigitalOcean MyBB

Kết luận


Trong khi bài viết này sử dụng MyBB làm ví dụ, quy trình chung này giống nhau đối với hầu hết các phần mềm diễn đàn và áp dụng cho các loại ứng dụng web khác.

Bạn nên kiểm tra các bước cài đặt cụ thể cho ứng dụng của bạn , nhưng quá trình cài đặt và cấu hình LAMP , tạo database cho ứng dụng và sau đó di chuyển file vào root web sẽ có liên quan đến một lượng lớn cài đặt kiểu này.

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


Tags:

Các tin liên quan

So sánh web server (Rack) cho Ứng dụng Web Ruby
2013-11-25
So sánh các web server cho các ứng dụng web dựa trên Python
2013-10-28
Cách sử dụng node.js, request và cheerio để thiết lập Web-Scraping đơn giản
2013-09-16
Cách tạo một ứng dụng web nhỏ với CakePHP trên VPS (Phần 1)
2013-08-23
Cách mở rộng ứng dụng web trên Ubuntu 12.10
2013-04-11