Phát triển thực tiễn - Practical Development 2

Đăng ngày: 11 Tháng 6 2014
Đánh giá bài này
(1 Bình chọn)
Phát triển thực tiễn - Practical Development 2 Phát triển thực tiễn - Practical Development 2

Đây là bài viết thứ hai trong loạt bài về phát triển thực tiễn, nó sẽ giải quyết vấn đề môi trường hoạt động trong việc phát triển Joomla

Bạn có thể xem thêm thông tin về phần 1 tại đây:  Phát triển thực tiễn - Practical Developmen

Thiết lập công cụ và môi trường hoạt động

Hãy xác định cấu trúc (thư mục – directory), với “project directory” cho phép thực hiện nhiều project/ website trong tiến trình công việc của bạn. Project directory sẽ là vị trí trung tâm cho tất cả các dữ liệu liên quan đến dự án, việc này giúp cho quá trình lưu trữ hoặc chuyển đổi hệ thống trở nên dễ dàng hơn.

Hãy tận dụng soft-link (cũng có trên hệ điều hành Windows) của các file và directories, tạo file từ bên ngoài “project directory” có sẵn trong phạm vi của nó. Về cơ bản, link này sẽ cho phép truy cập vào cùng một tập tin từ nhiều vị trí khác nhau.

Sau khi hoàn thành, bạn có thể tạo thiết lập phát triển (development setup) bằng một hoặc nhiều cài đặt XAMPP song song và nhiều project độc lập. Mỗi project sẽ được truy cập cục bộ thông qua Unique name trong trình duyệt.

Những việc cần thực hiện:

- Thiết lập project directory (trong folder Folder structure)

- Cài đặt XAMPP để server được tích hợp sẵn Apache, PHP và MySQL

- Thiết lập cấu hình hệ thống và Apache webserver cho hosting ảo và hosting name based (vhost)

- Điều chỉnh cấu hình bằng cách sử dụng “links”

Project directory

Cấu trúc đã xác định cho phép chúng ta giữ tất cả dữ liệu của dự án vào cùng một chỗ với  quy ước đặt tên giúp cho chúng ta (và bất kỳ công cụ nào được sử dụng) cũng có thể dễ dàng tìm kiếm. Bằng cách sử dụng các tham chiếu tương đối, chúng ta không thể biết nền tảng OS nào được sử dụng (Windows, Linux, Mac). Bằng cách này, bạn có thể di chuyển project của mình từ hệ thống này sang hệ thống khác và lưu trữ nó bằng cách di chuyển Project base directory với tất cả các dữ liệu có liên quan trong đó.

Để mô tả cấu trúc Project directory, chúng ta sẽ sử dụng quy ước đặt tên. Bất kỳ cái tên nào nằm giữa ## đều là các tham biến bạn có thể sử dụng - chúng sẽ được “thay thế” bằng bất kỳ yếu tố nào mà bạn muốn.

Thiết lập cơ bản (basic setup) được đề xuất có dạng như sau:

##PROJECTS##/[apps]

/[archive]

/local.##DOMAIN##/www

   |                /logs

   |                /backup

   |                /patches

/local.##DOMAIN##/www

     /logs

     /backup

Đối với các công cụ XAMPP

##XAMPP_INSTALL##/apache/conf

  /php      

  /mysql

##XAMPP_INSTALL## sẽ là thư mục cài đặt cho XAMPP

##PROJECTS## là nền tảng cho cấu trúc Project directory được sử dụng để lưu trữ tất cả các project của bạn.

Tôi sẽ thiết lập “d: /virtualhosts/” làm Project directory trong suốt bài viết này.

##DOMAIN## là tên miền cho các project tương ứng (điều này sẽ được giải thích chi tiết hơn ở phần sau), chúng ta có Project base directories là ##PROJECTS##/local.##DOMAIN##

XAMPP

XAMPP là một trong những tùy chọn có sẵn để chạy web server địa phương, MySQL và PHP trên hệ điều hành Window (hoặc các nền tảng khác). Cài đặt và hoạt động cơ bản của nó được bao phủ rộng rãi trên toàn mạng lưới.

Cài đặt XAMPP song song

Thông thường, chúng ta sẽ sử dụng phiên bản mới nhất, nhưng nếu bạn làm việc với Joomla! (hoặc bất kỳ nền tảng nào có các yêu cầu cụ thể), bạn có thể xác định phiên bản cụ thể cần sử dụng. Nó có thể chạy song song các phiên bản XAMPP khác nhau. Vì vậy, hãy lựa chọn phiên bản XAMPP có tích hợp Apache, MySQL hoặc các version PHP cụ thể mà mình quan tâm và cài đặt chúng song song.

Đối với eXAMPPle, khi nhìn vào tham biến PHP, bạn có thể lưu tâm tới các version sau:

1.7.7   last XAMPP version with php 5.3    (5.3.8)
1.8.2-1 last XAMPP version with php 5.4.x  (5.4.16)
1.8.3-0 first XAMPP version with php 5.5   (5.5.1)

Bạn có thể cài đặt song song nhiều phiên bản kết hợp với nhau, nhưng thông thường chỉ có một version hoạt động mà thôi!

Trong set-up hiện tại, tôi cài đặt 2 version PHP 5.4 (mặc định) và phiên bản PHP 5.3 để sử dụng với Joomka! 1.5. Tuy nhiên, bạn cũng có thể cân nhắc PHP 5.5 cho một số thử nghiệm quan trọng.

Vị trí cài đặt XAMPP

Bạn có thể tự do cài đặt XAMPP ở bất cứ vị trí nào trên ổ đĩa máy tính của mình. Đối với eXAMPPles tích hợp Php 5.4 và Php 5.3 (đã đề cập ở trên), tôi thiết lập chúng lần lượt như sau:

C:\Portable\XAMPP

C:\Portable\XAMPP-php53

Để phục vụ cho việc tham khảo sau này, việc cài đặt/ giải nén XAMPP tại vị trí  C:\Portable\XAMPP hoặc C:\Portable\XAMPP-php53 sẽ được đề cập dưới dạng ##XAMPP_INSTALL##

Thiết lập Name-based Hosting

Chúng ta đều mong muốn có thể làm việc trên các Development sites/ set-up song song, vì vậy, mỗi Development sites sẽ chạy trên Virtual host riêng, và hoạt động như một website thực sự với tên miền riêng biệt. Đây không chỉ là phương thức tiếp cận nhanh gọn mà nó còn cần thiết khi chúng ta đề cập đến vấn đề gỡ rối các lỗi sau này.

Để thực hiện, chúng ta cần thiết lập Name-based Hosting và một file Host, Virtual Host Configuration cho Apache, và cuối cùng là Vhosts Configurations Files cho mỗi dự án.

file hosts

Hãy nghĩ file host cũng tương tự như một chiếc điện thoại, khi trình duyệt của bạn cần kết nối với website, nó phải tìm kiếm số điện thoại của site đó thông qua tên của nó trong danh bạ điện thoại. Để kiểm tra cục bộ, file host địa phương cũng đóng vai trò tương tự như danh bạ điện thoại.

Server chạy trên máy tính của bạn thường được truy cập thông qua địa chỉ IP 127.0.0.1. Hiện nay, chúng ta có thể liên kết địa chỉ IP đó với nhiều website khác nhau bằng cách thêm chúng vào file host. Trình duyệt có thể sử dụng tên của website để kết nối, ví dụ đối với eXAMPPle, quá trình sẽ được thực hiện bằng cách nhập đường dẫn http://local.viryagroup.com vào thanh địa chỉ.

Trên các máy sử dụng hệ điều hành Linux, file hosts có thể được tìm thấy tại “/etc/hosts”. Trên hệ điều hành Windows, nó bị ẩn đi nhiều.

Đặt tên cho website, bổ sung các mục (entries) vào file host

Hãy sử dụng một số quy ước đặt tên cho Development sites, tốt nhất chúng nên liên quan đến production site. Theo quy ước, bạn nên xây dựng tên miền của site trong Construction (production site), mà không chứa www. và sử dụng nó như cơ sở để đặt tên.

Các website đang chạy trên máy tính địa phương của bạn sẽ có tên bắt đầu bằng “local.” (ví dụ: local.viryagroup.com) và Development site bên ngoài, được chia sẻ sẽ có tên bắt đầu bằng “dev.” (ví dụ: dev.viryagroup.com). Sử dụng quy ước đặt tên này cũng rất hữu ích khi sử dụng các công cụ để ghi nhớ mật khẩu như KeePass hoặc Lastpass.

Chúng tôi sẽ đề cập tên miền của Production Site dưới dạng  ##DOMAIN## và các trang local hoặc dev sẽ tồn tại dưới dạng ##SUB##.

