Lando를 사용한 로컬 WordPress 개발(또는 Docker가 쉬워짐)

게시 됨: 2019-11-22

올해 초 나는 Docker를 사용하여 WordPress에서 개발하는 방법에 대한 가이드를 작성했습니다. 나는 그 포스트를 작업하는 것을 정말 즐겼고, 당신도 그것을 좋아하는 것 같습니다(모든 댓글과 이메일에 감사드립니다). 게시물을 읽지 않았다면 다음과 같은 빠른 알림이 표시됩니다.

Docker는 소프트웨어를 컨테이너에 패키징하고 가상 머신 위에서 실행할 수 있는 프로그램입니다. Docker의 주요 장점 은 컨테이너가 호스트 운영 체제에서 제공하는 가상화 환경을 사용하여 실행되므로 빠르고 가벼운 컨테이너 가 생성된다는 것입니다.

Docker의 주요 문제 는 구성이 번거롭다는 것입니다. 예를 들어 WordPress 개발 환경을 만들려면 데이터베이스 서비스와 웹앱 서버라는 두 가지(최소한) 서비스를 시작해야 합니다.

처음에 댓글을 달았던 게시물에서 우리는 주어진 프로젝트에 대해 스핀업해야 하는 모든 서비스를 정의할 수 있는 도구인 Docker Compose 를 보았습니다. Docker Compose 를 사용하여 단일 파일 docker-compose.yml 에서 프로젝트의 모든 종속성을 정의하고 단일 명령으로 시작할 수 있었습니다.

또는 WordPress 설치에서 아름다운 도메인 이름을 사용할 수 있는 또 다른 Docker 서비스를 구성하는 방법을 설명하여 게시물을 닫았기 때문에 처음에 약속한 것입니다. 기억한다면 원본 docker-compose.yml 파일을 사용하여 WordPress 개발 환경에 http://localhost:8080 을 통해 액세스할 수 있습니다. 그러나 http://myplugin.local 과 같은 것을 사용하려면 도메인 이름을 확인하고 docker-compose.yml 에 더 많은 설정을 추가할 수 있는 프록시 를 설정해야 했습니다.

알아요, 알아요. 작업을 시작하고 실행하는 것이 상당히 복잡했습니다! 하지만 모든 것이 제대로 설정되고 나면 아주 쉬웠죠? 어쨌든, 나는 당신에게 나의 새로운 친구인 Lando를 소개하기로 결정했습니다. 그는 몇 초 만에 새로운 개발 환경을 설정하는 데 도움을 줄 것입니다.

란도 입력

Lando를 소개하는 가장 좋은 방법은 그의 문서에 있는 문장을 사용하는 것입니다.

Lando는 docker 또는 docker-compose 를 직접 사용하는 buildt-in-masochism을 피하려는 개발자를 위한 것입니다.

Lando의 문서

예, 분명히 dockerdocker-compose 를 사용하는 것은 masochists를 위한 것입니다... 따라서 새 WordPress 프로젝트에서 작업하는 데 필요한 모든 서비스를 복잡하지 않고 신속하게 지정할 수 있는 방법을 살펴보겠습니다.

랜도 설치

Lando를 사용하려면 가장 먼저 해야 할 일은 컴퓨터에 설치하는 것입니다. 설치 프로세스는 매우 간단하고 문서화되어 있지만 다음 단계로 요약할 수 있습니다.

  1. Lando에는 Docker가 필요합니다. Linux를 사용하는 경우 먼저 Docker Community Edition을 설치하십시오. Mac 또는 Windows를 사용하는 경우 Lando의 설치 프로그램 자체가 Docker를 아직 사용할 수 없는 경우 설치합니다.
  2. 운영 체제에 적합한 Lando 설치 프로그램을 다운로드하십시오. 예를 들어 제 경우에는 lando-v3.0.0-rc.22.deb (저는 Linux를 사용 중입니다) 파일을 다운로드하고 dpkg 와 함께 설치했습니다. Mac의 경우 .dmg 파일을 사용하고 Windows의 경우 .exe .
  3. 설치 프로그램을 실행하고 단계를 따릅니다.

그리고 그게 다야!

