저는 Linux 데스크톱을 3년 넘게 사용해왔는데, 가장 큰 이유는 각 소프트웨어의 경험이 충분히 통합되지 않고 너무 단편화되어 있으며 선택할 수 있는 선택 사항이 너무 많다는 것입니다.
Windows로 돌아가면 더욱 심각해졌습니다. *nix 도구 세트를 사용하는 것이 매우 까다로워졌고, 웹 환경을 배포하는 것도 번거로웠습니다. 게다가 제 서버는 모두 Linux였고, 코드의 일부 기능이 Windows에서 실행되지 않았습니다.
아직도 가끔 게임을 하기 때문에 한 달 전에는 Windows 데스크톱으로 돌아가는 것을 선택했습니다.
하지만 아래 소프트웨어는 거의 모두 크로스 플랫폼입니다. Linux 데스크톱을 사용하면 아무런 영향을 미치지 않습니다.
제 호스트는 Windows 7 x64이고 Arch 가상 머신을 실행하고 있습니다. 모든 코드 실행과 디버깅은 가상 머신에서 수행됩니다.
아치 가상머신
Arch 설치는 약간 까다롭지만 KISS 철학이 마음에 듭니다. VirtualBox를 사용하고 512MiB 또는 256MiB만 할당해도 충분합니다.
네트워크를 "브리지 네트워크 카드"로 변경한 다음 라우터의 MAC에 바인딩된 고정 IP를 설정합니다. 가상 머신에 부여한 것은 192.168.0.105이고, 호스트에 있는 것은 192.168.0.100입니다.
설치해야 하는 핵심 소프트웨어 패키지는 openssh, nginx, mariadb, php, xdebug입니다.
다른 것: vim, mongodb, php-mongo, phpmyadmin은 모두 개인적인 필요에 따라 다릅니다.
VirtualBox의 가상 머신 창에서 직접 명령을 입력하는 것은 불편합니다. KDE의 Workspace(작업 공간)와 유사한 VirtuaWin이라는 가상 데스크톱 소프트웨어를 설치하고 VirtualBox 창을 다른 데스크톱에 던지겠습니다.
그런 다음 XShell을 사용하여 SSH에 연결하고 명령을 입력합니다.
물론 일상적인 사용을 위해 루트가 아닌 계정도 만들어야 합니다. 저는 jysperm을 만들었습니다.
그런 다음 /etc/php/php-fpm.conf를 수정할 수 있습니다:
사용자 = jysperm
그룹 = jysperm
이런 방식으로 PHP-FPM 프로세스는 사용자로 실행되며 파일을 읽고 쓸 때 권한 문제가 발생하지 않습니다.
개발 서버로서 동시에 여러 프로젝트를 개발하고 테스트해야 할 수도 있습니다. 매번 새로운 사이트를 만들기 위해 Nginx로 이동하는 것은 매우 번거로운 작업입니다. :
access_log /home/jysperm/nginx.access.log;
error_log /home/jysperm/nginx.error.log;
인덱스 index.html index.php;
자동 색인 켜짐;
루트 /home/jysperm/$dir;
위치 / {
try_files $uri $uri/ /index.php?$args;
}
위치 ~ .php$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_params를 포함합니다.
}
}
*.ab.jyprince.me는 192.168.0.105로 확인되었습니다. 이렇게 하면 test.ab.jyprince.me에 액세스하는 것만으로도 /home/jysperm/test에 있는 파일에 액세스하는 것과 같습니다. 나중에 Nginx 구성 파일을 수정할 필요가 없습니다.
PHPStorm
내가 본 최고의 IDE는 PHPStorm입니다.
PHPStorm의 배포 기능은 파일을 수정할 때마다 자동으로 서버에 배포할 수 있습니다. SFTP 형태의 서버를 구축하고 Arch 가상머신 정보를 입력한 후 자동 업로드를 체크하면 됩니다.
각 프로젝트는 /home/jysperm 아래의 폴더에 업로드됩니다.
그런 다음 프로젝트 이름.ab.jysperm.me를 방문하면 모든 것이 자동으로 수행됩니다.
원격 디버깅
Arch 가상 머신에서 /etc/php/conf.d/xdebug.ini:
수정그런 다음 PHPStorm에서 새로운 PHP 원격 디버그를 생성하세요.
디버그해야 하는 경우 먼저 PHPStorm에서 디버깅을 켜고 중단점을 설정한 다음 요청이 XDEBUG_SESSION=jysperm의 쿠키를 가져오도록 합니다.
페이지를 디버깅할 때 이 도구를 사용하여 책갈피를 생성하면 디버깅 스위치를 제어할 수 있습니다.
RESTful API를 디버깅할 때 주로 Postman이라는 Chrome 확장 프로그램을 사용합니다. 이 애플리케이션에는 쿠키 편집 기능이 없는 것 같습니다. 이 경우 HTTP 헤더에 Cookie:XDEBUG_SESSION=jysperm을 추가하면 됩니다.
기타 추천
Robomogo - 크로스 플랫폼 Mongo GUI 클라이언트
SourceTree - Windows용 Git GUI
보안 셸 - Chrome의 SSH
Clover - Windows 탐색기를 Chrome처럼 보이게 만드세요
FileZilla - 크로스 플랫폼 FTP 클라이언트
SmartGit - 크로스 플랫폼 Git GUI
Sublime Text - 사용하기 쉬운 크로스 플랫폼 편집기