Jako pełnoetatowy programista stron internetowych stale dodaję fałszywe domeny do mojego pliku Windows 7 HOSTS, aby wskazać domenę na mój serwer lokalny, który rozwijam.
Zbudowałem nawet ładny mały skrypt PHP, który pozwala mi wprowadzić nazwę domeny, którą chcę utworzyć, na przykład testing.dev
Mój skrypt tworzy ...
- odpowiednie foldery dla tej nowej witryny w moim katalogu serwera
- Rekord VirtualHost w Apache (faktycznie używa konfiguracji Wildcard /projects/testing.dev/www/)
- Tworzy bazę danych MySQL
testing.dev
i kojarzy użytkownika MySQL z tym nowym DB - Na koniec mam mały plik .EXE, który jest przekazywany w zmiennej „testing”, a następnie edytuje mój plik Windows HOSTS i dodaje wpis w nowym wierszu, jak ten ... 127.0.0.1 testing.dev, który następnie pozwala mi na dostęp moja nowa strona projektu w przeglądarce pod adresem http://testing.dev
Ta konfiguracja zadziwiająco sprawdziła się przez ostatnie 2 lata, ale ostatnio mój program EXE przestał działać ... po sprawdzeniu, jeśli przejdę do folderu C:\Windows\System32\drivers\etc
i przejrzę właściwości hosts
pliku w tym folderze, pierwszym problemem, który widzę, jest odczyt zaznaczone jest tylko pole wyboru, co nie pozwala mojemu prostemu programowi exe modyfikować pliku hosts i dodawać nowych wpisów.
Następnie muszę odznaczyć tylko do odczytu i ręcznie dodać moje nowe zmiany plików hostów i zapisać, co działa dobrze. Cały cel posiadania niestandardowego programu .exe, który pobiera 1 parametr (nazwę domeny), polega na tym, aby móc tworzyć takie skrypty, aby zautomatyzować edycję mojego pliku hostów i przekształcić go w przepływ pracy, tak jak to zrobiłam.
Za każdym razem, gdy zmieniam to ustawienie, odznaczając właściwość tylko do odczytu i stosuję / zapisuję, w ciągu kilku minut wydaje się, że powrócił do sprawdzania!
Naprawdę byłbym wdzięczny za każdą pomoc w uczynieniu mojego niezaznaczonego statusu, aby trzymać się i pozostać w ten sposób, wszelkie pomysły, sugestie lub nawet lepsze rozwiązanie mojego problemu każdemu?
Również wspominając, że nie mam żadnego rodzaju firewalla ani programów zabezpieczających, które by to robiły, nie działałby trzeci element, który by to spowodował.
Dzięki za pomoc
źródło
Odpowiedzi:
Być może ten problem wynika z tego, że robi to jakiś inny program. Polecam usunięcie wszystkich plików tymczasowych i sprawdzenie, czy to zatrzyma problem. Mam nadzieję, że to pomogło inaczej, może to być coś w twoim rejestrze.
źródło
Spróbuj zmienić atrybuty za pomocą CMD. Uruchom komputer w trybie awaryjnym z wierszem polecenia.
Rodzaj
cd C: Windows System Windows32 itp. (Hit Enter)
attrib C: Windows Windows32 sterowniki etc hosts -r (wciśnij enter)
sprawdź, czy twój plik pokazuje tylko zaznaczone pole odczytu
źródło
Nie mogę sprawdzić, czy to na pewno działa, ponieważ dla mnie plik nie jest oznaczony tylko do odczytu, jak w twoim przypadku, ale jest to metoda, której użyłem, aby zapobiec przywróceniu przez system Windows zmian w zabezpieczonych plikach
slui.exe.Będziesz chciał zmodyfikować uprawnienia pliku i odmówić dostępu do SYSTEM i prawdopodobnie TrustedInstaller (ale nie do siebie). Być może będziesz musiał zrobić z siebie właściciela pliku, aby móc to zrobić.
Przejdź do właściwości> bezpieczeństwo> zaawansowane> zmień uprawnienia
Następnie edytuj uprawnienia dla SYSTEM i sprawdź odmawianie zapisu atrybutów / rozszerzonych atrybutów. Jeśli to nie zadziała, możesz spróbować odmówić mu pełnej kontroli na własne ryzyko.
Jeśli chcesz przejąć na własność plik, aby to zrobić, to w właściwości> bezpieczeństwo> właściciel> edytuj
Wreszcie, w ostateczności, możesz uczynić program odznaczonym tylko do odczytu, gdy modyfikuje plik. Nie znam PHP, więc nie mogę pomóc. Możesz spróbować polecenia zasugerowanego w odpowiedzi Stephena.
źródło
Może to nie jest surowa odpowiedź, ale myślę, że próbujesz ponownie zagłębić się w studnię :)
Zainstaluj laragon ( https://laragon.org/ ) jako swój serwer wamp (zamiast apache / php lub co tam masz)
Laragon to rozwiązał (dla każdego folderu, który tworzysz w projekcie, automatycznie tworzony jest dla niego fakedomain)
Jestem także programistą php i ufam, że wszystkie problemy z wersjami apache / php extension / php i .local zakończyły się laragonem
źródło