Ví dụ, Production Site viryagroup.com sẽ có một trang bản sao địa phương là local.viryagroup.com (local.##DOMAIN##) và các entries cho file host sẽ là:

127.0.0.1  local.viryagroup.com

127.0.0.1  www.local.viryagroup.com

Để phục vụ mục đích phát triển hợp tác, chúng tôi sẽ chọn dev.viryagroup.com (dev.##DOMAIN##). Website này sẽ được lưu trữ trên một server bên ngoài. Để truy cập vào “dev” serve”, bạn có thể thêm nó vào file host địa phương, hoặc tốt hơn, hãy thêm nó vào DNS của DOMAIN bằng cách thêm A Records (Address Record) tương tự entries của file hosts vào zone_file. Ngoài việc chỉnh sửa Zone File, chúng ta không có cách nào khác để thực hiện việc đó, nhưng hầu hết các nhà cung cấp hosting đều cung cấp cPanel hoặc một số web-interface khác để dễ dàng bổ sung A records. Thiết lập website “dev” trong DNS cho phép thực hiện tiến độ chia sẻ dễ dàng hơn với khách hàng. Khi thử nghiệm, hãy chắc chắn thiết lập giá trị TTL (time to live) ngay từ đầu cho Records đến một giá trị thấp để đảm bảo những thay đổi của bạn được lan truyền nhanh chóng.

Cấu hình Apache

Chúng ta đã nắm được quá trình đặt tên và tra cứu tên miền website, bây giờ chúng ta cần nói cho web-server, Apache trong XAMPP cách thức mình mong muốn xử lý website và vị trí để tìm kiếm nội dung. Vị trí ##XAMPP_INSTALL##/apache/conf sẽ nắm giữ các file cấu hình được sử dụng bởi Apache. Các files được sửa đổi là extra/httpd-vhosts.confhttpd.conf.

extra/httpd-vhosts.conf

##XAMPP_INSTALL##/apache/conf/extra/httpd-vhosts.conf

Trước tiên, chúng ta cần kích hoạt “name based virtual hosts” trong Apache web-server (XAMPP). Loại bỏ dấu hiệu “#” trong ##NameVirtualHost *:80

NameVirtualHost *:80

Để tiếp cận với các ứng dụng “XAMPP” gốc thông qua vhost có tên là “XAMPP”, vị trí của tài liệu gốc sẽ là “##XAMPP_INSTALL##/htdocs”. Bạn có thể tùy chọn bổ sung dòng sau đây vào phía cuối httpd-vhosts.conf (thay thế ##XAMPP_INSTALL## bằng vị trí mình mong muốn):

<VirtualHost *:80>
    ServerName XAMPP
    DocumentRoot     "##XAMPP_INSTALL##/htdocs"
</VirtualHost>

Xác định vhosts : sites-available sites-enabled

Tiếp theo chúng ta sẽ tạo ra các vhosts thực tế để sử dụng trong web-server, trong đó mỗi file vhost sẽ xác định cấu hình cụ thể của website đó. Bây giờ chúng ta có thể bổ sung tất cả các cấu hình vhosts của mình vào httpd-vhosts.conf, tuy nhiên, chúng ta sẽ sử dụng phương thức tiếp cận dựa trên cấu trúc (như sử dụng trong “Debian”). Chúng ta sẽ tạo ra file ##DOMAIN##.conf  riêng lẻ cho các website tương ứng (vhosts/ domains).

Những files cấu hình này sẽ được lưu trữ và kiểm soát từ folders sites-available sang sites-enabled.

sites-available

##XAMPP_INSTALL##/apache/conf/sites-available

Directory sites-available sẽ giữ tất cả các files ##DOMAIN##.conf mà chúng ta có thể sử dụng, Directory đó mà cần phải được tạo ra. Lưu ý rằng kích hoạt thực tế của vhosts sẽ xảy ra sau.

Như đã nêu trong phần Working structure (cấu trúc hoạt động), chúng ta sẽ tổ chức tất cả các vhosts vào cùng một vị trí có tên là ##PROJECTS##. Vì vậy, đối với một website riêng lẻ, chúng ta sẽ có:

##PROJECTS##/##SUB##.##DOMAIN##

làm nền tảng. Đối với eXAMPPle chúng ta có:

D:\VirtualHost\local.viryagroup.com\www

              |                                 \logs

                   \local.joomla3\www 

                              \logs

Bây giờ các file vhost.conf mà chúng ta cần tạo cho từng project cần quy chiến đến các thư mục hoạt động:

<VirtualHost *:80>
    ServerName       ##SUB##.##DOMAIN##
    ServerAlias      www.##SUB##.##DOMAIN##
    DocumentRoot     "##PROJECTS##/##SUB##.##DOMAIN##/www"
    ErrorLog         "##PROJECTS##/##SUB##.##DOMAIN##/logs/error.log"
    CustomLog        "##PROJECTS##/##SUB##.##DOMAIN##/logs/access.log" combined
    <Directory       "##PROJECTS##/##SUB##.##DOMAIN##/www">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
#        Order allow,deny
#        Allow from all
        Require all granted        
    </Directory>
</VirtualHost>

Trong thiết lập này, www và các thư mục logs là bắt buộc. Bạn cần tạo chúng như các directories phụ đến ##PROJECTS##/##DOMAIN##. Nếu thực hiện không thành công, nó sẽ khiến XAMPP không thể bắt đầu.

Khi hoàn thành, file vhost.conf sẽ trông giống như sau:

<VirtualHost *:80>
    ServerName         local.viryagroup.com
    ServerAlias           www.local.viryagroup.com
    DocumentRoot     "D:\VirtualHost\local.viryagroup.com\www"
    ErrorLog              "D:\VirtualHost\local.viryagroup.com\logs\error.log"
    CustomLog          "D:\VirtualHost\local.viryagroup.com\logs\access.log" combined
    <Directory           "D:\VirtualHost\local.viryagroup.com\www">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted        
    </Directory>
</VirtualHost>

Bạn có thể điều chỉnh bất kỳ file vhost.conf nào cho nhu cầu riêng của mình. Số lượng tuỳ chọn là vô tận nhưng vấn đề này không nằm trong phạm vi bài viết.

sites-enabled

##XAMPP_INSTALL##/apache/conf/sites-enabled

Bây giờ chúng ta đã biết (từ sites-available) vhosts nào mà mình có thể sử dụng và cách thức thiết lập chúng, việc tiếp theo chúng ta cần xác định đâu mới là file mình sẽ thực sự sử dụng. Directory sites-enabled nắm giữ các file từ sites-available, cho file vhosts được sử dụng thực tế.

Chúng ta có thể sao chép file vhost.conf  liên quan vào Directory này, hoặc tốt hơn, hãy tạo ra một soft-link từ vị trí “sites-available”.

Sau khi website được kích hoạt, hãy khởi động lại Apache web-server bằng cách sử dụng bảng điều khiển XAMPP.

httpd.conf

##XAMPP_INSTALL##/apache/conf/httpd.conf

Với tất cả các file vhost.conf trong vị trí sites-enabled, chúng ta vẫn cần phải nói cho Apache về nó để chúng dần làm quen. Để thực hiện, bạn phải chỉnh sửa file httpd.conf. Hãy tìm kiếm mục:

# Virtual hosts
Include "conf/extra/httpd-vhosts.conf"

và bổ sung dòng lệnh sau:

Include "conf/sites-enabled/*"

Linking

Soft-linking của các files và directories là một khái niệm phổ biến trong hệ điều hành Linux. Linking quá đơn giản sẽ cho phép trỏ đến file/ folder riêng lẻ từ nhiều vị trí. Sử dụng soft-linking, bạn có thể truy cập các file và directories từ những vị trí dễ nhớ và hợp lý hơn, tránh sự trùng lặp dữ liệu.

Trái ngược với suy nghĩ của hầu hết người dùng, linking cũng có sẵn trong các phiên bản hệ điều hành Windows gần đây thông qua lệnh mklink.exe. Các hình thức của linking bao gồm:

Softllink, tham chiếu rõ ràng đến một file khác, tồn tại dưới dạng “filename”

Hardlink, tham chiếu đến một tập tin khác (tham chiếu nội dung của nó)

Junctions, là folder mà softlink trỏ đến một file

Tuy nhiên, không phải tất cả các ứng dụng (applications) đều có thể nhận thức và chuẩn bị sẵn sàng tâm lý để xử lý các vấn đề về liên kết. Lưu ý những hạn chế có thể xảy ra do mức độ hỗ trợ từ các công cụ có liên quan.

XAMPP related link trickery

Để giữ cho quá trình tổ chức ngăn nắp hơn, chúng ta có thể di chuyển “sites-enabled” và “sites-available” vào trong thư mục eXAMPPle ##PROJECTS##/[apps] nhằm giữ nó trong Projects Directory.

Để tránh việc trùng lặp do cài đặt XAMPP nhiều lần, chúng ta có thể cần một Directory phản ánh phiên bản XAMPP. Giống như  ##PROJECTS##/[apps]/xampp173/sites-enabled sau đây:

##PROJECTS##/[apps]/xampp177/sites-available
                   |                             /sites-enabled
                                 /xampp183/sites-available
                                                 /sites-enabled

Sau khi hoàn tất trên Windows, junction có thể được sử dụng để “liên kết” Directory sites-enabled trở lại phạm vi của XAMPP.

##PROJECTS##/[apps]/xampp177/sites-available
                                 /sites-enabled       =J> ##XAMPP_INSTALL##/apache/conf/sites-enabled

Lưu ý rằng trong thiết lập này (sử dụng junctions) của hệ điều hành Windows, bạn cần sao chép tập tin vhost.conf từ ##PROJECTS##/[apps]/xampp177/sites-available sang ##PROJECTS##/[apps]/xampp177/sites-enabled. Tuy nhiên, soft-linking không hoạt động trong junctions.

Xuân Trung

Gửi bình luận

Hãy nhập đầy đủ các thông tin yêu cầu trong ô có dấu (*). Không được phép sử dụng mã HTML.

LIKE để ủng hộ bạn nhé!

 

Tham gia diễn đàn seo hàng đầu Việt Nam

Has no content to show!