Cấu hình IIS và Apache chạy trên cùng một máy



Tôi là một người đam mê lập trình, có vẻ như nó đã ngấm vào máu rồi hay sao ấy. Ngoài lập trình các ứng dụng WinForm, tôi gần đây lại có nhiều thời gian làm việc với các ứng dụng nền Web hơn. Ôi thôi thì đủ cả: ASP.NET forum, DotNetNuke, VBulletin, phpBB, Joomla,… Do đó tôi phải cài đặt, cấu hình và sử dụng cả 2 webservers khá phổ biến hiện nay là IIS và Apache.

Nếu đã từng “đụng chạm” đến IIS và Apache ắt hẳn bạn cũng biết được rằng không thể chạy cả 2 webservers này tại cùng thời điểm vì sẽ xảy ra sự đụng độ port 80. Có nhiều cách để giải quyết vấn đề này:

1. Không chạy đồng thời IIS và Apache tại 1 thời điểm (cách này đơn giản quá)

2. Cấu hình IIS chạy trên port 80, Apache trên port khác 80 (thường là 8080)

3. Cấu hình IIS và Apache trên cùng port 80

Phần tiếp theo của bài viết này sẽ tập trung vào phương án số 2.[separator]

Để bắt đầu thử nghiệm này, tôi xem như bạn đã cài đặt hoàn tất IIS, Apache trên máy, IIS đang chạy trên port 80 và Apache đang chờ được cấu hình. Nếu bạn cài Apache một cách “chính tắc” thì hãy lưu ý thư mục cài đặt của nó C:\Program Files. Hoặc nếu bạn sử dụng các gói cài đặt như xampp, Server2Go, WebOnStick,… thì cũng nên xác định được thư mục chứa Apache (ví dụ với xampp là C:\xampp\apache).

Bước đầu tiên, bạn cần xác định được tập tin cấu hình của Apache. Đó là httpd.conf. Mở tập tin đó bằng một trình soạn thảo văn bản nào bạn có, đơn giản nhất là dùng notepad.

Bước tiếp theo, dùng chức năng Find/Search để tìm đoạn Listen

Apache-Listen-Port-80

Apache đang listen cổng 80

Hình trên, cho thấy Apache của bạn đang lắng nghe (listen) trên port 80. Hãy sửa số 80 thành một số khác. Ví dụ 8080, 1234. Nhớ save lại.

Sau đó khởi động Apache, mở trình duyệt và thử duyệt địa chỉ: http://localhost:8080 hoặc http://localhost:1234

Lúc này bạn đã hoàn tất với một số thao tác rất đơn giản.

About Author

Tuấn Anh

Là một người đam mê lập trình, hiện tập trung mảng phát triển ứng dụng web dựa trên nền tảng của WordPress. Đồng thời, nhằm đạt sự trọn vẹn trong công việc freelance, tôi đang học đồ hoạ, để có thể tự mình thiết kế layout, logo và những thứ khác liên quan đến đồ họa. Mục tiêu vài năm tới: Tôi sẽ là Full Web Developer = Graphics Design + Coding. Vietcoding Blog viết về WordPress, chia sẻ kinh nghiệm, mẹo vặt, viết plugin, làm theme và ôm ấp ý tưởng viết một Web Application Framework dựa trên WordPress. Đồ hoạ là chuyên mục đang được chuẩn bị trong tương lai.



10 thoughts on “Cấu hình IIS và Apache chạy trên cùng một máy

  1. caothao1309 says:

    Em cũng đã làm theo các bước của anh sao apache vẫn không chạy được nhỉ? Anh chỉ giúp em với. Thanks anh nhiều.

    1. Bạn nói chung chung thế này thì thánh cũng không giúp được huống chi là Việt Coding 🙂

  2. caothao1309 says:

    em vẫn cấu hình cho apache ở port 8080, còn IIS vẫn giứ nguyêb ở port 80. tức em cài cái xampp và IIS không chạy cùng lúc được, thế giờ làm sao à. mà quen, lúc tối thấy giáo em có cấu hình tương tự lại được rồi, nhưng em sáng dậy khởi động lại máy lại ko được , hic…

  3. caothao1309 says:

    hehe, được rùi anh à, em lại cấu hình IIS 8080 còn apache 80. trùi, Thanks

  4. Firefoc says:

    Mình cài IIS (port 80) và Apache (gói XAMPP listen port 8080). Lúc trước chỉ có apache thôi thì mình dùng virtual host được (ví dụ mysite.mydomain). Nhưng bây giờ khi chuyển apache qua port 80 thì không dùng được virtualhost nữa. Mình đã chỉnh trong httpd-vhost.conf :
    #
    # Use name-based virtual hosting.
    #
    NameVirtualHost *:8080

    DocumentRoot “C:/xampp/htdocs/mysite/”
    ServerName mysite.domain

    Việt coding giúp mình với. Thanks!

    1. Bên trên bạn nói Apache dùng port 8080 sao bên dưới Apache lại vẫn dùng port 80 ? Vậy thực ra Apache đang listen ở port nào ? 🙂

      1. Firefox says:

        Mình đã config được virtual host cho apache rồi.
        Trong httpd-vhost.conf để như sau:

        DocumentRoot “C:/xampp/htdocs/myweb/”
        ServerName myweb.domain

        Trong file hosts thì : 127.0.0.1 myweb.domain

        Chạy thì cứ : myweb.domain:8080

        Việt Coding cho mình hỏi giờ mình muốn chạy virtual host bên IIS thì làm thế nào?

        1. Bạn làm theo bài hướng dẫn đến bước nào rồi ?

          – Bạn đã add thêm 1 IP cho server chưa ?
          – Thực hiện cấu hình để IIS chỉ listen trên đúng IP đó chưa ?

  5. HoàngNN says:

    cho mình hỏi với:
    mình có 1 domain buctuong.net, trên server mình cài iis7 port 80 và apache port 8080.
    Giờ mình trỏ forward domain buctuong.net về địa chỉ IP của server thì iis sẽ nhận. Vậy phải cấu hình như nào để IIS redirect tới apache?
    Vì website của mình là PHP.
    thanks!

  6. thanh says:

    thêm IP của domain vào file host của window chưa
    VD: 127.0.0.1 sites.domainname


Got Something To Say:

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

GENESIS FRAMEWORK