post image

Tips – Virtual Directory in Apache

Chào mọi người. Hôm nay tanlevis xin giới thiệu 1 mẹo để cấu hình server apache tại localhost có địa chỉ link giống tên miền xịn như http://izwebz.com, http://name.vn thay vì lúc nào cũng http://localhost/thu_muc_lam_viec. Để làm được điều đó, chúng ta phải dựa vào cơ chế thư mục ảo (Virtual Directory) giống như cơ chế thư mục ảo trong IIS của windows là trỏ địa chỉ trang web vô 1 thư mục nào đó trong máy.

Trong bài viết này mình cài WAMP nên mọi người xài XAMP hay bộ nào khác thì có khác biệt đôi chút về thư mục chứa file cài đặt, còn về các file config thì hầu như không khác biệt là mấy.

Cài đặt thư mục

Hãy cài đặt thư mục với cấu trúc tương tự như sau trong thư mục cài đặt WAMP (ở đây tôi cài vào C:\wamp):

config_thu_muc
Cài đặt file hosts

Dùng notepad mở file hosts của windows ra và thêm tên miền tùy thích vào cuối file theo cấu trúc như sau:

config_file_host
  • Cột bên trái hãy để nguyên là: 127.0.0.1, vì đây là địa chỉ dùng để loopback của windows
  • Cột bên phải điền tên miền bạn thích vào vd: design.com
  • Những phần sau dấu # là chú thích có thể có hoặc không

Tips: vào run(phím window + R) gõ C:\WINDOWS\system32\drivers\etc –> enter

Cấu hình file httpd.conf của apache

  • Tạo một file mới có tên là: virtual-hosts, và phần đuôi mở rộng là: conf, tên file đầy đủ là: virtual-hosts.conf
  • Dùng notepad mở file httpd.conf trong thư mục “wamp\bin\apache\Apache.version\conf.
  • Thêm vào cuối file nội dung như sau: Include conf/virtual-hosts.conf
  • Vào Run gõ cmd –> enter: Dùng lệnh cd ten_thu_muc để di chuyển tới thu mục trong cùng là bin, và gõ lệnh httpd.exe -t để kiểm tra cú pháp, nếu thông báo là Syntax Ok thì đã thành công ròi đó, còn không thì hãy kiểm tra lại tiến trình làm có gì sai không.
    check_syntax
  • Mở file virtual-hosts.conf đã tạo trước đó ra và thêm nội dung như sau:

    alt=”config_file_virtual_hosts” />
    -ServerName: tên miền đã đặt ở trên, vd: design.com.
    -DocumentRoot: dùng đường dẫn tuyệt đối tới thư mục chứa các file php hay thư mục cài đặt wp.
    -CustomLog: ghi lại log của trang web trong thư mục cài đặt.
    -ErrorLog: ghi lại những lỗi phát sinh khi chạy trang web, chúng ta có thể dựa vào đây để kiểm tra xem trang web thực sự đã sạch lỗi hay chưa.

Kiểm tra và sửa lỗi
  • Chuyển qua của sổ Command Line (cmd)./li>
  • Chạy lệnh: httpd.exe -S (chú ý: chữ S viết hoa).
    -Nếu thành công thì kết quả sẽ tương tự như sau:

    last_checking

    -Ngược lại hãy kiểm tra các bước cài đặt ở trên và dựa theo thông báo lỗi để sửa.

    Tiếp theo ta phải restart lại apache để nạp vào những cấu hình ta đã thêm cụ thể như sau:

    stop_restart_apache
  • Nếu nhận được thông báo như trong hình thì đã cấu hình thành công, còn không thì hãy kiểm tra kĩ các bước thực hiện
  • -Restart apache xong ta vào trình duyệt gõ tên miền đã đặt vào vd: design.com.
    -Nếu gặp lỗi “403 Forbidden” thì là chuyện bình thường không có gì phải lo lắng cả. Lỗi này là do trong thư mục cài đặt web không có file index.html, hãy tạo 1 file index.html với nội dung tùy ý theo chuẩn HTML. Giả thích lỗi này như sau: mặc định thì apache không cho liệt kê ra danh sách các file hay các thư mục có trong thư mục web, do vậy thêm file index.html vào để vượt qua lỗi này
Kết quả cuối cùng
result
Lời kết

- Những gì tôi đã làm ở trên đây và đã chạy thành công. Nếu mọi người gặp lỗi gì trong quá trình config thì hãy comment để cộng đồng izwebz fix lỗi dùm cho.
- Mọi đóng góp ý kiến xin hãy để lại comment bên dưới nha. Chúc mọi người vui vẻ với Virtual Directory

-Tiện đây tôi xin giới thiệu 1 IDE phát triển PHP có tên Aptana. Hiện nay đã có version 2.0.5 xài cũng tốt. Ưu điểm: Quản lý các function, class rất tốt, hỗ trợ auto complete khi gõ code. Nhược điểm: Có nguồn gốc từ Eclipse nên chạy trên nền Java vì thế nếu máy cấu hình không được tốt lắm thì đừng nên cài. Link:  http://www.aptana.com/products/studio2/download