Lando에서 새 WordPress 프로젝트를 만드는 방법

가장 먼저 해야 할 일은 작업하려는 프로젝트 폴더로 이동하거나 새 폴더를 만드는 것입니다. 제 경우에는 Nelio A/B Testing 플러그인을 개발하기 위해 새 WordPress 개발 환경을 만들 것이므로 프로젝트를 다운로드한 폴더로 cd 합니다. ~/dev/plugins/nelio-ab-testing .

일단 거기에 도착하면 Lando의 구성 파일을 만들어야 합니다. 이 파일은 docker-compose.yml 과 유사하지만 훨씬 간단합니다. 처음에는 작성할 필요도 없습니다. Lando가 대신할 수 있습니다! 단순히 새로운 개발 환경을 생성하기 위해 lando init 를 사용하십시오:

 lando init \ --recipe wordpress --source remote --remote-url https://wordpress.org/latest.tar.gz --webroot wordpress --name "Nelio AB Testing" # name the project as you want

이전 명령이 수행하는 작업을 살펴보겠습니다.

  • 먼저 Lando lando init 를 사용하여 현재 디렉토리에 새 구성 파일을 생성하고 싶다고 Lando에게 알립니다.
  • 첫 번째 매개변수( --recipe wordpress )는 Lando에게 WordPress 프로젝트를 만들고 싶다고 알려줍니다. 이것은 Lando가 설정해야 하는 서비스(데이터베이스, 웹 서버 등)를 아는 데 도움이 됩니다.
  • 그런 다음 Lando가 WordPress.org에서 WordPress를 다운로드하기를 원함을 나타냅니다.
  • --webroot wordpress 를 사용하여 Lando에게 WordPress가 설치될 위치를 알려줍니다. WordPress.org에서 WordPress를 다운로드해야 하고 zip Lando가 다운로드한다고 지정했기 때문에 압축을 푼 후 wordpress 폴더가 생성됩니다. 이 위치가 Lando에 사용되는 위치입니다.
  • 마지막으로 프로젝트 이름을 지정합니다(Lando는 친숙한 URL 도메인을 생성하는 데 이 이름을 사용합니다).

이전 명령을 실행한 후 Lando가 모든 것을 설치하고 다음 정보로 환영하는 방법을 볼 수 있습니다.

 NOW WE'RE COOKING WITH FIRE!!! Your app has been initialized! Go to the directory where your app was initialized and run `lando start` to get rolling. Check the LOCATION printed below if you are unsure where to go. Oh... and here are some vitals: NAME my-site LOCATION /tmp/plugin RECIPE wordpress DOCS https://docs.devwithlando.io/tutorials/wordpress.html

현재 폴더의 모든 파일을 나열하면 Lando가 다음 내용으로 .lando.yml 이라는 숨겨진 파일을 생성한 것을 볼 수 있습니다.

 name: my-site recipe: wordpress config: webroot: wordpress

아주 간단하죠? 이제 lando start 를 사용하여 서비스를 시작하면 됩니다.

 BOOMSHAKALAKA!!! Your app has started up correctly. Here are some vitals: NAME my-site LOCATION /tmp/plugin SERVICES appserver, database APPSERVER URLS https://localhost:32781 http://localhost:32782 http://nelio-ab-testing.lndo.site https://nelio-ab-testing.lndo.site

축하 해요! 이제 새로운 WordPress 설치가 실행되고 있습니다. 이제 시작에 나열된 URL Lando 중 하나로 이동하면 WordPress 설치를 완료하는 단계를 따르기만 하면 됩니다.

국가에 WordPress 설치
Lando에 워드프레스를 설치합니다.

WordPress 설치를 빠르게 완료하기

분명히 이전 화면의 설치 프로그램을 사용하여 WordPress 설치를 완료할 수 있습니다. 그러나 더 나은 솔루션이 있습니다. Lando에서도 사용할 수 있는 WP-CLI를 사용하십시오.

