카페24의 호스팅을 이용하여 사이트를 관리하던 중에

셋팅을 건드려야 할것이 많아 AWS EC2로 옮겼다.

그런데 카페24에서 잘 작동했던 mail함수가 AWS에선 작동하지 않았다!

구글링해보니 다른 인스턴스를 이용하고 따른거 좌르륵 하라고 하지만

그냥 하나 설치해주면 mail함수로 메일을 보낼 수 있었다.



1. apt-get을 이용하여 sendmail을 설치한다

sudo apt-get install sendmail

끝!

sendmail만 설치하면 mail함수가 잘 작동한다!

AWS에 APM(apache, php, mysql)을 설치하고 index.html에 php코드를 작성해보니

아니.. 왜 php코드가 그대로 출력되죠?! 당황..


갓구글님께 여쭤보았더니

httpd.conf나 apache2.conf 등등 conf파일이란 모든 conf파일을 들먹이며

LoadModule, AddType 등을 넣어보라는데

자세한 설명이 없어서 몇번째 줄에 넣어야 할지도 모르겠고 넣기만하면 아예 사이트가 먹통..

엄청난 구글링 끝에 드디어 해결방법을 알아내었다.


환경은

aws ec2

ubuntu 16.04

php7


1.

sudo vim /etc/apache2/mods-enabled/mime.conf

위 파일을 vim으로 연다.



2.

/AddType

AddType을 vim 내에서 찾는다.


n 키를 눌러 next next 하다보면

위처럼 AddType이 쭉 나열되어있는데

바로 밑에

AddType application/x-httpd-php .php .phtml .html .htm

를 작성하고 :wq


3.

sudo /etc/init.d/apache2 restart

아파치 재시작하면 끝

mysql 상위버전 5.6인가 5.5인가를 쓰다보니

자꾸 doesn't have a default value 이러면서 insert가 안된다;;

나는 insert를 set으로 사용해서 그런가 빈 공백이 있으면 안된다고 자꾸 나를 오류로 혼내킨다..


검색해보니 sql_mode 를 수정하라고 하는데

역시나 한번에 되는일이 없었다.

/etc/my.cnf 파일이 없어서 어떻게 뭘 해야할지 모르겠사!!


1.

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

위 파일을 vim에디터로 열어준다.




2. [mysqld]를 찾아서

대충 사이에 적절하게 sql_mode = '' 끼워넣는다

