Tag Archives: php

macOS Sierra 기준 Homebrew를 이용하여 APM 설치하기

macos-sierra-logo

이번에는 새로 출시된 macOS 시에라에서 Apache, PHP, MySQL을 설치하여 서비스로 구동하는 과정을 정리해보겠습니다. 이 모든작업들 역시 Homebrew를 사용하면 손쉽게 해낼 수 있습니다. 우선 이 글은 Homebrew가 정상적으로 설치되어있는 맥이 준비되어있다고 가정하고 작성되었습니다.

$ brew tap homebrew/dupes
$ brew tap homebrew/php
$ brew tap homebrew/apache
$ brew update

우선 설치할 것들에 대한 준비를 위해 tap 명령을 사용하여 별도의 저장소를 추가하도록 합니다. 이 명령은 Homebrew의 master 저장소에 없는 패키지들을 사용할 수 있도록 해줍니다.

MariaDB 설치

MySQL 대신에 제가 선호하는 MariaDB를 설치하도록 하겠습니다. 다음의 명령을 사용하여 매우 간단하게 설치할 수 있습니다.

$ brew install mariadb

설치가 완료되면 다음의 명령을 수행하여 초기에 필요한 기본 디비 구성을 할 수 있습니다.

$ mysql_install_db

이제 준비가 끝났으니 MariaDB를 서비스 형태로 구동해 보겠습니다.

$ brew services start mariadb

여기까지만 진행하면 익명 상태로 mysql 명령을 사용하여 자유롭게 사용이 가능한 상태가 됩니다만 보안에 취약한 상태가 됩니다. 물론 개인 맥북에서 사용하고 계신 상태라면 크게 문제될 것은 없습니다만 mysql_secure_installation 명령을 사용하면 손쉽게 root 비밀번호를 포함한 보안 상태의 설정을 변경할 수 있습니다.

$ mysql_secure_installation
Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Set root password? [Y/n] Y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

Remove anonymous users? [Y/n] Y
 ... Success!

Disallow root login remotely? [Y/n] Y
 ... Success!

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

이제 mysql 명령을 사용하여 내가 결정한 비밀번호로 정상적으로 root 계정에 접속이 되는지 확인을 해봅시다.

$ mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 19
Server version: 10.1.18-MariaDB Homebrew

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Apache 설치하기

macOS 시에라에는 이미 아파치 2.4 버전이 기본 설치되어있습니다. 하지만 지금 설치하려는 Homebrew 패키지들에 의해서 관리하기에 복잡함이 생기므로 기본 설치된 아파치 2.4는 꺼두고 새로운 아파치를 설치해보도록 하겠습니다.

$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

위와 같은 명령으로 기본 설치되어있는 아파치를 더이상 실행되지 않도록 변경할 수 있습니다. 이번에는 새로운 새로운 아파치 2.4 버전을 Homebrew를 이용하여 설치한 뒤 서비스로 구동하는 방법을 알아보겠습니다.

$ brew install httpd24 --with-privileged-ports --with-http2
$ sudo brew services start httpd24

간단하게 설치가 완료되었습니다. 위에서 보여지는 –with-privileged-ports 옵션은 1024 이하의 낮은 숫자의 시스템 포트를 사용하기 위해서 사용하는 옵션입니다. 이 옵션을 사용하여 80번 포트를 사용할 수 있으며 8080과 같은 포트를 사용하실 경우에는 굳이 이 옵션은 필요없습니다. 80번 포트를 사용하여 구동할 경우 보실 수 있듯이 brew services 명령 앞에 sudo를 붙이는것을 볼 수 있습니다.

아파치가 정상적으로 설치되었다면 사용하시는 브라우저에서 localhost로 접속하여 다음과 같은 화면이 뜨는것을 확인하실 수 있습니다.

install-apm-on-macos-sierra01

PHP 설치하기

이제 PHP를 설치해 보도록 하겠습니다. 선호하는 PHP 버전은 다양하게 있겠지만 저의 경우는 5.6을 설치해보도록 하겠습니다. brew search php 명령을 사용하여 사용가능한 PHP 버전을 검색해볼 수 있습니다. 이글을 쓰는 시점에 사용가능한 버전은 5.5 / 5.6 / 7.0 / 7.1 입니다.

$ brew install php56 --with-apache

조금 빌드 시간이 소요되겠지만 설치가 완료되면 바로 사용할 수 있는건 아니고 아파치에 몇가지 설정을 추가해 주어야 합니다.

Apache에 PHP 설정 추가하기

아파치 설정파일은 2.4 버전의 경우에는 /usr/local/etc/apache2/2.4 에서 찾을 수 있습니다. 본인이 선호하시는 텍스트 에디터를 사용하여 /usr/local/etc/apache2/2.4/httpd.conf 를 열어서 다음의 내용을 찾아봅니다.

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

위의 내용을 찾으셨다면 다음과 같이 변경을 해주시기 바랍니다. DirectoryIndex 에 값을 추가하였고 FilesMatch 항목을 추가하였습니다.

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

<FilesMatch \.php

gt; SetHandler application/x-httpd-php </FilesMatch>

이제 아파치를 재시작 하겠습니다.

