Czy można kodować PHP w systemie Windows i hostować go później na serwerze z systemem Linux? Czy mogą wystąpić problemy z migracją takiego projektu?
Myślałem, że naprawdę nie może być żadnych problemów, zwłaszcza, że jestem początkującym w PHP i nie będę korzystać z żadnych zaawansowanych funkcji, które mogą być specyficzne dla systemu operacyjnego. Chciałbym się jednak upewnić, ponieważ naprawdę nie lubię Linuksa.
Odpowiedzi:
Niektóre wskazówki:
Rozróżnianie wielkości liter w systemie plików
Jeśli plik nazywa się HelloWorld.php to:
jest legalny w systemie Windows i będzie działać. Ale nazwy plików Linux jest wielkość liter, można mieć pliki o nazwie
HelloWorld.php
,helloworld.php
,hEllOwOrlD.php
w tym samym katalogu. Powinieneś więc rozwijać się w systemie Windows, tak jakbyś tworzył system plików z rozróżnianiem wielkości liter: użyj dokładnie poprawnych nazw plików, nazw katalogów, nazw rozszerzeń -.php
również różni się od.PHP
.Separatory katalogów i ścieżek
W systemie Windows mówimy:
Ale w Linuksie powiedzielibyśmy:
PHP jest wystarczająco inteligentny, aby się tym nie przejmować, oba separatory działają w obu systemach. Ale powinieneś być konsekwentny i stosować wszędzie slash (/), ponieważ jest to również normą w większości systemów. Istnieje sprytnie zdefiniowana stała,
DIRECTORY_SEPARATOR
która przekłada się na poprawną, jeśli chcesz posunąć się tak daleko:To samo dotyczy separatora ścieżek, który w systemie Windows ma średnik, w przeciwnym razie dwukropek. Aby być bezpiecznym, powinieneś:
gdy potrzebujesz separatora ścieżek. Chociaż większość ludzi myśli, że ponieważ PHP nie ma nic przeciwko temu, którego separatora używasz, jest w porządku, ale jest jeden ważny haczyk: Separatory będą specyficzne dla systemu, gdy poprosisz system o katalogi lub ścieżki. Powiedzmy, że chcesz rozbić ścieżkę dołączania na jej części:
Kodowanie plików i ogranicznik
Powinieneś ustawić swoje IDE, aby ustawiało kodowanie plików dla wszystkich twoich skryptów na UTF-8 zamiast Cp *, a separator linii plików na Unix (
"\n"
zamiast"\r\n"
). W większości przypadków nie ma to większego znaczenia, ale powinieneś być konsekwentny, a najlepszym sposobem jest sposób uniksowy (który działa dobrze w systemie Windows, ale nie odwrotnie).źródło
Nie można uruchomić
strftime()
ze%e
w środowisku Windows, jak zauważono w stronę ręcznego :źródło
Nie będzie żadnych problemów z uruchomieniem kodu. Jeśli edytujesz pliki zapisane w systemie Windows w systemie Linux, możesz zauważyć, że znaki końca wiersza mogą być inne, ale nic nie zaszkodzi. Jeśli ci to przeszkadza, skonfiguruj swój Windows IDE / edytor, aby używał uniksowego końca linii.
źródło
Skonfiguruj się z testbedem dla systemu Linux. Może to być wirtualny komputer z systemem Linux działający pod Windows, może to być komputer z podwójnym uruchomieniem, może to być system przyjaciela. Następnie co jakiś czas (np. W poniedziałki rano) przenieś swój kod do systemu Linux i przetestuj go.
Inne odpowiedzi dotyczyły podstawowych problemów, z którymi będziesz się borykać, ale istnieje wiele mniejszych błędów, takich jak:
Tak, istnieją sposoby ostrożnego obejścia wszystkich tych różnic, ale czy ostrożnie korzystałeś z obejść? Oczywiście, że nie - kodowałeś i działał, więc musi być OK.
Nie umieszczaj niczego na komputerze hosta, dopóki nie zostanie przetestowany na podobnym systemie operacyjnym.
Nie mam doświadczenia w przenoszeniu z systemu Windows na Linux, ale mam pewne doświadczenie w przenoszeniu z systemu Linux na Windows i więcej doświadczenia w przenoszeniu z systemu Linux na OS X. Można to zrobić, ale klucze to testowanie, testowanie i testowanie.
źródło
Mimo że czuję się swobodnie w wierszu poleceń Linuksa i narzędziach do edycji Linuksa, takich jak vim, większość mojego programowania PHP wykonuję na komputerze z systemem Windows.
Mam wirtualny serwer w Internecie (uruchamia mi około 20 USD miesięcznie), którego używam jako serwera programistycznego i łączę się z nim za pomocą FileZilla. FileZilla pobiera pliki, które edytuję, do katalogu tymczasowego i śledzi zapisy, a kiedy je zapisuję, rzuca je z powrotem na serwer programistów i stamtąd testuję.
Jest to trochę kłopotliwe, ale pozwala mi robić rozwój praktycznie wszędzie; za pomocą FileZilla i prostego edytora na pendrivie mogę nawet połączyć się z innego komputera i dokonać zmian. Wszystkie testy odbywają się zawsze na serwerze Linux, więc wychwytuję wszelkie problemy, które mogłem spowodować po wyjęciu z pudełka - mniej nieprzyjemnych niespodzianek po wrzuceniu kodu na serwer.
Możesz zrobić to samo z tanim kontem hostingowym (chociaż w zależności od rodzaju aplikacji, którą tworzysz, możesz mieć problemy z wydajnością, ponieważ tanie konta hostingowe są zwykle dość słabe), a inne wiele aplikacji FTP ma również funkcję edycji i- funkcja przesyłania.
źródło
Tak, można to zrobić, ale należy wziąć pod uwagę kilka rzeczy. Sprawdź odpowiedzi, aby uzyskać więcej informacji.
Jest to jedna z tych rzeczy, które czasem muszą robić programiści ze względu na zasoby, a nie dlatego, że im się podoba.
Możesz mieć lokalny serwer WWW (apache, cherokee, a nawet M $) na swoim komputerze i zainstalowany serwer PHP. Twój komputer może nie mieć połączenia z Internetem lub może łączyć się tylko przez krótki czas.
Później możesz zaktualizować prawdziwą stronę internetową, aktualizując plik do prawdziwego serwera za pomocą narzędzi ftp, na tym samym komputerze lub innym komputerze podłączonym do Internetu.
źródło
Jak większość ludzi powiedziała, naprawdę nie powinno być problemów. To powiedziawszy, VirtualBox sprawia, że naprawdę bardzo łatwo jest postawić maszynę wirtualną z Linuksem, na której można przetestować bazę kodu, aby upewnić się, że działa ona w środowisku produkcyjnym bez konieczności posiadania wspomnianego środowiska produkcyjnego.
źródło