VDO logo
Thủ thuật tin học 15-09-2016

Cách cài đặt Web App trong Ubuntu 12.04

Cách cài đặt Web App trong Ubuntu 12.04

Nếu bạn đang nói tới “Ubuntu Web Apps” theo nghĩa tích hợp website vào desktop Ubuntu, cần lưu ý rằng Canonical công bố tính năng này như một điểm mới của Ubuntu 12.10; tài liệu cộng đồng thời điểm đó cũng có nhắc đến một bản preview cho 12.04. Còn trong bài này, tôi sẽ hiểu “Web App” theo nghĩa thực tế hơn với quản trị hệ thống: cài và triển khai một ứng dụng web trên Ubuntu 12.04 bằng bộ Apache + PHP + MySQL. Đây cũng là cách phù hợp nhất cho các máy chủ Ubuntu 12.04 còn chạy ứng dụng cũ. Đồng thời, Ubuntu 12.04 đã hết hỗ trợ chính thức từ ngày 28/04/2017 và được chuyển vào kho lưu trữ cũ, nên hướng dẫn này chỉ nên dùng cho môi trường legacy, lab hoặc hệ thống chưa thể nâng cấp ngay.

Một điểm rất quan trọng là Ubuntu 12.04 thuộc thế hệ phần mềm cũ: Ubuntu 14.04 được Canonical mô tả là nâng từ Apache 2.2 lên 2.4 và từ PHP 5.3 lên 5.5, còn MySQL 5.5 tiếp tục được giữ ở 14.04. Nói cách khác, với Ubuntu 12.04 bạn đang làm việc trong bối cảnh Apache 2.2 + PHP 5.3 + MySQL 5.5, nên nhiều framework hoặc CMS đời mới có thể không còn tương thích.

1) Chuẩn bị trước khi cài

Trước khi bắt đầu, bạn nên xác định rõ 3 việc: hệ thống có còn truy cập được kho gói hay không, web app của bạn viết bằng gì, và bạn sẽ chạy nó ở chế độ nội bộ hay public Internet. Vì Ubuntu 12.04 đã rời kho chính và được đưa sang old-releases.ubuntu.com, trong thực tế rất thường gặp tình huống apt-get update bị lỗi mirror cũ. Khi đó, bạn thường phải sửa sources.list để trỏ sang kho lưu trữ cũ của Ubuntu. Đây là một suy luận thực tế từ việc Canonical thông báo 12.04 không còn nằm ở primary archive và kho old releases hiện vẫn chứa các bản 12.04.5.

Trước hết, sao lưu file nguồn gói:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo nano /etc/apt/sources.list

Nếu trong file còn các dòng dạng archive.ubuntu.com hoặc security.ubuntu.com, hãy đổi sang old-releases.ubuntu.com, lưu lại rồi chạy:

sudo apt-get update

2) Cài nhanh toàn bộ LAMP stack

Ubuntu Community Help khuyến nghị cách nhanh nhất là cài nguyên bộ LAMP stack bằng lamp-server^ sau khi cập nhật package index. Dấu ^ ở cuối là một phần của lệnh, không phải lỗi gõ.

sudo apt-get update
sudo apt-get install lamp-server^

Nếu lệnh này chạy trọn vẹn, bạn sẽ có sẵn Apache, PHP và MySQL cơ bản để chạy web app. Đây là cách gọn nhất khi bạn muốn dựng nhanh một môi trường legacy.

3) Cài thủ công từng thành phần nếu muốn kiểm soát rõ hơn

Nếu bạn muốn cài từng bước để dễ kiểm tra lỗi, hãy bắt đầu với Apache. Tài liệu Ubuntu Community Help nêu rõ chỉ cần cài gói apache2, khởi động lại dịch vụ, rồi truy cập http://localhost; nếu thấy trang mặc định với nội dung “It works!” từ file /var/www/index.html, nghĩa là Apache đã hoạt động.

sudo apt-get install apache2
sudo service apache2 restart

Tiếp theo là PHP. Với Ubuntu 12.04, tài liệu cộng đồng chỉ rõ mô-đun Apache cho PHP là libapache2-mod-php5, sau đó cần bật module bằng a2enmod php5 rồi restart Apache.

