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

Published by Việt Coding on

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.

Quảng cáo tài trợ


Việt Coding

Là một người đam mê lập trình, tôi vọc vạch đủ thứ liên quan đến lập trình cho thoả chí tò mò. Hiện làm chủ yếu ở mảng phát triển ứng dụng di động cho iOS và Android với React Native. Thỉnh thoảng vọc vạch mấy thứ liên quan đến Internet of Things như Smart Home. Đang nghịch mấy con Raspberry Pi và thấy nó cũng thú vị :)

10 Comments

caothao1309 · 15/09/2010 at 21:10

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.

    Việt Coding · 16/09/2010 at 08:51

    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 🙂

caothao1309 · 16/09/2010 at 09:07

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…

caothao1309 · 16/09/2010 at 09:32

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

Firefoc · 13/02/2012 at 14:08

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!

    Việt Coding · 23/02/2012 at 13:29

    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 ? 🙂

      Firefox · 23/02/2012 at 14:16

      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?

        Việt Coding · 23/02/2012 at 17:21

        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 ?

HoàngNN · 26/12/2012 at 01:08

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!

thanh · 27/02/2014 at 09:58

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

Leave a Reply to Firefox Cancel reply

Avatar placeholder

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