Для каждого сайта разработки я хочу иметь уникальный номер порта. Например, domain.com:1234
Это то, что у меня есть в моем файле httpd.conf. После перезагрузки в браузере не отображается страница domain.com:1234. Есть ли что-нибудь еще, что мне нужно сделать помимо того, что я уже сделал, чтобы эта работа работала?
Listen *:1234
<VirtualHost *:1234>
DocumentRoot /var/www/dev_sites/test
ServerName domain.com
</VirtualHost>
Похоже, если я перейду на свое локальное имя хоста (kk.local: 1234), оно покажет. Есть какие-то DNS, которые мне нужно сделать? Я действительно не хочу вдаваться в godaddy каждый раз, когда добавляю сайт разработки. Есть ли способ обойти это?
Имя сервера не должно включать номер порта. В вашем примере просто сделайте "domain.com" для каждого VirtualHost. Директивы ServerName не обязательно должны быть уникальными в вашей ситуации, когда у вас есть каждый VirtualHost на другом порту. Вам также не нужен NameVirtualHost, потому что вы делаете виртуальный хостинг по портам (хотя включать его не вредно).
В качестве шага по устранению неполадок убедитесь, что IPTables полностью отключен (предполагается, что это Linux), и проверьте это, выполнив «iptables -L -n -v»; ищите, чтобы каждая таблица была пустой. Вы также можете убедиться, что SELinux отключен; см. документацию к вашему дистрибутиву, чтобы узнать, как это сделать правильно, поскольку процедура различается. Если выясняется, что проблема в любом из них, вы можете либо оставить их выключенными, либо правильно настроить, чтобы Apache мог прослушивать эти порты.
Вот пример из документации Apache 2.2 о виртуальном хостинге на основе портов: http://httpd.apache.org/docs/2.2/vhosts/examples.html#ipport
Добавление сопоставления имени / адреса в клиентский hosts
файл должен помочь вам обойти проблему разрешения имен в сценариях разработки. Также есть возможность установить запись с подстановочными знаками в DNS, если это позволяет ваш DNS-провайдер. Однако, как только эта вещь выходит за рамки возможностей разработчика, я настоятельно рекомендую настроить для нее правильное разрешение DNS.
У вас есть эта директива в вашей конфигурации:
NameVirtualHost *:1234
Если вы этого не сделаете, ваш VirtualHost никогда не будет использоваться.
Есть ли такой брандмауэр, как iptables, который его блокирует? Если да, выключите его или еще лучше добавьте правило, разрешающее 1234.