Зачем менять порт веб-сервера
Если какая-либо программа использует порт, то другой процесс уже не может использовать этот же самый порт. К примеру, если на вашем компьютере порт 80 уже занят, то Apache просто не запустится).
Ещё одной причиной, почему может возникнуть желание поменять порт — сделать ваш сервер менее заметным. К примеру, если вы не предприняли мер по защите, то любой в вашей локальной или глобальной сети может подключиться к вашему веб-серверу. Если скрипты содержат уязвимости или просто плохо настроены, то постороннее лицо может лазить по вашим локальным сайтам и, в случае удачной атаки, даже лазить по всему вашему компьютеру. Если поменять порт со стандартного 80 на какой-нибудь необычный, то сервер будет чуть труднее найти. Хотя сканеры портов всё равно смогут это сделать.
Итак, по умолчанию Apache использует 80 порт, это определяется директивой:
Listen 80
в конфигурационном файле httpd.conf.
Чтобы изменить порт, откройте этот файл и вместо 80 впишите любой другой незанятый в вашей системе:
Listen 48855
Для кого не подойдёт смена порта
Если ваш сайт предназначен быть публичным сервером и сайты должны быть доступны другим пользователям, то смена порта нежелательна, поскольку они смогут перейти на ваш сайт только по специальному адресу.
Как открыть сайт на нестандартном порту
Чтобы открыть сайт на нестандартных портах (не на 80 или 443), добавьте через двоеточие к адресу сайта порт, который прослушивает сервер:http://localhost:48855
Также можно делать ссылки такого вида: http://localhost:48855. Они являются работающими и вы можете перенаправить посетителя с одной страницы или сайта на другой, работающий на нестандартном порте.
Связанные статьи:
- Apache Forwarding — проброска портов веб-сервера (100%)
- Apache для Windows (52.4%)
- Как запустить Apache на Windows (52.4%)
- Документация по Apache на русском языке (52.4%)
- Как подключить PHP к Apache на Windows (52.4%)
- Для чего нужен веб-сервер Apache (RANDOM — 52.4%)
HTTP сервер Apache – один из наиболее часто используемых веб-серверов в интернете на сегодняшний день. По своим характеристикам и многофункциональности он превосходит своих конкурентов (таких, как Nginx).
Одной из наиболее значимых функций Apache является возможность загружать и запускать различные типы модулей и конфигураций, не останавливая работу веб-сервера. Кроме того, не нужно каждый раз перекомпилировать сервер, добавляя в него новые модули. Важную роль играют .htaccess файлы, которые могут изменять конфигурации веб-сервера в определенных каталогах. В этой статье мы рассмотрим как изменить порт apache в Ubuntu и CentOS.
Сервер Apache по умолчанию настроен на ожидание входящих соединений через порт 80. Если настроить протокол TLS, сервер будет слушать соединения через порт 443. Для использования других портов, необходимо подправить конфигурационный файл Apache.
В системе Debian/Ubuntu, требуется изменить файл конфигурации /etc/apache2/ports.conf, а в дистрибутивах на основе RHEL/CentOS — /etc/httpd/conf/httpd.conf. В зависимости от дистрибутива системы, откройте нужный файл с помощью текстового редактора и добавьте новый порт следующим образом:
sudo nano /etc/apache2/ports.conf
sudo nano /etc/httpd/conf/httpd.conf
В этом примере мы настроим HTTP сервер Apache для ожидания подключений на порту 8081. Убедитесь, что после директивы Listen 80, дающей указание серверу прослушивать порт 80, была добавлена следующая строка:
Listen 8081
После того, как вы добавили приведенную выше строку, вам нужно создать или изменить виртуальные хосты Apache, чтобы привязать хост к нужному порту. В приведенном ниже примере мы изменим порт Apache для стандартного виртуального хоста веб-сервера с 80 на 8081.
Нужно открыть и отредактировать файл /etc/apache2/sites-enabled/000-default.conf, указав порт 8081, как показано на картинке ниже.
sudo nano /etc/apache2/sites-enabled/000-default.conf
Чтобы применить изменения и новые порты Apache стали доступны, перезапустите сервис. После перезапуска порт 8081 должен отображаться в выводе утилиты ss или netstat. Команды для Ubuntu:
sudo systemctl restart apache2
sudo netstat -tlpn | grep apache
sudo ss -tlpn | grep apache
Для CentOS:
sudo systemctl restart httpd
sudo netstat -tlpn | grep httpd
sudo ss -tlpn | grep httpd
Настройка портов apache завершена. Теперь вы можете открыть браузер и зайти на веб-сервер, введя доменное имя или IP-адрес и порт 8081. Страница Apache должна отобразиться в браузере. Однако, если вы не можете просмотреть веб-страницу, вернитесь на консоль сервера и убедитесь, что правила брандмауэра установлены верно для разрешения сетевого трафика по данному порту:
http://server_ip:8081
Если у вас включен SELinux в CentOS или RHEL установите пакет policycoreutils, чтобы добавить необходимые правила. А потом перезапустите Apache для применения изменений.
sudo yum install policycoreutils
Чтобы открыть порт Apache 8081 добавьте правила SELinux.
sudo semanage port -a -t http_port_t -p tcp 8081
sudo semanage port -m -t http_port_t -p tcp 8081
sudo systemctl restart httpd
Откройте браузер и попытайтесь перейти на ваш сервер по IP-адресу или доменному имени через порт 8081. Убедитесь в работоспособности порта. В браузере должна отобразиться страница Apache.
http://server_ip:8081
Если вы вcё ещё не можете получить доступ к данному адресу убедитесь, что этот порт разрешен в брандмауэре вашего сервера.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
I use centOS server. I want to configure apache to listen on port 8079.
I added LISTEN 8079 directive in httpd.conf
.
I opened port 8079 in iptables and restarted iptables. I even stopped iptables service.
"netstat -nal | grep 8079" shows "tcp 0 0 :::8079 :::* LISTEN"
If I try to access http://localhost:8079
or http://myserver.com:8079
from that machine, I can access that page. BUT from any other machine I am not able to access the site on any port other than 80. On port 80, it works. On port 8079 it does not.
What else do I need to configure?
asked Oct 15, 2010 at 9:15
In /etc/apache2/ports.conf
, change the port as
Listen 8079
Then go to /etc/apache2/sites-enabled/000-default.conf
And change the first line as
<VirtualHost *: 8079>
Now restart
sudo service apache2 restart
Apache will now listen on port 8079 and redirect to /var/www/html
sith
3,1848 gold badges27 silver badges46 bronze badges
answered Sep 26, 2014 at 16:53
Shankar ARULShankar ARUL
12.1k11 gold badges67 silver badges69 bronze badges
3
Open httpd.conf file in your text editor.
Find this line:
Listen 80
and change it
Listen 8079
After change, save it and restart apache.
answered Oct 15, 2010 at 9:18
ismailperimismailperim
1,5222 gold badges17 silver badges24 bronze badges
9
It was a firewall issue. There was a hardware firewall that was blocking access to almost all ports. (Turning off software firewall / SELinux bla bla had no effect)
Then I scanned the open ports and used the port that was open.
If you are facing the same problem, Run the following command
sudo nmap -T Aggressive -A -v 127.0.0.1 -p 1-65000
It will scan for all the open ports on your system. Any port that is open can be accessed from outside.
Ref.: http://www.go2linux.org/which_service_or_program_is_listening_on_port
answered Oct 20, 2010 at 13:11
vivek.mvivek.m
3,1635 gold badges31 silver badges47 bronze badges
2
If you need apache Listen port other than 80, you should add next file under ubuntu
«/etc/apache2/ports.conf»
the list of Listen ports
Listen 80
Listen 81
Listen 82
After you have to go on your Virtual hosts conf file and define next
<VirtualHost *:80>
#...v host 1
</VirtualHost>
<VirtualHost *:81>
#...host 2
</VirtualHost>
<VirtualHost *:82>
#...host 3
</VirtualHost>
answered Mar 27, 2018 at 12:21
dmitridmitri
4605 silver badges11 bronze badges
This is working for me on Centos
First: in file /etc/httpd/conf/httpd.conf
add
Listen 8079
after
Listen 80
This till your server to listen to the port 8079
Second: go to your virtual host for ex. /etc/httpd/conf.d/vhost.conf
and add this code below
<VirtualHost *:8079>
DocumentRoot /var/www/html/api_folder
ServerName example.com
ServerAlias www.example.com
ServerAdmin root@example.com
ErrorLog logs/www.example.com-error_log
CustomLog logs/www.example.com-access_log common
</VirtualHost>
This mean when you go to your www.example.com:8079
redirect to
/var/www/html/api_folder
But you need first to restart the service
sudo service httpd restart
dlemstra
7,6352 gold badges26 silver badges43 bronze badges
answered Dec 30, 2015 at 20:42
Ahmed BermawyAhmed Bermawy
2,2104 gold badges36 silver badges42 bronze badges
If you are using Apache on Windows:
- Check the name of the Apache service with Win+R+
services.msc
+Enter (if it’s not ApacheX.Y, it should have the name of the software you are using with apache, e.g.: «wampapache64»); - Start a command prompt as Administrator (using Win+R+
cmd
+Enter is not enough); - Change to Apache’s directory, e.g.:
cd c:wampbinapacheapache2.4.9bin
; - Check if the config file is OK with:
httpd.exe -n "YourServiceName" -t
(replace the service name by the one you found on step 1); - Make sure that the service is stopped:
httpd.exe -k stop -n "YourServiceName"
- Start it with:
httpd.exe -k start -n "YourServiceName"
-
If it starts alright, the problem is no longer there, but if you get:
AH00072: make_sock: could not bind to address IP:PORT_NUMBER
AH00451: no listening sockets available, shutting down
If the port number is not the one you wanted to use, then open the Apache config file (e.g.
C:wampbinapacheapache2.4.9confhttpd.conf
open with a code editor or wordpad, but not notepad — it does not read new lines properly) and replace the number on the line that starts withListen
with the number of the port you want, save it and repeat step 6. If it is the one you wanted to use, then continue: - Check the PID of the process that is using that port with Win+R+
resmon
+Enter, click on Network tab and then on Ports subtab; - Kill it with:
taskkill /pid NUMBER /f
(/f
forces it); - Recheck
resmon
to confirm that the port is free now and repeat step 6.
This ensures that Apache’s service was started properly, the configuration on virtual hosts config file as sarul mentioned (e.g.: C:wampbinapacheapache2.4.9confextrahttpd-vhosts.conf
) is necessary if you are setting your files path in there and changing the port as well. If you change it again, remember to restart the service: httpd.exe -k restart -n "YourServiceName"
.
answered Feb 4, 2016 at 18:36
ArmfootArmfoot
4,5255 gold badges44 silver badges60 bronze badges
For FC22 server
cd /etc/httpd/conf
edit httpd.conf [enter]
Change:
Listen 80
to:
Listen whatevernumber
Save the file
systemctl restart httpd.service [enter]
if required, open whatevernumber in your router / firewall
answered Aug 23, 2015 at 7:18
Run this command if your ufw(Uncomplicatd Firewall) is enabled .
Add for Example port 8080
$ sudo ufw allow 8080/tcp
And you can check the status by running
$ sudo ufw status
For more info check :
https://linuxhint.com/ubuntu_allow_port_firewall
answered Aug 26, 2020 at 19:53
The Apache HTTP server is one of the internet’s most popular web servers today, thanks to its versatility, consistency, and a plethora of features, some of which are actually not available on other web servers, such as Nginx’s competitor. Some of Apache’s most significant features include the ability to load and run various types of modules and special configurations at runtime, without actually stopping the server or, worse, compiling the program whenever most of the new module is installed, and the special role played by .htaccess files that can modify web server configurations specific to webroot directories.
- By default, the Apache webserver is instructed to listen and bind on port 80.0 for incoming connections. If you opt for a TLS setup, the server listens on port 443 for stable connections.
- You need to add a new statement containing the new port for future bindings in order to instruct the Apache webserver to connect and listen to web traffic on ports other than normal web ports.
- The configuration file that needs to be changed on a Debian/Ubuntu-based device is /etc/apache2/ports.conf and update /etc/httpd/conf/httpd.conf on RHEL/CentOS-based distributions.
With a console text editor, open a file unique to your own distribution and add a new port comment, as seen in the excerpt below.
nano /etc/apache2/ports.conf [On Debian/Ubuntu]
Before port 8081
In this example, the Apache HTTP server will be configured to listen to the connections on port 8081. Make sure that you apply the statement below to this file after the directive instructing the webserver to listen on port 80, as seen in the image below.
Listen 8081
After port 8081
After you have added the above line, to start the binding method, unique to your own vhost requirements, you need to build or change an Apache virtual host in the Debian/Ubuntu-based distribution.
Finally, to implement the changes and connect Apache to a new port, restart the daemon.
# systemctl restart apache2
Then use the netstat or ss command to search the local network sockets table.
# netstat -tlpn| grep apache
OR
# ss -tlpn| grep apache
You can also open a window and navigate to the IP address or domain name on port 8081 of your computer. The default Apache page in the browser should be shown. If you are unable to access the webpage, however, go back to the server console and make sure that the correct firewall rules are configured to allow port traffic.
http://server.ip:8081
The Apache HTTP server is one of the internet’s most popular web servers today, thanks to its versatility, consistency, and a plethora of features, some of which are actually not available on other web servers, such as Nginx’s competitor. Some of Apache’s most significant features include the ability to load and run various types of modules and special configurations at runtime, without actually stopping the server or, worse, compiling the program whenever most of the new module is installed, and the special role played by .htaccess files that can modify web server configurations specific to webroot directories.
- By default, the Apache webserver is instructed to listen and bind on port 80.0 for incoming connections. If you opt for a TLS setup, the server listens on port 443 for stable connections.
- You need to add a new statement containing the new port for future bindings in order to instruct the Apache webserver to connect and listen to web traffic on ports other than normal web ports.
- The configuration file that needs to be changed on a Debian/Ubuntu-based device is /etc/apache2/ports.conf and update /etc/httpd/conf/httpd.conf on RHEL/CentOS-based distributions.
With a console text editor, open a file unique to your own distribution and add a new port comment, as seen in the excerpt below.
nano /etc/apache2/ports.conf [On Debian/Ubuntu]
Before port 8081
In this example, the Apache HTTP server will be configured to listen to the connections on port 8081. Make sure that you apply the statement below to this file after the directive instructing the webserver to listen on port 80, as seen in the image below.
Listen 8081
After port 8081
After you have added the above line, to start the binding method, unique to your own vhost requirements, you need to build or change an Apache virtual host in the Debian/Ubuntu-based distribution.
Finally, to implement the changes and connect Apache to a new port, restart the daemon.
# systemctl restart apache2
Then use the netstat or ss command to search the local network sockets table.
# netstat -tlpn| grep apache
OR
# ss -tlpn| grep apache
You can also open a window and navigate to the IP address or domain name on port 8081 of your computer. The default Apache page in the browser should be shown. If you are unable to access the webpage, however, go back to the server console and make sure that the correct firewall rules are configured to allow port traffic.
http://server.ip:8081
Apache (сейчас Apache 2) до сих пор является WEB-сервером по умолчанию и большинство хостингов ставит его единственным HTTP-сервером. Однако, с появлением NGiNX ситуация поменялась, и на 80-м порту предполагается наличие более шустрого NGiNX тогда, как более навороченный Apache ставится уже за ним с тем, чтобы обрабатывать сложные запросы по сборке динамических страниц «на лету». А вся статика (типа картинок, JavaScript и CSS-файлов) отдаётся быстро и сразу NGiNX’ом. Так как порт 80 для всех браузеров до сих пор остался портом для http-запросов, то на этом порту на сервере должен стоять NGiNX, а Apache, как правило, вешается на дополнительный для http порт 8080. В этой статье рассмотрим, как поменять настройки Apache на сервере так, чтобы он отвечал с порта 8080, освободив 80-й порт для NGiNX.
ports.conf
— основной файл конфигурации портов WEB-сервера Apache
В предыдущей статье было подробно разобрано, как найти директорию на сервере с файлами конфигурации Apache на удалённом сервере. В этой же директории должен располагаться файл ports.conf
, в котором прописаны порты, с которыми работает Apache.
Содержимое файла ports.conf
по умолчанию
Файл ports.conf
имеет следующее содержимое сразу после установки Apache на сервер:
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Как видим, Апач действительно слушает 80-й порт при http-запросе, а при https-запросе — порт 443.
Меняем http-порт 80 Apache на 8080
Для того, чтобы Apache перестал занимать 80-й порт, а стал отвечать с 8080-порта,
- в файле
ports.conf
нужно- поменять строку
Listen 80
- на строку
Listen 8080
- поменять строку
- перезапустить Apache командой
apachectl -k restart
Проверяем смену http-порта Apache на 8080
Если раньше сайт отвечал на запрос в браузере:
http://mysite.ru/
то после описанных выше манипуляций, сайт по этому запросу становится недоступным. Для того, чтобы увидеть сайт, нужно обратиться к порту 8080 на сервере, указав это в явном виде в строке запроса браузера:
http://mysite.ru:8080/
Резюме
Таким образом можно освободить 80-й порт, перепрописав его для Apache на порт 8080.
Если на сервере несколько сайтов, то для каждого виртуального хоста в папке /etc/apache2/sites-available
нужно прописать порт 8080 вместо 80:
<VirtualHost 127.0.0.1:8080>
И, конечно, перезагрузить Апач.
Если NGiNX ещё не установлен, остановим Apache командой
P.S.
Перед перезагрузкой Апача полезно проверять на косячность правок его конфигов командой apachectl stop
. Включим после того, как установим NGiNX.
[email protected]:~# apachectl -t
Syntax OK
Так должна выглядеть проверка синтаксиса конфигурации Apache.
После этого можно перезагрузить NGiNX и убедиться в правильности работы обоих серверов на портах 80 и 8080 (читать по → этой ссылке).
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Выберите, то, чем пользуетесь чаще всего:
Apache HTTP server is one of the most used web server in internet today, do to its flexibility, stability and a pleiad of features, some of which are not for the moment present in other web servers, such a rival Nginx.
Some of the most important features of Apache include the ability to load and run different types of modules and special configurations at runtime, without actually stopping the server or, worse, compiling the software each time a new module most be added and the special role played by .htaccess files, which can alter web server configurations specific to webroot directories.
By default, Apache web server is instructed to listen for incoming connection and bind on port 80. If you opt for the TLS configuration, the server will listen for secure connections on port 443.
In order to instruct Apache web server to bind and listen for web traffic on other ports than the standard web ports, you need to add a new statement containing the newly port for future bindings.
In Debian/Ubuntu based system, the configuration file that needs modified is /etc/apache2/ports.conf file and on RHEL/CentOS based distributions edit /etc/httpd/conf/httpd.conf file.
Open the file specific to your own distribution with a console text editor and add the new port statement as shown in the below excerpt.
# nano /etc/apache2/ports.conf [On Debian/Ubuntu] # nano /etc/httpd/conf/httpd.conf [On RHEL/CentOS]
In this example we’ll configure Apache HTTP server to listen on connections on port 8081. Make sure you add the below statement in this file, after the directive that instructs the web server to listen on port 80, as illustrated in the below image.
Listen 8081
After you’ve added the above line, you need to create or alter an Apache virtual host in Debian/Ubuntu based distribution in order to start the binding process, specific to your own vhost requirements.
In CentOS/RHEL distributions, the change is applied directly into default virtual host. In the below sample, we’ll modify the default virtual host of the web server and instruct Apache to listen for web traffic from 80 port to 8081 port.
Open and edit 000-default.conf file and change the port to 8081 as shown in the below image.
# nano /etc/apache2/sites-enabled/000-default.conf
Finally, to apply changes and make Apache bind on the new port, restart the daemon and check local network sockets table using netstat or ss command. Port 8081 in listening should be displayed in your server network table.
# systemctl restart apache2 # netstat -tlpn| grep apache # ss -tlpn| grep apache
You can also, open a browser and navigate to your server IP address or domain name on port 8081. The Apache default page should be displayed in browser. However, if you cannot browse the webpage, return to server console and make sure the proper firewall rules are setup to allow the port traffic.
http://server.ip:8081
On CentOS/RHEL based Linux distribution install policycoreutils package in order to add the required SELinux rules for Apache to bind on the new port and restart Apache HTTP server to apply changes.
# yum install policycoreutils
Add Selinux rules for port 8081.
# semanage port -a -t http_port_t -p tcp 8081 # semanage port -m -t http_port_t -p tcp 8081
Restart Apache web server
# systemctl restart httpd.service
Execute netstat or ss command to check if the new port successfully binds and listen for incoming traffic.
# netstat -tlpn| grep httpd # ss -tlpn| grep httpd
Open a browser and navigate to your server IP address or domain name on port 8081 to check is the new web port is reachable in your network.The Apache default page should be displayed in browser
http://server.ip:8081
If you cannot navigate to the above address, make sure you add the proper firewall rules in your server Firewall table.
If You Appreciate What We Do Here On TecMint, You Should Consider:
TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.
If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.
We are thankful for your never ending support.
Зачем может понадобиться менять порт Apache2? Во-первых, некоторые специалисты считают, что смена порта по умолчанию может повысить безопасность. На самом деле это не совсем так, потому что существуют сканеры портов, и злоумышленник в конце концов сумеет выяснить, что за порт используется на вашем сервере. Но против ботов и любителей это действительно может помочь.
Также может случиться, что вам необходимо освободить стандартный 80 порт для какого-нибудь специализированного программного обеспечения, которое может работать только на этом порту.
Смена порта Apache на Debian/Ubuntu
Откройте файл /etc/apache2/ports.conf для редактирования:
sudo vi /etc/apache2/ports.conf
Найдите строку:
Замените 80 на число по вашему выбору, например 8080.
Стоит убедиться, что выбранный порт не используется другими приложениями, и не вызовет конфликт. Для проверки открытых протов используйте
Эта запись уведомляет сервер о том, что он должен принимать подключения через порт 8080 на всех интерфейсах. Чтобы сервер принимал соединения через порт 8080 для определенного интерфейса, просто укажите IP-адрес соответствующего сетевого интерфейса, как показано ниже.
Listen 192.168.1.101:8080
Это будет полезно, если ваш сервер имеет несколько IP-адресов или сетевых интерфейсов.
Сохраните и закройте файл.
Если у вас Ubuntu или Debian, вам также придется изменить номер порта в файле /etc/apache2/sites-enabled/000-default.conf.
sudo vi /etc/apache2/sites-enabled/000-default.conf
Найдите такую строку и измените номер порта.
Сохраните и закройте файл, а затем перезапустите службу Apache, чтобы изменения вступили в силу.
sudo systemctl restart apache2
Проверим, что все работает:
sudo netstat -tulpn | grep :8080
Вывод должен быть следующим:
tcp6 0 0 :::8080 :::* LISTEN 4066/apache2
Теперь, чтобы получить доступ к выводу Apache через браузер, вам нужно набирать http://IP-address:8080.
Источник ostechnix.com
| Ubuntu и Debian | Опубликовано: 13.03.2022 14:26 | 0
Table of Contents
- 1. Why change Apache Port
-
2. Checking port availability
- 2.1. NetStat command on windows
- 2.2. XAMPP’s in-built NetStat tool
- 2.3. Windows Resource Monitor
-
3. Changing Apache HTTP port
- 3.1. HTTP Listen Port
- 3.2. HTTP ServerName and Port
-
4. Changing Apache HTTPS (SSL) Port
- 4.1. HTTPS Listen Port
- 4.2. HTTPS ServerName and Port
- 4.3. VirtualHost Directive for httpd-ssl
-
5. Changing Ports for VirtualHosts
- 5.1. HTTP Virtual Host URL
- 5.2. HTTPS (SSL) Virtual Host URL
- 6. Changing HTTP/HTTPS in XAMPP Panel
1. Why change Apache Port
By Default, Apache runs HTTP on port 80 and SSL on port 443 in XAMPP. Generally, you may need to change the port number for the following reasons :
- For customized network design.
- For security purposes.
- For resolving port conflicts with other applications.
For example, users commonly report a conflict between Skype and Apache both using port 80.
2. Checking port availability
Before you proceed, you should make sure that you have an available port and that the port you are choosing is free and not already occupied. Here is a list of a couple of tools you can use to find the status of ports on your localhost.
2.1. NetStat command on windows
On windows, you can use ‘netstat’ command to list active networks (incoming and outgoing) connections and listening ports. You can use the command with the following switches to print port status for your localhost:
netstat -ano
- “a” will display all connections and listening ports.
- “o” will show the owning process ID that is related to each of the connections.
- “n” will show the addresses and port numbers as numerals.
2.2. XAMPP’s in-built NetStat tool
If you prefer, you can use the ‘NetStat’ tool built inside the XAMPP itself. Behind the scene, it probably uses the same windows command and the output is almost the same as the native ‘NetStat’ command in windows.
2.3. Windows Resource Monitor
The third option if you prefer is the windows ‘Resource Monitor’. You can launch the ‘Resource Monitor’ via the ‘Task Manager’ as shown in the below screenshot. Once you have launched ‘Resource Monitor’, you can view the port availability status under the ‘Listening Ports’ tab.
3. Changing Apache HTTP port
Edit the ‘httpd.conf’ file usually located inside “XAMPPapacheconf” on windows and make the following changes.
3.1. HTTP Listen Port
Current configuration
Listen 80
New configuration
Listen 8081
3.2. HTTP ServerName and Port
Current configuration
ServerName localhost:80
New configuration
ServerName localhost:8081
4. Changing Apache HTTPS (SSL) Port
Edit the ‘http-ssl.conf’ file usually located inside “XAMPPapacheconfextra” on windows and make the following changes
4.1. HTTPS Listen Port
Current configuration
Listen 443
New configuration
Listen 8082
4.2. HTTPS ServerName and Port
Current configuration
ServerName www.example.com:443
New configuration
ServerName www.example.com:8082
4.3. VirtualHost Directive for httpd-ssl
Current configuration
VirtualHost default:443
New configuration
VirtualHost default:8082
5. Changing Ports for VirtualHosts
Edit the ‘httpd-vhosts.conf’ file usually located inside “XAMPPapacheconfextra” on windows and make the following changes:
5.1. HTTP Virtual Host URL
Current configuration
VirtualHost *: 80
New configuration
VirtualHost *: 8081
5.2. HTTPS (SSL) Virtual Host URL
Current configuration
VirtualHost *: 443
New configuration
VirtualHost *: 8082
6. Changing HTTP/HTTPS in XAMPP Panel
Now, we need to also update the above port numbers in XAMPP configuration, so that both XAMPP and Apache are able to communicate over the right port numbers. For this, do the following:
Launch XAMPP Configuration from XAMPP Control Panel
From the ‘Configuration of Control Panel’ window click ‘Service and Port Settings to launch ‘Service Setting’
On the ‘Service Settings’ window, enter Main Port and SSL Port number as set in previous steps. In our example here these would be Main Port: 8081 and SSL Port 8082.
Make HTTP and HTTPS port changes Click Save to save service settings
RESTART THE APACHE SERVICE! DONE!
Tushar Sharmahttps://www.automationdojos.com
Hi! This is Tushar, the author of ‘Automation Dojos’. A passionate IT professional with a big appetite for learning, I enjoy technical content creation and curation. Hope you are having a good time! Don’t forget to subscribe and stay in touch. Wishing you happy learning!