5

Как постоянный веб-разработчик, я постоянно добавляю поддельные домены в мой файл Windows 7 HOSTS, чтобы указывать домен на мой локальный веб-сервер, на котором я работаю.

Я даже создал хороший маленький PHP-скрипт, который позволяет мне вводить имя домена, которое я хочу создать, например testing.dev

Мой сценарий затем создает ...

  • соответствующие папки для этого нового сайта в моем каталоге сервера
  • Запись VirtualHosts в Apache (на самом деле используется настройка Wildcard /projects/testing.dev/www/)
  • Создает базу данных MySQL testing.dev и связывает пользователя MySQL с этой новой БД.
  • Наконец у меня есть маленький.EXE-файл, который передается в переменную "testing", а затем редактирует мой файл Windows HOSTS и добавляет запись в новую строку, как эта ... 127.0.0.1 testing.dev, который затем позволяет мне получить доступ к моему новому сайту проекта в браузере по адресу http://testing.dev

Эта установка работала удивительно в течение последних 2 лет, но недавно мой.Программа EXE перестала работать ... после проверки, если я захожу в папку C:\Windows\System32\drivers\etc и просматриваю свойства файла hosts в этой папке, первая проблема, которую я вижу, это флажок только для чтения : проверил, что не позволяет моей простой exe-программе изменять файл hosts и добавлять мои новые записи.

Затем мне нужно отменить проверку только для чтения и вручную добавить в мои новые изменения файла hosts и сохранить, что затем работает нормально. Весь смысл иметь собственную программу .exe, которая принимает 1 параметр (доменное имя), в том, чтобы иметь возможность создавать подобные сценарии для автоматизации редактирования моего файла hosts и превращения его в рабочие процессы, как я это сделал.

Каждый раз, когда я изменяю этот параметр, отменяя проверку свойства «только для чтения», и применяю / сохраняю его, в течение нескольких минут он снова возвращается к проверке!

Я был бы очень признателен за любую помощь в сохранении моего не проверенного статуса, любые идеи, предложения или, что еще лучше, реальное решение моей проблемы кому-нибудь?

Кроме того, просто чтобы упомянуть, у меня нет каких-либо брандмауэров или программ безопасности, которые бы это делали, нет работающей третьей части, которая могла бы вызвать это.

Спасибо за любую помощь

4 ответа4

0

Я не могу проверить, что это точно работает, потому что для меня файл не помечен только для чтения, как в вашем случае, но это метод, который я использовал, чтобы не дать Windows отменить мои изменения в файлах, защищенных slui.exe .

Вы захотите изменить права доступа к файлу и запретить доступ к SYSTEM и, возможно, к TrustedInstaller (но не к себе). Возможно, вам придется сделать себя владельцем файла, чтобы иметь возможность сделать это.

Перейдите в свойства> безопасность> расширенный> изменить разрешения
Затем отредактируйте разрешения для SYSTEM и установите флажок «Запретить запись атрибутов / расширенных атрибутов». Если это не сработает, вы можете попытаться лишить его полного контроля на свой страх и риск.

Если вам нужно взять на себя ответственность за файл, чтобы сделать все это, он находится в свойствах> безопасность> владелец> изменить

Наконец, в крайнем случае, вы можете сделать программу недоступной только для чтения, когда она изменяет файл. Я не знаю PHP, поэтому я не могу помочь с этим. Вы можете попробовать команду, предложенную в ответе Стивена.

0

Может быть, это не строгий ответ, но я думаю, что вы пытаетесь восстановить колодец :)

Установите laragon (https://laragon.org/) в качестве сервера wamp (вместо apache/php или того, что у вас есть)

В Laragon это решено (для любой папки, которую вы создаете в проекте, для нее автоматически создается fakedomain)

Я также являюсь разработчиком php и, поверьте мне, все проблемы с версиями apache/php extension/php и доменами .local закончились laragon

0

Возможно, проблема в том, что это делает какая-то другая программа. Я бы порекомендовал очистить все ваши временные файлы и посмотреть, остановит ли это вашу проблему. Надеюсь, это помогло, иначе это может быть что-то в вашем реестре.

0

Попробуйте изменить атрибуты, используя CMD. Запустите компьютер в безопасном режиме с помощью командной строки.

Тип

cd C:\Windows\System32\drivers\etc (нажмите Enter)

attrib C:\Windows\System32\drivers\etc\hosts -r (нажмите ввод)

далее проверьте, показывает ли ваш файл только чтение, проверено или нет

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .