Laravel 프로젝트를 0부터 배포

10644 단어 laravel배치하다
먼저 지난 절에서 우리는 어떻게 centos8에 LAMP 환경전송문을 설치하는지 설명했다. 다음은 어떻게 0부터 기존의 laravel 프로젝트를 배치하는지 설명한다.
설치 Git
  • 설치 Git
    yum install git
    
    git --version
    # git version 2.18.2
  • 구성 Git
    git config --global user.name "xxx"
    
    git config --global user.email "[email protected]"
    
    git config --list
    # user.name=xxx
    # [email protected]
  • 공개 키 생성
    ssh-keygen -t rsa -C "[email protected]"
    #            ,          
  • 공개 키를 복제하여 창고에 추가할 수 있는 배치 가능한 공개 키에 공개 키 파일이 ~/.ssh/id_rsa.pub 항목에 접근하는 창고 주소: 예를 들어 https://gitee.com/name/laravel-project 프로젝트의 - 에 서버에 추가id_rsa.pub 파일의 공개 키
  • composer 도구 설치
    curl -sS https://getcomposer.org/installer | php
    # All settings correct for using Composer
    # Downloading...
    
    # Composer (version 1.9.3) successfully installed to: /root/composer.phar
    # Use it: php composer.phar
    
    mv composer.phar /usr/local/bin/composer
    
    composer -V
    # Composer version 1.9.3 2020-02-04 12:58:49

    curl 다운로드가 느리므로 다음 방법을 사용할 수 있습니다.
    wget https://getcomposer.org/installer
    
    php installer
    
    mv composer.phar /usr/local/bin/composer

    국내 미러 소스 변경:
    #     (  )
    composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
    
    #     
    # composer config repo.packagist composer https://mirrors.aliyun.com/composer/
    

    국내 미러링 소스 권장 사항:
  • 아리운 Composer 전량 미러(추천) 미러 유형: 전량 미러 업데이트 시간: 1분 미러 주소: https://mirrors.aliyun.com/co... 공식 주소: https://mirrors.aliyun.com/co...\미러 설명: 아리운 CDN 가속, 업데이트 속도가 빠르고 추천
  • Composer 중국어 네트워크 미러 유형: 전체 미러 업데이트 시간: 1분 미러 주소: https://packagist.phpcomposer... 공식 주소: https://pkg.phpcomposer.com/ 미러 설명: 없음
  • 안창네트워크 미러 유형: 전체 미러 업데이트 시간: 1분 미러 주소: https://php.cnpkg.org 공식 주소: https://php.cnpkg.org 미러 설명: 이 Composer 미러는 안창네트워크에서 협찬하고 현재 메타데이터, 다운로드 패키지 전체 에이전트를 지원합니다.
  • 교통대학 거울 유형: 비전량 거울 주소: https://packagist.mirrors.sjt...\공식 주소: https://mirrors.sjtug.sjtu.ed...\거울 설명: 상하이교통대학이 제공하는 composer 거울, 안정적이고 빠르며 현대적인 거울 서비스, 사용을 추천합니다.

  • Redis 설치Laravel 캐시 및 대기열 내가 설정한 Redis
  • 설치 Redis
    #       Redis   
    dnf module list redis
    # CentOS-8 - AppStream
    # Name                                               Stream                                                Profiles                                                Summary
    # redis                                              5 [d]                                                 common [d]                                              Redis persistent key-value database
    
    # Remi's Modular repository for Enterprise Linux 8 - x86_64
    # Name                                               Stream                                                Profiles                                                Summary
    # redis                                              remi-5.0                                              common [d]                                              Redis persistent key-value database
    
    # Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
    
    #    Redis
    dnf install redis
    
  • 전원 켜기 설정
    systemctl enable redis
    # Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service.
  • 구성 Redis
    nano /etc/redis.conf
    
    # ctrl+w   requirepass,      redis  
  • 관련 명령 실행
    #    Redis   
    systemctl start redis
    
    #    Redis   
    systemctl stop redis
    
    #    Redis     
    systemctl status redis
    
    #    Redis   
    systemctl restart redis
  • Nodejs 설치
    웹소크 방송은 노드의 라이브러리laravel-echo-server를 사용합니다.
  • nodejs
    #       Nodejs   
    dnf module list nodejs
    # CentOS-8 - AppStream
    # Name                                              Stream                                            Profiles                                                                         Summary
    # nodejs                                            10 [d]                                            common [d], development, minimal, s2i                                            Javascript runtime
    # nodejs                                            12                                                common, development, minimal, s2i                                                Javascript runtime
    
    # Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
    
    #    nodejs   
    dnf module reset nodejs
    
    #   nodejs12  
    dnf module enable nodejs:12
    
    #   
    dnf install nodejs
    
    #   
    node -v
    # v12.13.1
  • 설치
  • laravel-echo-server 설치
    //    
    npm install laravel-echo-server -g
    
    cd /var/www/html/laravel-project
    laravel-echo-server init
    // ? Do you want to run this server in development mode? No
    // ? Which port would you like to serve from? 6001
    // ? Which database would you like to use to store presence channel members? redis
    // ? Enter the host of your Laravel authentication server. https://www.domain.net
    // ? Will you be serving on http or https? https
    // ? Enter the path to your SSL cert file. /path/to/fiel.crt
    // ? Enter the path to your SSL key file. /path/to/fiel.key
    // ? Do you want to generate a client ID/Key for HTTP API? Yes
    // ? Do you want to setup cross domain access to the API? Yes
    // ? Specify the URI that may access the API: https://www.domain.net
    // ? Enter the HTTP methods that are allowed for CORS: GET
    // ? Enter the HTTP headers that are allowed for CORS: Origin, Content-Type, X-Auth-Token, X-Requested-With, Accept, Authorization, X-CSRF-TOKEN, X-Socket-Id
    // ? What do you want this config to be saved as? laravel-echo-server.json
    // appId: xxxxxx
    // key: xxxxxxxxxxxxxxxxxxxxxx
    // Configuration file saved. Run laravel-echo-server start to run server.
    
    //   redis          ,       redis    
    nano laravel-echo-server.json
    //  databaseConfig.redis          
    "port": "6379",
    "host": "127.0.0.1",
    "password": "password"
    
    //         
    laravel-echo-server start
    //         
    laravel-echo-server stop
    //       ,          
    laravel-echo-server는 기본적으로 6001 포트를 사용하기 때문에 서버에서 미리 이 포트를 열어야 합니다

  • 배포 코드
  • clone 코드
    cd /var/www/html/
    
    git clone [email protected]:name/laravel-project.git
  • 설치 종속
    cd /var/www/html/laravel-project
    
    composer install
  • 생성 및 편집.env 파일
    cp .env.example .env
  • 필요한 명령
    php artisan key:generate
    php artisan storage:link
  • 카탈로그 권한 변경
    cd /var/www/html/laravel-project
    chown -R apache:apache storage/
  • PHP 기본 구성 가능
    # php          :
    php -m
  • Apache 구성
  • ssl 모듈 설치
    yum install mod_ssl
  • 가상 도메인 이름 새 파일 구성/etc/httpd/conf.d/vhost.conf
    
    ServerName   :443
    DocumentRoot "        "
    
    SSLCertificateFile /  /public.crt
    SSLCertificateKeyFile /  /*.key
    SSLCertificateChainFile /  /chain.crt
    
    
  • rewrite 모듈 열기
    #      conf.modules.d     rewrite.conf    rewrite  
    #    00-base.conf        rewrite   
    #               rewrite      
    
    #   rewrite        rewrite  
    nano /etc/httpd/conf.d/rewrite.conf
    #       
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteCond %{REQUEST_URI} !^/tz.php
    RewriteRule (.*) https://%{SERVER_NAME}$1 [R]
    
    #   apache  
    systemctl restart httpd
  • MySQL 데이터베이스 가져오기
  • 모든 관련 서비스 시작
    # apache php-fpm mysql redis       ,        
    
    # laravel-echo-server        
    #                 ,              
    nano /etc/rc.d/rc.local
    #       
    cd /var/www/html/ysmj-laravel
    nohup laravel-echo-server start --force > /var/www/html/laravel-project/laravel-echo-server.out  2>&1 &
    nohup php artisan queue:listen > /var/www/html/laravel-project/queue-listen.out 2>&1 &
    #     。            
    chmod +x /etc/rc.d/rc.local
  • 서버 구성(아리운)
  • 오픈 포트80443
  • 도메인 해석은 도메인 관리에 해석 값www@의 기록 값이 서버ip 주소
  • 로 설정됨문제 발생
  • apache 오류 정보:
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
    해결 방법: 열기/etc/httpd/conf/httpd.conf, 한마디 추가ServerName localhost:80
  • apache 오류 정보:
    SSLProtocol: Protocol 'TLSv1.2' overrides already set parameter(s). Check if a +/- prefix is missing.
    해결 방법: SSL 설정의 SSLProtocol TLSv1 제거2
  • apache 오류 정보:
    No slotmem from mod_heartmonitor
    해결 방법: 파일/etc/httpd/conf.modules.d/00-proxy.conf에서 LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so줄을 주석해 주세요.바로 이 줄 앞에 하나#입니다.문제가 해결되지 않으면 다른 프로필 apache 에서 heartbeat 를 찾아서 주석을 달아 보십시오.출처
  • apache 오류 정보:
    suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
    해결 방법: 파일/etc/httpd/conf.modules.d/00-base.conf에서 LoadModule suexec_module modules/mod_suexec.so줄을 주석해 주세요.바로 이 줄 앞에 하나#입니다.문제가 해결되지 않으면 다른 프로필 apache 에서 suexec 를 찾아서 주석을 달아 보십시오.출처
  • 여전히 세 개의 오류 정보가 해결되지 않았지만 사용에 영향을 주지 않았다
    caught SIGWINCH, shutting down gracefully
    Apache/2.4.37 (centos) OpenSSL/1.1.1c configured -- resuming normal operations
    Command line: '/usr/sbin/httpd -D FOREGROUND'
  • 좋은 웹페이지 즐겨찾기