sudo apt-get install libapache2-mod-php5
sudo a2enmod php5
sudo service apache2 restart

Để kiểm tra PHP, tạo file test trong /var/www rồi mở bằng trình duyệt qua HTTP. Ubuntu Community Help dùng chính file test.php với nội dung phpinfo() để xác nhận PHP đã chạy qua Apache.

echo '<?php phpinfo(); ?>' | sudo tee /var/www/test.php

Sau đó mở:

http://localhost/test.php

Nếu thấy trang thông tin cấu hình PHP, phần PHP đã xong. Nếu trình duyệt lại đòi tải file .php thay vì thực thi, tài liệu Ubuntu chỉ ra nguyên nhân phổ biến là Apache chưa parse PHP, khi đó cần kiểm tra lại libapache2-mod-php5, a2enmod php5, và bảo đảm bạn đang mở bằng http:// chứ không phải file://.

Bây giờ cài MySQL và mô-đun PHP kết nối MySQL. Ubuntu Community Help hướng dẫn cài mysql-server libapache2-mod-auth-mysql php5-mysql.

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

4) Tạo cơ sở dữ liệu cho web app

Sau khi có MySQL, bạn nên tạo database riênguser riêng cho ứng dụng, thay vì dùng root. Tài liệu cộng đồng Ubuntu hướng dẫn đặt mật khẩu root, tạo database, rồi cấp quyền cho một user chỉ trên đúng database đó. Đây là cách hợp lý cho hầu hết ứng dụng web.

mysql -u root

Trong màn hình MySQL, chạy:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MatKhauRootManh');
CREATE DATABASE webappdb;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES
ON webappdb.*
TO 'webappuser'@'localhost'
IDENTIFIED BY 'MatKhauChoUngDung';
\q

Với đa số web app PHP cũ, phần cấu hình kết nối cơ sở dữ liệu sẽ cần 4 giá trị:

  • host: localhost
  • database: webappdb
  • user: webappuser
  • password: MatKhauChoUngDung

Nếu ứng dụng và MySQL cùng chạy trên một máy, bạn không cần mở truy cập MySQL từ xa. Ubuntu Community Help cũng lưu ý rằng việc đổi bind-address để cho máy khác kết nối là một rủi ro bảo mật và nên bỏ qua nếu app chạy cùng máy với MySQL.

5) Chép mã nguồn web app vào máy

Theo cấu trúc mặc định của Apache trên Ubuntu 12.04, thư mục phục vụ web mặc định là /var/www. Bạn có thể chép mã nguồn vào ngay đây, hoặc tạo thư mục con như /var/www/myapp. Ubuntu Community Help xác nhận Apache mặc định phục vụ nội dung trong /var/www.

Ví dụ:

