Ubuntu AWS EC2 인스턴스에 Puppeteer 설치

Haven은 HTML/CSS를 pdf로 변환하는 프로젝트에서 일하면서 몇 가지를 배우게 되었습니다. 첫째, 내 생각에 Puppeter는 여전히 서버 측에서 최고의 변환기라고 말해야 합니다.

따라서 이 기사에서는 Puppeteer를 설치하고 발생할 수 있는 오류를 완화하는 방법에 대해 설명합니다.

대본:
내 프로젝트는 동일한 로컬 호스트 내의 소켓을 통해 NodeJS 서버와 통신하는 Laravel/PHP 프로젝트였습니다. 그래서 PHP는 JSON 데이터를 NodeJS에 보내고, NodeJS는 미리 정의된 HTML 템플릿이 있는 데이터를 pdf로 변환하고 파일을 저장하고 소켓을 통해 결과(파일)를 PHP에 다시 씁니다. pdf 파일을 받으면 PHP는 결과를 브라우저에 다운로드 가능한 파일로 반환합니다.
이런 식으로 나는 우려의 완전한 분리를 달성하고 재사용성이 높으며 매우 선명한 pdf를 인쇄했습니다.
프로젝트는 AWS EC2/ubuntu 인스턴스에서 호스팅되었습니다.

Ubuntu 인스턴스(18.04 및 20.04)에 Puppeteer를 설치하는 방법
  • 프로젝트 디렉토리로 이동
  • NodeJS/npm을 설치하지 않은 경우 설치하십시오
  • .
  • 실행:sudo npm install -g puppeteer --unsafe-perm=true -allow-root && sudo apt install chromium-browser -y

  • 직면할 가능성이 높은 오류

    ubuntu 20.04/18.04 Oh error: Error: Failed to launch the browser process! error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory.



    참고: libnss3.so, libgbm.so, libxss1.so 또는 libasound2.so 누락 패키지에 대해 이와 동일한 오류가 표시될 수 있습니다.

    해결책:
    다음과 같이 이러한 패키지를 단독으로 설치할 수 있습니다.
  • sudo apt install libnss3-dev
  • sudo apt install libgbm-dev
    등등

  • 그러나 여기에 완전한 설치가 있습니다

    운영:

    sudo apt update && sudo apt install -y gconf-service libgbm-dev libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
    


    그러면 누락될 수 있는 모든 종속성이 설치됩니다.
    그러나 연결 과정에서 문제가 발생하면 도움을 요청할 수 있습니다. 고맙습니다.

    나에게 도움이 된 링크
  • https://techoverflow.net/2018/06/05/how-to-fix-puppetteer-error-while-loading-shared-libraries-libx11-xcb-so-1-cannot-open-shared-object-file-no-such-file-or-directory/
  • https://zhang0peter.com/2020/02/07/linux-chrome-bug/
  • https://github.com/actions/virtual-environments/issues/732
  • https://github.com/puppeteer/puppeteer/issues/807
  • https://github.com/alixaxel/chrome-aws-lambda/issues/93
  • 좋은 웹페이지 즐겨찾기