$ sudo brew services restart httpd24
Password:
Stopping `httpd24`... (might take a while)
==> Successfully stopped `httpd24` (label: homebrew.mxcl.httpd24)
==> Successfully started `httpd24` (label: homebrew.mxcl.httpd24)

이제 PHP가 정상적으로 구동중인지 확인을 해봐야겠지요. 다음과 같이 PHP 테스트 결과를 출력하는 페이지를 만들어 줍니다. 여기서 알 수 있듯이 기본적으로 아파치 기본 도큐먼트 디렉토리는 /usr/local/var/www/htdocs 입니다.

$ echo "<?php phpinfo();" > /usr/local/var/www/htdocs/index.php

이제 다시 한번 브라우저에서 localhost에 접속해보도록 하겠습니다.

install-apm-on-macos-sierra02

정상적으로 phpinfo가 실행된것을 볼 수 있습니다. 조금 밑으로 내려보시면 MySQL(MariaDB) 역시 정상적으로 연동이 되어있는것을 확인해 볼 수 있습니다.

install-apm-on-macos-sierra03

다 좋은데 date 쪽 항목에서 다음과 같은 경고가 뜨고 있는것을 볼 수 있습니다.

install-apm-on-macos-sierra04

시스템의 타임존 설정이 제대로 되어있지 않다는것인데요. 이렇게 된 김에 이부분의 설정도 해보도록 하겠습니다. php.ini 파일을 수정해야 하는데 /usr/local/etc/php/5.6 안에 있습니다. Date 항목을 찾아서 date.timezone의 내용이 주석처리 되어있는데 다음과 같이 수정해주시면 됩니다.

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Seoul

이제 준비는 완료되었고 마지막으로 한번 더 아파치를 재시작 해주시면 됩니다.

$ sudo brew services restart httpd24
Password:
Stopping `httpd24`... (might take a while)
==> Successfully stopped `httpd24` (label: homebrew.mxcl.httpd24)
==> Successfully started `httpd24` (label: homebrew.mxcl.httpd24)

IntelliJ IDEA User Interface 분석

1. 더 높은 생산성을 위한 유저 인터페이스

인텔리J IDEA에서 기본적으로 네비게이션 툴바, 툴 윈도우바, 프로젝트뷰를 볼 수 있습니다. 이것들은 프로젝트의 파일들이나 개발툴을 찾는데 유용하게 사용될 수 있는 최소한의 세트입니다.

2

몇몇 툴 윈도우들은 타이틀이름에 숫자가 적혀있습니다. Alt (맥에서는 Cmd)와 함께 해당 숫자키를 누름으써 툴 윈도우를 보여지게 하거나 숨길 수 있습니다. 에디터의 더 많은 공간 확보를 위해 네비게이션바 역시 숨길 수 있습니다. 왼쪽 하단의 아이콘을 클릭함으로써 툴 윈도우바 역시 숨길 수 있습니다.

3

위의 스크린샷과 같이 모든 툴윈도우가 숨겨진 상태에서 Alt (맥에서는 Cmd)를 두번눌러 활성화 시킬 수 있습니다. 모든것을 숨길 필요가 없이 단지 텍스트 에디터처럼 사용하기 위해서는 Shift + Ctrl + F12 (맥에서는 Shift + Cmd + F12)를 눌러 에디터의 크기를 최대화 할 수 있습니다.

4

2. 퍼스펙티브(Perspective)간 이동이 필요없음

인텔리J IDEA는 이클립스와 같은 다른 IDE들과는 달리 퍼스펙티브를 가지고 있지 않습니다. 이것은 다른 작업들을 하기 위해 다른 워크스페이스 레이아웃을 가진 화면들간에 수동으로 이동해다닐 필요가 없어짐을 의미합니다. IDE는 자동으로 당신의 작업에 적절하게 대응하는 툴을 띄웁니다. 퍼스펙티브가 없기때문에 바로가기나 액션들은 항상 존재하게 됩니다.

5

3. 빠른 검색

인텔리J의 대부분의 컴포넌트들은 빠른 검색을 지원합니다. 이 기능은 검색 쿼리를 이용하여 필터링 또는 탐색을 통해 특정 아이템을 찾을 수 있도록 해줍니다. 프로젝트 뷰 툴 윈도우가 선택되어있고 마우스 없이 어떤 아이템을 검색하고자 한다면 – 단지 찾고자 하는 이름을 타이핑 하면 IDE가 당신이 원하는것을 찾아줄 것입니다.

6

4. 다중 윈도우

만약 당신이 몇개의 파일들을 분리된 다른 윈도우에서 열어놓고 작업을 하고 싶다면 단지 에디터의 탭을 바깥으로 드래그하면 됩니다. 이렇게 단순한 드래그를 통해 윈도우간에 탭들을 자유롭게 이동할 수 있습니다.

7

5. Darcula 컬러 스킴

버전12부터 인텔리J IDEA는 Darcula라고 불리는 어두운 느낌의 테마를 제공합니다. Setting → Appearance → Theme 에서 변경할 수 있습니다.

8

6. 이름으로 액션 찾기

특정 액션(작업)을 어떻게 실행해야 할지 모르겠다면 Shift + Ctrl + A (맥은 Shift + Cmd + A)를 눌러 이름으로 검색할 수 있습니다.

9