[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock

...

skip-external-locking
sql_mode = ''

...


3.

sudo service mysql restart

mysql을 재시작해주면 끝!

ubuntu 16.04 버전을 사용하고 있습니다!



데이터베이스에 들어있는 데이터들을 뿌려주려고하니

한글들이 ?? 물음표로 나옴;

나도 당황.. 물음표..



1. ssh로 서버에 접속하셔서(http://hplayground.tistory.com/78 참고)

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

vim 에디터로 mysqld.cnf를 열어준다.


구글링 하다보면

/etc/my.cnf 로 열어서 수정하라고 하는데

뭐지 나는 etc폴더 안에 my.cnf 파일이 업승ㅁ;;

열심히 삽질해본 결과 mysql.conf.d 안에 mysqld.cnf 를 수정하면 된다고 한다.



2.

[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init_connect=SET collation_connection=utf8_general_ci
init_connect=SET NAMES utf8

[mysql]
default-character-set=utf8

주석같은거 모두 지나서 맨 아랫줄에

위 코드를 붙여넣기한다.

참고로 vim에서 쓰기모드로 바꾸려면 a키를 누르고 쓰면된다.

그리고 :wq 를 써서 저장하고닫기


3.

sudo service mysql restart

mysql을 다시 시작해주면 된다 눈누난나~

그 유명한 aws.. 처음써봤다

아마존리눅스에서 라라벨을 설치했을때는 자꾸 

아파치 설치 잘됐다는 페이지만 보이고

아무리 httpd.conf 를 건드려도, vhost의 documentroot를 건드려도 라라벨 글자가 나올 생각을 안했다.

그래서 우분투로 넘어왔다..개빡!


아래도 우분투로 설치하면서 중간중간 오류난것들을 해쳐나가는 방법이다.






1. 아마존의 EC2 인스턴스를 생성한다.

http://pyrasis.com/book/TheArtOfAmazonWebServices/Chapter04/03

위 사이트를 참고하여 만들었다.

단계별로 쭉 따라가다가 아마존 리눅스 말고 우분투를 선택하고 나머지 단계와 동일하게 따라갔다.


2. 터미널에

ssh -i pem파일 ubuntu@public ip

로 연결한다!


ssh접속 관련 포스트(짧음)는

http://hplayground.tistory.com/78

를 참조!


참고로 우분투는 ec2-user@ip 가 아니라 ubuntu@ip 로 접속해야 된다




3. 터미널에 아래와 같이 업데이트와 업그레이드를 해준다

참고로 아마존리눅스에서는 apt-get이 아니라 yum으로 해줌

sudo apt-get update
sudo apt-get upgrade


4. 아파치를 설치한다.

Y/n 으로 묻는곳엔 Y 치고 엔터

sudo apt-get install apache2


5. mysql을 설치한다.

Y/n 으로 묻는곳엔 Y 치고 엔터

sudo apt-get install mysql-server mysql-client

   

위와같이 mysql의 패스워드를 입력하는 곳이있으면

적절히 패스워드를 치고 엔터엔터 누르면 mysql도 깔린다.

참고

sudo apt-get install phpmyadmin 을 설치할거라면

위에 입력했던 비밀번호를 phpmyadmin을 설치할때도 똑같이 입력해야 한다.



6. php를 설치한다.

현재 (2016.11.03)를 기준으로 우분투를 설치하면 16.04LTS 버전인데

이 우분투에서는 아래의 명령어를 날리면 php7이 깔린다.

sudo apt-get install php libapache2-mod-php php-gd php-xml php-mysql


7. php가 잘작동하나 일단 확인해본다

cd /var/www/html

를 입력해서 폴더이동 후

sudo vim phpinfo.php

명령어를 날려 phpinfo.php파일을 생성하고, vim에디터에 a키를 눌러 입력모드로 전환한 후에

<?php phpinfo(); ?>

를 적고 esc를 누르고 :wq 를 적는다.


그다음 브라우저에

http://52.00.000.00/phpinfo.php

참고

52.00.000.00는 자신의 public id 

를 들어가보면


이런 페이지를 볼 수 있다


또다른 참고로

filezilla 연결할땐

chown -R ec2-user /var/www/html
chmod -R 755 /var/www/html





여기까지가 APM 설치과정!

아래부터 라라벨을 설치하는 과정이다






8. 이제 라라벨을 설치하기 위해 composer를 설치한다!

cd ~
sudo curl -sS https://getcomposer.org/installer | php

~/로 이동하고나서 composer.phar를 받아온다


sudo mv composer.phar /usr/local/bin/composer
sudo ln -s /usr/local/bin/composer /usr/bin/composer

그리고 순서대로 이렇게 하고나서

sudo composer install

를 하면

Do not run Composer as root/super user! 오류가 난다ㅋㅋㅋㅋㅋ

이럴땐

http://zetawiki.com/wiki/Composer_root_%EA%B2%BD%EA%B3%A0%EB%A9%94%EC%8B%9C%EC%A7%80_%ED%95%B4%EC%A0%9C

위 사이트 참고!

export COMPOSER_ALLOW_SUPERUSER=1 부터 영구적용까지 몽땅 한다


아 근데 사실 composer를 사용해도 뭐 라라벨이 깔릴 생각을 안한다 개빡!

그래서

cd /var/www/html

로 이동해서

sudo git clone https://github.com/laravel/laravel.git

그냥 git으로 clone 받아왔다

그러면 /var/www/html 안에 laravel 폴더로 생기는데

DocumentRoot를 laravel/public으로 바꿔줘야 한다.

그래서

cd /etc/apache2/sites-available/
sudo vim 000-default.conf

vim으로 000-default.conf를 열어서 DocumentRoot를

/var/www/html -> /var/www/html/laravel/public

으로 바꾸고 저장, 닫기

sudo service apache2 start
또는
sudo service apache2 restart

로 아파치를 재가동 시킨다




9. 일단 이쯤에서 한번 라라벨을 가동시켜본다
php artisan serve

PHP Warning:  require(/var/www/html/laravel/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /var/www/html/laravel/bootstrap/autoload.php on line 17

오류난다ㅎㅎ 

구글링해보니까 composer update나 composer install 를 하란다.

composer install

또는

composer update

Cannot create cache directory /home/ubuntu/.composer/cache/repo/https---packagist.org/, or directory is not writable. Proceeding without cache

Cannot create cache directory /home/ubuntu/.composer/cache/files/, or directory is not writable. Proceeding without cache

또 오류남ㅎㅎ

뭐 생성할수 없다는것같은데 느낌에 권한문제 같았다

하지만 sudo를 쓰면 또 super user!오류난다

sudo chown -R $USER $HOME/.composer

위 명령어를 날리고 composer install를 하면

 [RuntimeException]                                                     

  /var/www/html/laravel/vendor does not exist and could not be created.

에러가 뜬다

그럼 https://github.com/panique/huge/issues/392 요거 참고해서 오류 픽스하고 다시 composer install를 한다.


그리고 아래와같이 storage와 bootstrap/cache의 권한을 777로 바꿔주고

서버를 켜준다.

sudo chmod -R 777 storage bootstrap/cache
php artisan serve



10. 

http://52.00.000.00 에 접속하면

Whoops, looks like something went wrong 오류가 난다.

그러면

cd /var/www/html/laravel/config

sudo vim app.php

에서 debug => APP_DEBUG 이 부분이 false로 되어있을텐데 이걸 true로 바꾸고 저장,닫기


cd /var/www/html/laravel
sudo vim .env

위처럼 .env를 생성 및 편집기로 열어서


APP_ENV=local
APP_DEBUG=true
APP_KEY=S043rl4v4ABY6PvkTejMejtsLIRipr2d

위의 내용을 고대로 복붙 해주고 :wq





드디어 끝!

이제 다시 브라우저에서 접속하면

이 화면을 볼 수 있다! 예헤

'Programming > PHP' 카테고리의 다른 글

[laravel] welcome.blade.php? blade view  (0) 2016.04.25
[laravel] mac에서 라라벨 설치하고 실행하기  (0) 2016.04.20

이미 파져있는 aws말고

드디어 처음부터 가입해서 신용카드연결하고 서버를 파봤다


ec2팔때 키 인증서?라고해야되나.. 여튼 그거 주는데

터미널에서 ssh연결할 때 인증서 경로를 입력해서 길게 적어야 하는데 여간 귀찮은게 아니다

예전 회사 옆에 계신 갓상사님께서 막 쏼라쏼라 터미널 켜서 vim켜서 뭐 빠르게 적으시고 닫으니까 그때부터 짧게 적어도 서버 접속이 되었던 기억이 났다.


예를들어

ssh -i hearu.pem ec2-user@00.00.000.00

뭐 이런식으로 길게 적어야 할것을

ssh hearu

위와 같이 짧게 입력하면 접속하는 방법!





1. 터미널을 키고.. 참고로 필자는 맥을 사용한다. 

sudo vim ~/.ssh/config

를 입력한다. 비밀번호요구하면 맥의 비밀번호를 치고



2. vim이 켜지면 hostName에는 public ip를, IdenityFile에는 인증서의 경로를 적는다.

경로 모르겠으면 finder에 있는 인증서를 터미널로 드래그해주면 알아서 경로 적힌다.


vim의 입력모드는 a키를 누르면 입력모드로 전환된다.

vim알못이라 다른 vim명령어는 구글링을 추천한다.


아 haeru에는 그냥 아무이름 적어줘도됨

Host test 라고 적으면 ssh test로 접속 되는거고

Host iphone으로 적으면 ssh iphone으로 접속됨

Host haeru

        HostName 00.00.000.00

        User ec2-user

        IdentityFile "/Users/haeru/Documents/haeru.pem"

위와같이 다 썼으면 esc키 누르고 :wq 치면 저장하고 vim이 닫힘



3. 이제부턴 터미널상에서 아무 경로에서나 ssh hearu 를 치면 서버에 접속됨

작년에 시기를 놓쳐서 지원못한 MSP에 지원했다.

올해부턴 기수제가 폐지되고 100명 정도 뽑았던걸 26명만 뽑았다.

그리고 24명의 9기 MSP와 함께 활동한다. 

또 대학원생은 지원 불가며,

대학, 전문대학 재학중인 개발자만 지원 가능했다.

아 경쟁률은 아직 잘 모르겠답..


어제 따끈따끈하게 최종발표가 났는데

다행히 26명 안에 들어 1년동안 MSP로 활동할 수 있게 되었다!! 예헤!


1. 서류

일단 MSP를 먼저 하고있는 친구에게 조언을 구해서 에반젤리즘 활동이 주 활동이란 것을 알았다.

그래서 에반젤리스트가 왜 되고싶은지 어떻게 기술을 전파할건지

내가 여태까지 했던 활동과 잘 짬뽕해서 어필했다.

그리고 에반젤리즘도 에반젤리즘이지만

나는 해커톤과 이매진컵, 행사 보조? 같은 활동에도 관심이 있었다.

요부분도 쪼꼬맣게 한줄 적어주었다.

아아 질문이 자기소개 500자, 지원동기/포부/개인의경쟁력 500자, 팀플경험 500자

이때 제목을 다 달아줬는데 팀플경험만 제목을 빼먹고 낸걸 제출하고 뒤늦게 깨달았음ㅠㅠ

새벽에 제출하지 맙시다.


2. 면접

무사히 서류를 통과하고 광화문에 있는 본사에 30분전에 도착했다.

근데 면접시간이 앞당겨져서 도착하자마자 숨고를새도 없이, 마지막 정리, 준비도 못하고 바로 면접을 봤다.

작년엔 다대다 면접이었다고 들었는데 나는 3:1 면접이었다.

그리고 심사위원중에 한분은 인턴이라고하셨는데 인턴도 진짜 똑똑해보이셨음.. 사스가 마이크로소프트..

들어가서 짧게 자기소개를 했다

나는 디자인이랑 개발 같이 하는 닝겐이라고 어필했다.

그리고 바로 사전미션에 대해 답변을 하였다.

요즘 술자리가많아 기억력이 감퇴되어서 받았던 질문이 잘 기억이 안나는데

일단 내가 포트폴리오에 공을 들이느라 코드보다는 완성된 사이트나 프로그램들을 캡쳐해서 ppt에 첨부했다.

이것을 보고 질문하셨는진 모르겠지만 디자인에 더 관심있는거 아니냐고 하셨다. 맞나??? 여튼 이런 느낌의 질문이었음

내가 C#을 배운적이 없는데 이걸 몇달안에? 한달안에? 공부해서 기술전파를 할수있는지도 여쭤보셨음

프로그래밍언어가 어느정도 비슷해서 php에서 c, java, node로 넘어갔을때도 무사히 잘 넘어갔다고 함 그래서 c#도 공부해서 기술전파할 수 있을거라고 말씀드렸다.

아 그리고 활동을 엄청 많이했는데 바빠서 할수있냐는 질문에는

sgen도 수료했고 하고있는 활동이 없습니다.. 했다. 답하면서 뭔가 내가 되게 백수같고 아무 것도 안하는 노답인생이라는 생각이 잠깐 들었음

또 내가 다녔던 회사에대해서도 질문하셨는데 거기선 뭘 배웠냐고 질문하셨고..

원래 기술전파하려면 좀 알고있는걸 전파해야되는데 갓 배워서 당장 전파하기엔 완전히 기초를 전파하는거라 초딩이나 중딩들 타겟이 된다고..

여기는 대학생들이나 어느정도 큰 사람?한테 전파를 해야한다고 하셨다.

이때 엄!!!!청 당황했다.. 괜히 배워서 전파한다고했나하고.. 그래서 웹 할줄아니까 웹으로 전파할게요 라고 말하면서.. 뭔말했는지도 모르겠다 여튼 막힘없이 말은했는데 간절함이 제대로 전달됐는진 모르겠다.

뭐 그밖에 질문 더있었는데 나머지 질문은 내가 정말 당황했던 질문이라 기억이 안나거나 그냥 머리가 나빠서 기억 안나는걸로..

대충 10분?? 정도 봤던거 같다.

본사좀 둘러볼걸 좀 더워서 마실거 사러 후다닥 내려간게 좀 아쉽



1년전에 처음알고 공고 기다리다가 드디어 지원했는데

솔직히 면접을 좀 망친거같아서 친구한테 살짝 찡찡거렸다.

이번에 얼마 뽑지도 않았는데 붙어서 완전 다행!

열심히할게욥!!

기본적으로 채팅을 구현하려면

소켓통신을 알아야하고 뭐 코드를 짜고 삽질을 해야한다 (예전 노드로 채팅을 짰을 때가 기억나는구려.. 씁)

여튼 그딴거 필요없이 그냥 구글아날리틱스처럼 자바스크립트 코드만 붙이면 짜잔~ 하고 채팅이 붙여지는 서비스가 있다.

이름하여 zopim

조핌이라고 읽어야하나

뭘봐 이 족팡매야 같다


https://www.zopim.com/






1. 먼저 회원가입을 해야함

바로 위 캡쳐사진참고하면서~

이름을 입력하고 이메일주소를 입력한 후 TRY ZOPIM 버튼을 누른다.



2.

그럼 저 아재가 담배를 피우다가 위처럼 가입해줘서 감사하다는 문구가 뜬다

그럼 입력한 이메일주소의 메일함을 가면



3.

위처럼 메일이 하나 와있는데

Verify Yout Email 버튼을 누른다.




4. 

나머지 정보를 입력하는데


먼저 password는 비밀번호

confirm password는 위에 썼던 비밀번호 그대로 다시 쓰고

company는 회사이름 아무렇게나 적었다..

phone number는 핸드폰번호

혹시몰라서 82-10-0000-0000 이런식으로 적었음

그다음 number of employees는 몇명의 상담사가 있냐는 말인거 같은데 그냥 대충 암거나 클릭했고

how do you plan to use zopim?은 족팡매 아니 조핌을 어떤식으로 사용할거냐고 묻는거라

그냥 첫번째 customer support를 클릭했다.(사용해보니 내가 고객지원 으로 뜨더이다..)


여튼 다 적었으면 save and go to dashboard



5.

웰컴투 조핌~


대충 넥스트넥스트 하고

< last name 요거도 적어주고 넥스트를 누르면
















6.

요기 자바스크립트 코드를 복사해서

내 웹사이트에 <head></head> 안에 붙여준다

그리고 go to visitor list 버튼을 클릭하면!




7.

일단 내 사이트 오른쪽 하단에 메시지 남기기 ㅂㅓ튼이 생김!



그리고 내 사이트상에서 메시지를 남기면 zopim 대시보드에 메시지가 왔다고 알람이 뜬다 요시!

ssh ftp아이디@ftp접속주소

1. 예를들면 ftp아이디가 test, ftp접속주소(사이트주소)가 test.com이면 

ssh test@test.com

명령어를 날리고


2. Are you sure you want to continue connecting (yes/no)?

라는 질문이 나오면 yes 를 적어준다

(처음 접속할때 나오는거라 함)


3. test@test.com's password: 

ftp 비밀번호를 적어주면


끝~



* 매번 ssh 아이디@접속주소 쓰기 귀찮을 때

http://hplayground.tistory.com/78

처음에 깃 생성하자 마자 로컬과 연결하기 위한 명령어는 깃헙이 친절하게 알려주는데

다른사람의 저장소에 접근하려니 갓 깃헙공부하는 나에겐 너무 어려웠다.

checkout 을 해야하는건 알겠는데

git checkout만 신나게 때려적었더니 fatal: Not a git repository 오류를 내뿜더다..

git checkout origin/master


요거 둘다 적어봐서 저장소에있던거 다운받아지면 성공

git checkout master

요거 둘다 적어봐서 저장소에있던거 다운받아지면 성공

참고로 origin/master던 master던 branch 이름을 적으면 되니까

만약 특정 branch를 다운받고싶으면 저거 대신에 branch이름을 적으면 된다.





git clone 깃주소

딴거 필요없고 요거였음

+ Recent posts