Giải quyết vấn đề FTP sau khi cài đặt OpenLiteSpeed

Đây là bài thứ ba mình viết về phần mềm này. Hai bài trước đó mình đã chỉ cách cài đặt OpenLiteSpeed cùng với phiên bản PHP riêng, rồi sau đó là cài đặt virtual host và listener.

Sau khi thực hiện theo hai bài hướng dẫn đó, mọi người đã có thể đăng mã nguồn lên và chạy được rồi. Nhưng đối với một số mã nguồn phức tạp như WordPress chẳng hạn (có giao diện upload file hay giao diện cài đặt bổ sung từ bên ngoài), thì có một số lỗi liên quan đến phân quyền có thể phát sinh, khiến quá trình upload, cài đặt, cập nhật, v.v… qua giao diện của mã nguồn đó bị dừng lại. Ngoài ra, việc điều chỉnh lại user và group cho thư mục document root là nobodynogroup sẽ khiến cho việc upload file qua giao thức FTP trở nên khó khăn nếu không sử dụng quyền của user root (hay chạy lệnh kèm sudo).

Vì thế mình viết bài này để giúp các bạn giải quyết toàn bộ các vấn đề đó mà không cần phải cài đặt thêm File Manager chạy trên nền web.

Tiếp tục đọc

Listener và virtual host trong OpenLiteSpeed

Thời gian qua, mình đã dành nhiều thời gian thử nghiệm phần mềm OpenLiteSpeed trên server. Có một số thiết lập dễ dàng ăn ngay, cũng có một số thiết lập cần thêm các bước cài đặt bổ sung từ giao diện dòng lệnh. Mình cũng đã thông báo một vài lỗi cho LiteSpeed Technologies (công ty đứng đằng sau OpenLiteSpeed) thông qua trang GitHub họ tạo ra cho OpenLiteSpeed. Đến hôm nay, khi có một lỗi liên quan đến cache được họ xác nhận và sửa chữa thì mình quyết định dừng thử nghiệm, và quay lại tiếp tục viết hướng dẫn cài đặt và thiết lập OpenLiteSpeed.

Bài này giả sử rằng các bạn đã thực hiện cài đặt OpenLiteSpeed bản mới nhất trên máy ảo chạy hệ điều hành Ubuntu như mình đã viết ở bài trước. Nếu các bạn đã thực hiện cài đặt theo bài đó thì các bạn sẽ thực hiện thiết lập theo bài này thuận lợi hơn nhiều. Nếu không thì các bạn hãy tự điều chỉnh một cách tương ứng với môi trường máy ảo mà các bạn đang sử dụng.

Bài này hướng dẫn tạo và thiết lập virtual host trên OpenLiteSpeed. Có điều, tại sao tiêu đề bài viết này lại có cả listener (cổng nghe)? Lí do là…

Thiết lập virtual host trên Apache và NGINX có kèm theo việc chỉ định luôn cổng cho virtual host để nghe từ bên ngoài, còn OpenLiteSpeed thì tách riêng thiết lập cổng. Việc này tiện cho việc sử dụng một cổng cho nhiều virtual host và ngược lại. Thiết lập cổng nghe (listener) trên OpenLiteSpeed còn có tuỳ chọn riêng hạn chế truy cập. Hãy ấn nút đọc tiếp bài này để hiểu kĩ hơn nhé.

Tiếp tục đọc

Cài đặt OpenLiteSpeed tại Amazon EC2

Xin chào! Hôm nay mình sẽ bắt đầu kể về quá trình di dời trang web của mình sang dịch vụ Elastic Computing Cloud (EC2) thuộc Amazon Web Services.