WP-CLI로 WordPress를 설치하려면 먼저 wordpress 디렉토리에 wp-config.php 를 만들어야 합니다. 해당 파일을 생성하려면 데이터베이스에 대한 몇 가지 정보가 필요합니다. 위치, 사용자 이름 및 비밀번호 등입니다. 이 모든 정보는 다음 JSON을 반환하는 lando info 를 통해 찾을 수 있습니다.

 [ { service: 'appserver', urls: [ 'https://localhost:32781', 'http://localhost:32782', 'http://nelio-ab-testing.lndo.site', 'https://nelio-ab-testing.lndo.site' ], //... }, { service: 'database', //... creds: { database: 'wordpress', password: 'wordpress', user: 'wordpress', }, //... } ]

결과는 JSON 문자열이므로 Unix의 jq 도구를 사용하여 관심 있는 특정 값을 검색할 수 있습니다. 예를 들어 데이터베이스 사용자를 알고 싶다면 다음을 실행하십시오.

 $ lando info --service database --format json | jq -r ".[0].creds.user" wordpress

이제 이 명령을 활용하고 WP-CLI를 사용하여 구성 파일을 빌드하는 데 필요한 모든 관련 데이터를 검색해 보겠습니다.

 # Find WordPress' directory (webroot entry in .lando.yml) WEBROOT=`grep webroot .lando.yml | cut -d: -f2 | xargs` # Retrieve database credentials using lando info DBNAME=`lando info --service database --format json | jq -r ".[0].creds.database"` DBUSER=`lando info --service database --format json | jq -r ".[0].creds.user"` DBPASS=`lando info --service database --format json | jq -r ".[0].creds.password"` DBHOST=`lando info --service database --format json | jq -r ".[0].hostnames[0]"` # Create WordPress' config file lando wp config create \ --dbname=$DBNAME \ --dbuser=$DBUSER \ --dbpass=$DBPASS \ --dbhost=$DBHOST \ --path=$WEBROOT

파일이 생성되면 설치 명령을 실행할 수 있습니다.

 # Get WordPress' project name from .lando.yml PROJECT_NAME=`grep name .lando.yml | cut -d: -f2 | xargs` SITE_NAME=`echo "$PROJECT_NAME" | sed -e "s/-/ /g" | sed "s/\b[az]/\u&/g"` # Get one of the possible WordPress' URLs ando created (https) URL=`lando info --service appserver --format json | jq -r ".[0].urls" | grep -vw localhost | grep https: | cut -d'"' -f2` # Extract the domain from the previous URL (removing https) DOMAIN=`echo "$URL" | sed -e "s/^https:\/\///"` # Install WordPress lando wp core install --url=$URL --title="$SITE_NAME" --admin_user=admin --admin_password=password --admin_email=admin@$DOMAIN --path=$WEBROOT

완료! 우리는 이미 WordPress를 설치하고 작동하고 있습니다.

프로젝트를 WordPress에 넣는 방법

이제 WordPress에 로그인하여 사용 가능한 플러그인을 살펴보면 플러그인(내 예에서는 Nelio A/B Testing)이 없음을 알 수 있습니다. Nelio A/B Testing이 wordpress/wp-content/plugins/ 에 없기 때문입니다. 이 문제를 해결하려면 이 디렉토리에 프로젝트의 루트를 가리키는 소프트 링크를 생성하기만 하면 됩니다.

 cd wordpress/wp-content/plugins/ ln -s ../../../ nelio-ab-testing cd -

그리고 그게 다야!

이제 귀하의 요구에 더 잘 맞는 접근 방식을 결정하는 것은 귀하에게 달려 있습니다. 모든 프로젝트에 대해 WordPress 설치를 생성하려면 내가 설명한 단계를 따르십시오. 반면에 모든 테마와 플러그인이 포함된 단일 WordPress 설치를 원하면 새 폴더를 만들고 거기에서 Lando를 초기화한 다음 모든 플러그인을 wordpress/wp-content/plugins/ 에 추가합니다.

이 게시물과 도구가 저만큼 마음에 드셨기를 바랍니다. 그리고 그것이 당신의 작업을 더 쉽고 재미있게 만들기를 바랍니다. Lando를 사용한 이후로 Docker에서 완전히 멀어졌습니다.

Unsplash에서 Victoire Joncheray의 추천 이미지.