«

»

35 Comments

( Comment bài này )
  1. thanh4890 says:

    Cảm ơn anh đã chia sẻ, em hiện đang học web, em sử dụng apache, viết code cgi script bằng c++ ( cái này em cũng không bít nói thế nào cho rõ hơn nữa :D ), sau đó biên dịch ra file .exe, rồi vứt vào cgi-bin của apache, tất cả chỉ là làm offline thôi thì oke.

    Em đang có 1 vấn đề mong anh giải đáp, đó là em vừa tạo một web free riêng của mình, em có upload những file đó lên, nhưng mỗi lần em muốn chạy những file exe kia thì không được, nó down về lun, mà không biên dịch giống trên apache và hiện nội dung giống khi em làm offline, mong anh tư vấn giúp, cảm ơn anh rất nhiều :D

    • tanlevis says:

      Theo mình biết thì k phải host nào cũng cho chạy file exe. Bạn kiểm tra lại host đó xem sao?. Kinh nghiệm cgi của mình thì = 0 :D

  2. Nguyen Cuong says:

    đã cài đặt thành công nhưng đến khi dừng dịch vụ (net stop wampapache) và khởi động lại dịch vụ (net start wampapache) thì máy báo lỗi system error 5 has occurred. accessed is denied.
    Tôi dùng Apache2.2.17.
    Xin được gỡ lỗi giúp.
    Thank.

    • tanlevis says:

      hi, mình chưa gặp lỗi này bao h. Nghe có vẻ như là bị giới hạn quyền truy cập dịch vụ ấy nhỉ :D . Bạn đang là administrator đó chứ?

  3. Văn Quý says:

    - Mình làm kết quả cuối cùng ok như bạn đã hướng dẩn nhưng khi gỏ localhost nó củng ra trang web mình đã chỉ định.
    - Mình muốn vào phpmyadmin thì phải làm sao? gỏ vào localhost/phpmyadmin nó báo 404 Not Found

    • tanlevis says:

      hi, tên miền mới = localhost thôi, zô phpmyadmin bình thường k có vấn đề j cả. Mình làm vậy hoài có sao đâu, bạn thử tenmenmoi.com/phpmyadmin xem nào

  4. Chào bạn.
    Mình có 1 vấn đề muốn hỏi. Mình sài Vertrigo. Mình làm theo Tut rất ok (tất nhiên có 1 số khác biệt).
    Vì mình thường sài Port 8080 (localhost:8080).
    #Listen 12.34.56.78:80
    Listen 8080
    - Nếu vẫn để port 8080 (trong file httpd.conf) đó khi truy cập localhost:8080 hoặc tinhocvn.net:8080 thì mặc định vào thư mục gốc www của Vertrigo
    - Nếu để port 80 khi truy cập = localhost hoặc tinhocvn.net thì trỏ nó lại trỏ vào thư mục web trong thư mục tinhocvn.net

    DocumentRoot “C:/Program Files/VertrigoServ/www/tinhocvn.net/web”

  5. Hiếu says:

    Anh có biết tại sao site thế giới manga lại làm được domain dạng : truyện-tranh.vn không? (Có dấu đó) ?_?

  6. svbooks says:

    anh có hướng dẫn chi tiêt hơn được không ạ. chỗ phải dùng đến lệnh dos ấy ạ.cảm ơn anh nhiều

  7. Giahamho says:

    Chào tanlevis có thể hướng dẫn trên *.nix được không Ví dụ với CentOS Server hoặc Ubuntu Server chẳng hạn
    Cám ơn rất nhiều

  8. TCao says:

    Sao em ko thay đổi được file host của window là sao anh?

  9. pencil says:

    hi anh,
    tut này hay và thiệt thực lắm
    hiện em thấy anh có cung cấp host cho sinh viên.
    Tiện thể em hỏi tí, hiện em cũng đang tính lập server riêng tại gia nhưng chưa biết chi phí hàng tháng bao nhiêu?
    em tính thuê đường truyền ADSL đang dùng chát chít hàng ngày, nâng lên gói 2MB (^_^), hơi chuối nhưng vừa túi tiền.
    anh đã lập server thì share em ít kinh nghiệm nhé.
    thạnks anh nhìu

    • tanlevis says:

      @pencil: Lap server ở nhà á. Sao U lại thích làm vậy. Host + domain rẻ mà chừng 1tr6/1 năm. Nếu làm server ở nhà thì máy phải khủng, đường truyền mạnh chưa nói tới phải cần 1 con IP tĩnh, nếu không muốn cúp điện thì lại update ip. Nói chung là đi thuê tiện hơn. :D

      • pencil says:

        @tanlevis : đi thuê server có rất nhiều cái bất tiện, thứ nhất dung lượng và băng thông hạn chế, nếu site bạn bị tấn công DDOS thì rất dễ bị cắt host.
        khi dự án bạn lớn mà bạn giao toàn bộ source cho họ thì khác nào trao chìa khóa nhà cho họ. Không kể là trên host đó có rất nhiều website dùng chung host–>backdoor
        mình nghĩ nếu website bạn cần dung lượng lớn và lượng truy cập vừa thì sắm cái server HDD 2TB thì dùng vô tư. mà bạn có thể quản lý được server hàng ngày. an toàn về bảo mật

  10. Bigson says:

    Nhưng mà máy mình dùng IIS vậy có cách nào để config như thế k vậy…/?????

  11. Lâu lâu ko thấy IZWEBZ ra thêm bài photoshop nào mới?

  12. Bài viết hay, nhưng các bạn lưu ý, chỉ nên đặt cái domain trong file host đối với những domain giả định thôi, tránh trường hợp trùng lấp với domain thật giống bác C.S nói đấy, chúng ta có thể test với domain thật trong môi trường VMWARE, tạo các host chạy trên VMNET 1, không cho các host ra Net, test kiểu này là tốt nhất!

  13. Lê Minh Tuấn says:

    Rất cám ơn bài viết của bạn, nhưng theo mình có lẽ hơi ” thừa “, tại sao không sử dụng tính năng “Put Online” của Wamp server, sau đó edit file host trỏ về IP local.
    Thật chất file host có chức năng tương tự 1 dns “thu nhỏ”

  14. Duc Nguyen says:

    Các pro cho em hỏi phần post trong wp của em sao nó cứ hiển thị hết nội dung, chứ không hiển thị 1 ít ? làm cách nào cho nó hiển thị 1 ít thôi, sao đó muốn xem hết thì ấn read more

    • Nguyen Duc says:

      Có vài cách (thật ra nhiều hơn) để làm việc này:
      1. Bạn dùng chức năng readmore của wordpress, chọn vị trí và click vào cái biểu tượng chia trang ở WYSIWYG.

      2. Nhập cho phần excerpt (Cài này phụ thuộc vào theme).

      …vài cách nữa nếu biết PHP.

  15. Nguyen Duc says:

    Cách này rất tốt để bạn có thể để dạng src của img như “/images/product”, khi quăng lên host ko cần sửa lại, kể cả htaccess cũng rất có ích khi xài virtual host config này. thanks!

    • Nguyen Duc says:

      Có vài cách (thật ra nhiều hơn) để làm việc này:
      1. Bạn dùng chức năng readmore của wordpress, chọn vị trí và click vào cái biểu tượng chia trang ở WYSIWYG.

      2. Nhập cho phần excerpt (Cài này phụ thuộc vào theme).

      …vài cách nữa nếu biết PHP.

  16. nhtera says:

    Cái này demo cho khách hàng thì chuẩn, còn code bình thường sài localhost là được rồi :D . Thank bác đã chia sẻ

    • tanlevis says:

      :D Mình ngán localhost ở chỗ lúc nào cũng gõ tên thư mục làm việc zô address. Với lại làm trên WP thì siteurl và home là localhost/thu_muc. Đem up len host thì phải đi update lại nó cũng tốn công hơn, đấy là chưa nói dùng các custom field có value là link tĩnh trong trang nữa @-)

  17. Hay ! Nhưng nảy sinh một vấn đề, nếu sử dụng Izwebz.com cho IP 127.0.0.1 thì muốn truy cập Izwebz.com thật bạn phải tắt bỏ chương trình SVer của bạn. Cũng đừng ngạc nhiên khi thấy máy tự nhiên truy cập Izwebz lại hiển thị trang ProJect của mình nhé ^^

    Nói chung bài viết xúc tích, là một ứng dụng khá hay cho các coder tại localhost ^^.

    Thanks tanlevis

  18. Một thủ thuật hay!

  19. luckymancvp says:

    Aptana trước là ide cho js. Bây h ra bản 3.0 beta hỗ trợ lập trình php nhưng mình ko tài nào chạy được file php, có thể là do cấu hình server :-/

    • tanlevis says:

      @luckymancvp: :D Mình chạy ngon lành cành đào mà bạn. Load project wordpress chạy rất đã. Link tới function để coi description rất rõ. Aptana hỗ trợ API của PHP rất tốt.

  20. Dang Khuong Duy says:

    Cảm ơn bài viết hữu ích!

  1. BB
  2. BB
  3. BB

arrow

Lưu ý khi post comment:

  • Không "bóc tem" topic
  • Dùng lời lẽ có văn hoá và lịch sự
  • Xem trang FAQs trước khi hỏi
  • Bạn có thể dùng thẻ HTML như:<strong>, <em>, <a>
  • Đặt code trong thẻ [php],[html],[javascript],[css]

Chọn kiểu gõ: Tự động TELEX VNI Tắt