sudo mkdir -p /var/www/myapp
sudo cp -R /duong-dan-ma-nguon/* /var/www/myapp/

Sau đó sửa file cấu hình của ứng dụng để nó dùng database vừa tạo ở bước trên.

Nếu app của bạn là PHP thuần hoặc một CMS cũ, bạn có thể kiểm tra nhanh bằng cách mở:

http://localhost/myapp

hoặc:

http://IP-may-chu/myapp

6) Cấu hình Virtual Host nếu muốn chạy theo domain riêng

Apache trên Ubuntu dùng khái niệm sites: mỗi site là một file cấu hình riêng trong /etc/apache2/sites-available, sau đó kích hoạt bằng a2ensite và vô hiệu bằng a2dissite. Ubuntu Community Help mô tả đúng cơ chế này và cho ví dụ đổi site mặc định sang một thư mục khác rồi bật site mới.

Nếu bạn muốn app chạy bằng tên miền riêng thay vì /myapp, có thể tạo một site cấu hình riêng, trỏ DocumentRoot vào thư mục ứng dụng, rồi bật site đó. Trình tự tổng quát sẽ là:

sudo nano /etc/apache2/sites-available/myapp
sudo a2dissite 000-default
sudo a2ensite myapp
sudo service apache2 restart

Điểm cần nhớ là trên Ubuntu 12.04, layout cấu hình Apache mang phong cách cũ hơn các bản Ubuntu mới, nên tên file mặc định hoặc cú pháp chi tiết có thể khác đôi chút giữa các bài hướng dẫn hiện nay. Vì vậy, cách an toàn là dựa trên file site mặc định đang có sẵn trong /etc/apache2/sites-available rồi sửa dần từ đó. Cách tiếp cận này khớp với tinh thần tài liệu Ubuntu Community Help.

7) Xử lý các lỗi thường gặp

Lỗi Apache báo thiếu FQDN

Nếu khi restart Apache bạn gặp lỗi kiểu:

Could not determine the server's fully qualified domain name

thì với các bản Ubuntu 13.04 trở xuống, Ubuntu Community Help khuyên tạo file /etc/apache2/conf.d/fqdn và thêm dòng ServerName localhost. Ubuntu 12.04 thuộc nhóm này.

echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn
sudo service apache2 restart

Lỗi mở file PHP mà trình duyệt tải file xuống

Đây là lỗi rất hay gặp trên hệ thống cũ. Tài liệu Ubuntu nêu 3 điểm cần kiểm tra: Apache có module PHP chưa, bạn có restart Apache sau khi bật module chưa, và bạn có đang truy cập qua http:// thay vì file:// không.

Muốn chỉ cho phép chạy nội bộ để test

Nếu bạn chỉ cài để debug nội bộ, Ubuntu Community Help gợi ý sửa ports.conf để Apache chỉ lắng nghe trên 127.0.0.1:80. Cách này làm web app chỉ truy cập được ngay trên máy đó, giảm phơi bày ra mạng ngoài.

sudo nano /etc/apache2/ports.conf

Đổi nội dung lắng nghe sang:

Listen 127.0.0.1:80

Rồi restart Apache:

sudo service apache2 restart

8) Khi nào hướng dẫn này không còn phù hợp?

Nếu web app của bạn là ứng dụng mới hơn, yêu cầu PHP 7/8, Apache 2.4, Composer mới, Node.js mới, hoặc MySQL/MariaDB mới, thì Ubuntu 12.04 gần như không còn là nền phù hợp. Canonical đã xác nhận 12.04 hết vòng đời từ 2017 và lộ trình nâng cấp chính thức là đi qua Ubuntu 14.04 trước, rồi mới tiến tiếp lên các bản mới hơn.

Nói ngắn gọn: hướng dẫn này phù hợp nhất khi bạn đang phải duy trì ứng dụng web cũ, cần dựng lại môi trường legacy, hoặc cần khôi phục một web app đời cũ để kiểm thử, di trú hoặc trích xuất dữ liệu.

Kết luận

Muốn cài một Web App trên Ubuntu 12.04, cách ổn định nhất là dựng lại môi trường LAMP cổ điển: Apache + PHP 5 + MySQL, sau đó chép mã nguồn vào /var/www, tạo database riêng cho ứng dụng và cấu hình Apache phục vụ ứng dụng đó. Về mặt thao tác, phần khó nhất không nằm ở lệnh cài, mà nằm ở việc Ubuntu 12.04 đã quá cũ, kho gói có thể phải trỏ sang old-releases, và nhiều ứng dụng mới sẽ không còn tương thích với stack của thời đó.

 

>> Xem thêm các gợi ý từ khóa :

  • cài đặt Web App
  • cài đặt app store tiếng việt
  • cài đặt app từ máy tính vào iphone
  • cài đặt Web App trong Ubuntu
  • cài đặt ubuntu bằng usb
  • cài đặt ubuntu song song với win 8
  • cài đặt ubuntu bằng wubi
  • cài đặt ubuntu trên máy ảo
  • cài đặt ubuntu trên máy ảo vmware
  • cài đặt ubuntu song song với win 7
  • cài đặt ubuntu từ ổ cứng
  • cài đặt ubuntu song song với windows 7

Chia sẻ bài viết

Bình luận

( 0 bình luận )
Không có bình luận nào

Bình luận của bạn

Tin tức liên quan