최근에 알게되서 너무 아쉬운 Composer. 

계속 기억하려고 기록한다.


Composer 란 ?

PHP 의존성 관리도구 이다.


개발을 할때 필요한 라이브러리를 굉장히 편하게 설치할 수 있다.

(앵간해선 프로젝트 단위로 구성한다. 프로젝트 마다 필요한 라이브러리의 버전이 다를 수 있다.)


PHP 라이브러리 소스파일을 받아보면 composer 와 같은 파일이 있는 경우를 많이 본다.

이는 composer로 편하게 설치할 수 있다는 뜻.


일단 설치 방법은 아래와 같다.


$ curl -sS http://getcomposer.org/installer | php

정말 엄청 빨리 설치 라고 쓰지만 다운받는다.


다운받았으면 명령어를 사용한다 .

php composer.phar.....


매우 귀찮으니 전역적으로 사용할 수 있도록 옮겨버리겠다.


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

그럼 이제 composer 라는 명령어 만으로 이용할수 있다.!



그럼 이제 composer 도 설치했겠다. 가장 쉬운 과제로 개발 프레임웍인 CodeIgniter 를 설치하도록 하겠다.

(composer 와 관련된 모든 행위는 root 계정이 아닌 사용자 계정으로 하도록 한다)


$ composer search codeigniter

명령어를 입력하면 여러 리스트가 쭉 내려오는데, CodeIgniter 프레임웍 설치는 codeigniter/framework 을 다운받아야 한다.

$ composer require codeigniter/framework

다운을 받고 리스트를 불러와보면
composer.json, composer.lock, vendor 라는 2개의 파일과 1개의 폴더가 생겼다.

composer.json 에는 composer 를 사용해서 어떤 것이 어떻게 설정되어잇는지 json 형태로 확인할 수 있다.
composer.lock 에는 설치된 리스트의 상세한 정보가 들어 있다고 보면된다.
여기서 중요한건 vendor.

composer 로 설치한 패키지들은 vendor 에 있다.
이제 일단 잘 활용해 보는것으로 이번 기록을 마치도록 한다.


  1. php초보 2018.01.10 17:41

    안녕하세요. 글 잘 읽었습니다.
    local에서 composer를 설치 후 개발이 완료되고, 웹호스팅(예:카페24) 서버에 올릴땐 composer 관련된 파일들도 모두 몽땅 업로드 시키나요?

    • 야채호빵v 2018.01.23 17:14 신고

      넹 composer 로 개발완료하셨으면 고 안에 있는 vendor 나 요런 폴더 구성이 composer 기반으로 되어있어서 전체 다 업로드 하시는게 안전하다고 생각하고 있는 입장입니다 ㅎㅎ

서비스를 운영하다 보면, 일반 사용자 계정에 root 권한을 부여서

서비스 재시작 등의 작업을 할 필요가 생길 경우가 있다.


그럴 때를 위해 일반 사용자 계정에 root 권한 부여하는 방법을 기술한다.


먼저 root 로 로그인 후 sudo 가 설치되어 있는지 확인한다


$ rpm -qa sudo

만약 혹시라도 sudo가 없다면 설치하면 되고....

설치후에 아래 파일을 연다.


$ vim /etc/sudoers

자, 편집하려고 보면, 읽기전용 파일을 편집하려고 한다고 뜰 수 있다.

기본 권한이 440 으로 되어있기때문에, 편집 시 640 으로 바꿔주고 편집하도록 한다.


파일을 열고 91번째 쯤 을 가면


root    ALL=(ALL)    ALL
이라는 부분이 있을것이다.

이 아래에 추가하면 된다.

나는 apache 의 사용권한을 줄 예정이다.

{user_id}    ALL={apache 설치경로}/bin/apachectl

정상적으로 저장하고 나서 {user_id} 에 입력한 사용자로 로그인 후 
아래와 같이 명령어를 입력해보자

$ sudo {apache 설치경로}/bin/apachectl restart


이렇게 하면! 자연스럽게 패스워드를 물어본다.

더욱 자연스럽게 사용자 패스워드를 입력해보면

똭.! 아파치가 재시작된다.


하지만 아직 덜 아름답다. 왜 굳이 password 를 입력해야하는가 ?

루트는 안물어보는데 ?


뭐..지극히 OS 단의 보안문제이겠거니 넘어가고 물어보지 않게 하는 방법은 아래와 같다.


{user_id}    ALL=NOPASSWD:{apache 설치경로}/bin/apachectl


apache 설치 경로앞에 NOPASSWD: 를 입력해주고

다시 사용자 계정으로 아파치를 재시작해주면

딱! 명확하게 정확히도 아파치가 재시작된다.


이 정도는 되야 아름답지.

SSH 공개키 등록하기는.

client -> server 로 엑세스 할 때 비밀번호를 묻지 않게 할 경우 보통 사용된다.


주로, git/svn 의 Remote Repository 연결, RSync 등의 작업을 SSH 포트를 사용 때,

ssh 로 자주 접근해야 되는데 비밀번호 치기가 너무 귀찮을 때

사용된다고 보면 된다.


자, 먼저 Client 에서 공개키를 가지고 온다.

서버의 경우 접속 계정 루트 폴더의 .ssh 폴더 의 .pub 파일이 있을 것이다.

(만약 Client 가 윈도우면 좀 다른 방법으로 가져와야 한다)


윈도우 : 제타위키 매우 잘 설명된 글


만약 .ssh 폴더에 .pub 파일이 없다면,

~/.ssh 폴더에서 ssh-keygen 을 입력하고 엔터를 친다.

엔터는 한번만 치면 안된다. 계속 쳐야한다. 끝났다 싶을때 까지 엔터를 치도록 한다.


그럼 이제 .pub 파일이 생성 되는데,

.pub 파일의 내용을 쭉 복사한다.


내용을 잘 복사했다면, 이제 Server 로 접속한다.

Server 에서 비밀번호 없이 접속하려고 하는 계정으로 로그인한다.

위와 동일하게 ~/.ssh 폴더로 이동한다.


~/.ssh 폴더를 가면 authorized_keys 라는 파일이 있을것이다.

vi 에디터로 열고, 복사한 공개키를 붙여 넣는다.

저장한다.


※ .ssh 폴더의 권한은 755, authorized_keys 파일의 권한은 644 로 한다 


이제 당신은 굳이 비밀번호를 입력하지 않아도

ssh 로 접속할 수 있다.


물론 서버의 authorized_keys 에 공개키가 등록된 클라이언트에 만 이지만...!




  1. 야채호빵v 2018.08.13 09:58 신고

    복붙말고
    cat publicKey.pub > authorized_keys
    라는 고급진 명령어를 쓰는 방법도 있다.

+ Recent posts