Jehna :)

CentOS7, Laravel 설치 본문

윌리/System 이것저것

CentOS7, Laravel 설치

Jehna 2017. 10. 20. 13:50

"CentOS7 Laravel install"


<설치 환경>

- CentOS 7

- Nginx 1.12.2

- MariaDB 10.1.28

※ nginx, php-fpm, mariadb 모두 설치(연동)된 상태에서 Laravel을 설치함.



1. json 설치 

   composer 설치를 위해 json을 설치한다.

   (composer에 대한 내용은 https://xpressengine.github.io/Composer-korean-docs/ 참고)   

   # yum install php71u-json 


2. composer 설치

   Laravel은 의존성관리를 위해 composer를 사용한다고 함.

   # curl -sS https://getcomposer.org/installer | php


3. composer 간편하게 사용하기 위해 /usr/local/bin/composer로 변경

   #  mv composer.phar /usr/local/bin/composer


4. composer를 사용하여 Laravel 인스톨러 설치 

   # composer global require "laravel/installer=~1.1"

   - Laravel 인스톨러가 설치되면 .config/composer/vendor/laravel이 보임 ( ls -al로 확인)


참고) Laravel 인스톨러를 이용한 설치 vs composer를 이용한 설치

        - Laravel 인스톨러를 이용할 경우,

          사용하기 간편하고 프로젝트 생성시 속도가 빠름 그리고 무조건 최신버전 설치 

        - composer를 이용할 경우,

          지정된 버전으로 설치 가능 (속도는... 안해봐서 잘 모르겠음.)


5. 손쉽게 라라벨을 사용하기 위해 .bash_profile에 환경 변수 추가

    - 아래 빨간색으로 된 글씨를 추가하면 됨

   # vim .bash_profile

     # .bash_profile

     # Get the aliases and functions

     if [ -f ~/.bashrc ]; then

        . ~/.bashrc

     fi

     # User specific environment and startup programs

     PATH=$PATH:$HOME/bin:/root/.config/composer/vendor/bin 

     export PATH 


   - 저장 후 적용

   # source .bash_profile


6. Laravel 프로젝트 생성

    - nginx 기본 경로로 이동해서 생성해야 함. 기본 경로는 /etc/nginx/conf.d/default.conf 에서 확인할 수 있음.

      만약, 기본경로가 아니라 다른 곳에서 생성했을 경우 생성된 프로젝트 디렉토리를 기본경로로 이동하면 됨

   # laravel new 프로젝트 이름   // ex) laravel new myproject 


7. Laravel 버전 확인

   - 버전확인은 생략해도 됨 .. 그냥 궁굼해서 해봤....

  # cd myproject   // 생성한 프로젝트 안으로 이동

  # php artisan --version  // 버전확인


8. 애플리케이션 key 값 확인 

   - app key는 프레임워크 전체에서 사용되는 암호화 알고리즘 키값으로 사용자의 쿠기를 복호화 할 때 사용된다고 하는데 .. 

     매우 중요함!!!

   - 라라벨 프로젝트를 composer나 인스톨러로 생성했다면 app key 값은 자동으로 생성되어 있음

 
   # vim .env   // 생성한 프로젝트 디렉토리 안에 .env 파일이 있음

     APP_NAME=Laravel

     APP_ENV=local

     APP_KEY=base64:sctcBYpVj0bYbUSKk/WmuNgl2BzejGml0DGtobDWBbM=

     APP_DEBUG=true

     APP_LOG_LEVEL=debug

     APP_URL=http://localhost


     ... 이하 생략

 


참고) 만약 APP_KEY 값이 없다면?

   #  php artisan key:generate   // 라라벨 프로젝트 안에서 명령어 실행 


참고) 만약 .env 파일이 없다면?

   # cp .env.example .env  // 라라벨 프로젝트 안에서 명령어 실행 


9. 프로젝트 파일 권한 변경 

   - 시스템에서 Laravel을 실행 할 수 있도록 권한 변경  음..... 자세한 이유는 공부해야 봐야함... ㅠㅠ.. 일단 실행되게끔 해볼까...

  // Laravel 프로젝트 안에서 명령어 실행

  # chmod 755 storeage

  # chmod 755 bootstrap/cache 


10. nginx 설정파일 변경 

      - welcome to nginx가 아니라 Laravel이 떠야하니까 수정

    # vim /etc/nginx/conf.d/default.conf

    server {

    listen       80;

    server_name  192.168.0.135;


    root /usr/share/nginx/myapp/public;    

    // 생성한 프로젝트 내용을 실행시켜 주기 위해 프로젝트 경로 입력 (public 디렉토리는 프로젝트 기본 디렉토리임)

    index  index.html index.htm index.php; // index.php파일이 실행되야 하므로 꼭!! index.php를 추가 시켜야 함.


    #charset koi8-r;

    #access_log  /var/log/nginx/host.access.log  main;


    location / {

        try_files $uri $uri/ /index.php?$query_string;

    }


    #error_page  404              /404.html;


    # redirect server error pages to the static page /50x.html

    #

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root /usr/share/nginx/html;

    }


    # proxy the PHP scripts to Apache listening on 127.0.0.1:80

    #

    #location ~ \.php$ {

    #    proxy_pass   http://127.0.0.1;

    #}


    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

    #

    location ~ \.php$ {

        #try_files $uri=404;

        fastcgi_pass   php-fpm;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        include        fastcgi_params;

    }


    # deny access to .htaccess files, if Apache's document root

    # concurs with nginx's one

    #

    location ~ /\.ht {

        deny  all;

    }

    }

 



11. Laravel 프로젝트 소유권 변경

     - php-fpm으로 변경하는 이유는?? php는 php-fpm이 실행하므로...

    # chown -R php-fpm.php-fpm myproject  // chown -R php-fpm.php-fpm 프로젝트 이름 


12. nginx, php-fpm 모두 재실행

     # systemctl restart nginx

     # systemctl restart php-fpm


13. Laravel이 짠!!!