Mình xác định sẽ sử dụng một phần mềm server nhẹ và nhanh nhất có thể tại đó. Trước đây mình từng cài đặt Apache và NGINX, mình thấy được một số ưu điểm và nhược điểm của chúng:

  • Apache: Rất linh hoạt trong việc sử dụng module, thiết lập quyền truy cập và viết lại (rewrite) đường dẫn theo từng cấp thư mục. Đối với những người đã quen với hosting chia sẻ (shared hosting), file .htaccess là một thứ vô cùng quen thuộc và đó là một file thiết lập của Apache áp dụng ở thư mục trong website. Tuy nhiên, Apache phục vụ nội dung tĩnh chậm. Có thể giải quyết nhược điểm này bằng cách tắt (ngừng kích hoạt) bớt module không sử dụng đến, nhưng cách đó không triệt để.
  • NGINX: Chỉ ở các bản mới đây (từ 1.9.11 trở đi), NGINX mới có thể kích hoạt module một cách linh hoạt giống Apache. Nó tỏ ra kém linh hoạt hơn Apache trong việc thiết lập quyền truy cập và viết lại đường dẫn, tất cả thiết lập đó đều phải được liên kết với file nginx.conf (cụ thể là liên kết qua dòng include), và chỉ được áp dụng sau khi khởi động lại NGINX. Bù lại, NGINX phục vụ nội dung tĩnh cực kì nhanh.
  • Cả hai đều có module đệm (cache) riêng, nhưng chưa có ai sử dụng các module đó cho việc lưu trữ tạm thời các kết quả xử lí của PHP hay các ngôn ngữ khác sử dụng trình thông dịch (Python, Ruby, JavaScript,…). May mắn là đối với PHP, người ta đã cung cấp một số gói mở rộng (extension) để ghi đệm các kết quả của nó như APC, OPcache, Memcached,… Hoặc, có một phần mềm cache độc lập tên là Varnish, cực kì tốt cho các server phục vụ nhiều nội dung thay đổi thường xuyên.

Nhưng trước mắt, mình mong muốn tìm được một phần mềm server chứa sẵn tất cả những ưu điểm của cả Apache và NGINX, hơn nữa lại có module cache hoạt động nhanh và linh hoạt như Varnish. Có một phần mềm server thực hiện được, đó là LiteSpeed. Nó được sử dụng ở một số dịch vụ hosting thay cho Apache. Nó có một phiên bản mã nguồn mở tên là OpenLiteSpeed, và mình mong đợi rất nhiều vào nó với khả năng mở rộng rất linh hoạt.

Tiếp tục đọc

Cách mở và đóng cổng (port) trên Amazon EC2

Nếu đợi mãi mà không kết nối được đến máy ảo EC2 (Elastic Computing Cloud), trước hết hãy kiểm tra cổng (port) và mở cổng! Sở dĩ vậy là vì…

Ngay từ khi tạo máy ảo (instance) EC2 mới, Amazon Web Services (AWS) đã áp dụng một thứ gọi là security group (“nhóm an ninh”) lên máy ảo này. Ban đầu, máy ảo EC2 hoàn toàn không được mở cổng kết nối nào với môi trường Internet bên ngoài. Security group được áp dụng lên nó chứa các luật mở cổng. Trong quá trình tạo máy ảo, AWS cho phép bạn xem và thực hiện các thay đổi cần thiết cho security group, nhưng có vẻ bạn đã bỏ qua việc đó mất rồi!

Đừng lo, bạn có thể thay đổi lại security group tương ứng với instance bạn đã tạo, để mở cổng trên máy ảo, cho phép bạn kết nối đến máy ảo đó, qua cổng bạn cần. Nếu ban đầu bạn không có thay đổi gì, thì security group được áp dụng cho instance EC2 bạn cần kết nối đã chứa sẵn luật mở cổng SSH (22) cho bất cứ địa chỉ IPv4 nào kết nối đến. Ví dụ, bây giờ bạn mới cài xong một phần mềm server, nó có trang quản trị riêng truy cập được bằng trình duyệt web qua cổng 8080, và bạn loay hoay không tìm được cách vào, trong khi phần mềm tường lửa thì bạn đã cài đâu…

Tiếp tục đọc