Docker의 Apache에서 실행되는 CakePHP3 개발 환경 준비

5658 단어 도커CakePHP
Apache에서 CakePHP를 움직일 필요가 생겼으므로 Docker에서 준비해 보았습니다.
Docker에서 Apache, MySQL을 준비하고 CakePHP3의 튜토리얼을 움직일 수있는 상황까지 가져갑니다. 그 외에 ssl의 환경, xdebug를 움직이는 환경도 정리하고 있습니다.

붙이고 이 기사 를 참고로 해서 받았습니다.

개발 환경


  • MacOS 10.15.3
  • Docker 2.2.0.0

  • gitHub에서 에 준비했으므로, ZIP 파일을 다운로드해, ​​적당한 곳에 폴더를 두고 터미널로부터 그 폴더에 들어가 주세요. 다음 명령을 실행하면 OK입니다.
    docker-compose build
    

    이미지 빌드가 성공적으로 완료되면 다음 명령으로 실행합니다.
    docker-compose up -d   
    

    composer 준비



    composer을 다운로드하여 위의 폴더에 넣으십시오.
    내 mac 환경에서는 기본적으로 들어있는 php에서는 런타임에 오류가 발생하기 때문에 brew에서 php를 설치하고 그것이 기본값이되도록 export를 설정해야했습니다.
    brew install [email protected]  
    echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc 
    echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.zshrc                     
    

    튜토리얼을 따라 cms 프로젝트 만들기



    튜토리얼 에 있는 프로젝트를 준비하는 명령으로 ^가 있습니다만, 이것이 있으면 움직이지 않기 때문에 생략했습니다.
    php composer.phar create-project --prefer-dist cakephp/app:3.8 cms
    

    db 설정



    만든 프로젝트와 Docker MySQL을 연결합니다.
    프로젝트의 설정 파일을 편집합니다.

    cms/config/app.php
    'Datasources' => [
            'default' => [
                'className' => Connection::class,
                'driver' => Mysql::class,
                'persistent' => false,
                'host' => 'db', #編集
                //'port' => 'non_standard_port_number',
                'username' => 'my_app',
                'password' => 'secret',
                'database' => 'cake_cms',#編集
    

    (덤) 도메인 설정 변경



    필수는 아니지만 프로젝트를 프로덕션 환경에서는 문서 루트로 호출하고 싶으므로 다음 설정을 준비합니다.

    docker/apache/site.conf
    
    <VirtualHost *:80>
        DocumentRoot /var/www/html/cms/webroot/
    
        <Directory /var/www/html/>
            Options FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    

    docker/Dockerfile에 다음을 추가하십시오.
    ※gitHub에 주는 녀석은 미리 설정이 끝났습니다.
    COPY ./docker/apache/site.conf /etc/apache2/sites-available/000-default.conf
    

    이상으로 localhost를 호출하면 다음이 표시될까 생각합니다.


    (덤) ssl 설정



    시세무늬, https에서의 운용은 필수이므로, 개발시부터 ssl로 하고 싶다고 생각하는 일도 있을 것.

    몇 분 안에 할 수 있습니다! mkcert로 로컬 환경에 SSL 인증서 설정

    mkcert를 사용하여 사용하려는 도메인 이름을 준비하고 생성 된 파일
    docker/apache/SSL/certs 폴더 아래에 두십시오.
    그리고 그 설정을 docker/apache/SSL/ssl.conf 파일에 설정을 추기합니다.

    docker/apache/SSL/ssl.conf
    <VirtualHost *:443>
      DocumentRoot "/var/www/html/cms/webroot/"
      ServerName hoge.hoge.com
    
    
      #ErrorLog logs/ssl_error_log
      #TransferLog logs/ssl_access_log
      LogLevel warn
    
      SSLEngine on 
      SSLProtocol all -SSLv3
      SSLCertificateFile /var/www/html/docker/apache/SSL/certs/xxxxx.pem
      SSLCertificateKeyFile /var/www/html/docker/apache/SSL/certs/xxxxx-key.pem
    </VirtualHost>
    

    hoge.hoge.com과 xxxx를 다시 작성하십시오.

    docker/Dockerfile에 다음을 추가합니다.
    COPY ./docker/apache/SSL/ssl.conf /etc/apache2/sites-available/ssl.conf
    
    RUN a2enmod ssl
    RUN a2ensite ssl
    

    Apache에 ssl 설정을 추가합니다.

    이것들도 이미 기술하고 있기 때문에 시험하고 싶은 경우는 부디.

    (덤) xdebug 설정



    여기를 참고로 움직이도록 설정하고 있으므로 움직일 것입니다.

    추가



    hosts 파일에 설정하고 싶은 도메인을 입력하지 않으면 잘 움직이지 않네요, 지금 추가 추기입니다만・・・

    Mac에서 hosts 파일을 편집하여 설정을 확인하는 방법

    좋은 웹페이지 즐겨찾기