[OS X, 맥 OS X] 맥에 wordpress 설치형 블로그, 설치형 사이트 설치하기.

2017-01-16 22:52:44

1. 최신 wordpress 설치

$ brew install wp-cli

~~
~~

2. 워드프레스를 설치할 디렉토리 생성

/home 에 생성할 것이기 때문에 우선 $ sudo vi /etc/auto_master 를 입력하고 /home 으로 시작하는 줄을 주석처리하고 저장한다.(/home 디렉토리 하위에 디렉토리가 생성되지 않았기 때문)

~~
~~

터미널을 종료(세션을 끊음)하고 다시 터미널을 열어서 아래 명령어로 원하는 디렉토리를 만든다.

~~
~~

~~$ sudo mkdir -p wordpress ~~

$ cd worldpress

$ sudo mkdir -p webapp

~~
~~

/home 경로에 만들어서 워드프레스를 설치하려고 하니 경고가 뜨는데, 보안상 이슈가 있는 듯 해서 디렉토리를 바꿔주었다.

~~
~~

~~$ cd ~~~

$ sudo mkdir -p wordpress

$ cd wordpress

$ sudo mkdir -p webapp

~~
~~

3. mariaDB 에 계정과 데이터베이스를 생성한다.

$ mysql -u root -p

[MariaDB]> create user ‘wordpress’@’localhost’ IDENTIFIED BY ‘password’;

[MariaDB]> create database wordpress;

[MariaDB]> GRANT ALL ON wordpress.* TO ‘wordpress’@’localhost’;

~~
~~

~~
~~

4. 내가 만든 디렉토리로 이동하고 워드프레스를 설치한다.

~~
~~

$ sudo chmod 775 webapp/

$ cd /home/wordpress/webapp

$ cd webapp/

$ wp core download

$ wp core config –dbname=wordpress –dbuser=wordpress –dbpass=password

$ wp core install –url=http://<도메인or아이피>/ --title='<제목>' --admin_user=<사용할 관리자계정="" 아이디=""> \--admin_password=<사용할 패스워드=""> \--admin_email=<관리자 이메일="" 주소="">

-—- 2017-01-17 수정사항

워드프레스 설치 경로가 위 처럼 하니까 워드프레스가 로드가 안 되었다.

/var/www/wordpress/ 라고 경로를 만들고 거기에 워드프레스를 설치하니 워드프레스를 볼 수 있었다.

-—- 2017-01-20 수정사항

맥(OS X)에서는 워드프레스 설치 경로를 선택할 때 아주 신중히 해야할 것 같다.

sudo 로 명령어를 실행해도 permission denied 가 되는 경우도 있었고, 그럴 땐 리커버리 모드로 부팅한 다음 csrutil disable 명령어로 SIP(System Integration Protection)을 일시적으로 끄고 난 다음 해야하는 등의 여러가지 문제가 있었다. 근데 가장 큰 문제는 그런 번거로운 과정을 거치고 나서도 문제가 해결되지 않았다.

아래는 문제 사항과 해결 과정을 대략적으로 기억나는대로 기록해본 것.

1. nginx 재설치

=> 깃허브에서 가져온 설정때문에 뭔가 내가 하고자 하는 설정과 충돌나는 부분이 있을 것 같아서 재설치 해주었다.

결과적으로는 재설치 하지 않아도 됐었다. 하지만 nginx의 default 설정에서 조금씩 바꾸면서 해봤던 게 nginx.conf 설정 파일을 다루는 데 많은 도움이 되었다.

2. wordpress 재설치

=> /var/www/wordpress 에다가 wp core download 를 하고 wp core config 및 wp core install 과정을 적어도 3번이상은 해봤다. 안 됐다.

3. /var/www/ 경로에 리컬시브하게(recursively) 755 권한 주기.

=> /var/ 디렉토리는 심볼릭링크였는데 private/var/ 로서 도대체 private/var/ 로 권한을 주려고 해도, /private/var/ 로 권한을 주려고 해도 안 됐었다.

4. 최종적으로 /usr/local/var/www/ 에다가 wp core 를 다운로드하고, 설정하고, 설치하였다.

=> 404, 502를 뱉어냈지만 이건 금방 해결하였다.

본 과정을 진행하면서 보았던 에러는 403 forbidden, 404 not found, 502 bad gateway 였다.

403 forbidden : 이걸 해결하는 데 가장 오래 걸렸고 힘들었던 것 같다. 결국 wp core 설치 디렉토리 패스(path) 문제였고 /usr/local/var/www/ 에 설치를 해주니 해결되었다. 이 때 특이했던 점은 html, txt, md 확장자를 가진 파일은 정상적으로 웹브라우저에서 열렸는데 php 파일은 403 forbidden 을 뱉어내는 것이었다.

404 not found : document root 를 잘못 설정해서 나왔던 것 같다.

502 bad gateway : 여러번의 재부팅과 리커버리 모드를 왔다갔다 하다보니 php-fpm 이 실행되지 않는 상태였었다. php- fpm 을 실행시켜주니 잘 되었다!

맥에 wordpress 설치형 블로그, 설치형 사이트 설치하기 과정을 최종적으로 아래에 다시 순서대로 기록함.

1. 최신 wordpress 설치

$ brew install wp-cli

2. 워드프레스를 설치할 디렉토리 생성

$ sudo mkdir -p /usr/local/var/www/wordpress/

3. mariaDB 에 계정과 데이터베이스를 생성한다.

$ mysql -u root -p

[MariaDB]> create user ‘wordpress’@’localhost’ IDENTIFIED BY ‘password’;

[MariaDB]> create database wordpress;

[MariaDB]> GRANT ALL ON wordpress.* TO ‘wordpress’@’localhost’;

4. 내가 만든 디렉토리로 이동하고 워드프레스를 설치한다.

~~
~~

($ sudo chmod -r 755 /usr/ : 만약 /usr 이하 디렉토리나 파일의 권한이 755가 아닐 경우 이 명령을 실행한다.)

$ cd /usr/local/var/www/wordpress/

$ wp core download

$ wp core config –dbname=wordpress –dbuser=wordpress –dbpass=

$ wp core install –url=http://<도메인or아이피>/ --title='<제목>' --admin_user=<사용할 관리자계정="" 아이디=""> \--admin_password=<사용할 패스워드=""> \--admin_email=<관리자 이메일="" 주소=""> : 도메인or아이피에는 localhost 로 적은 사람도 있었고 도메인을 적는 사람도 있었다. 나는 no-ip에서 제공받아 사용하는 DDNS 도메인 주소를 적어주었음.

5. nginx를 설정한다.

/usr/local/etc/nginx/nginx.conf (단 도메인 주소 제외하고 필터링 없이 그대로 적어놨음. 고뇌의 흔적이 주석에… -_- 이게 뭐라고)


#user staff;

#user root;

#user nobody;

#user nginx;

worker_processes 1;

error_log /usr/local/etc/nginx/logs/error.log debug;

pid /usr/local/var/run/nginx.pid;

events {

worker_connections  1024;

}

http {

include       mime.types;

default_type  application/octet-stream;

  

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                  '$status $body_bytes_sent "$http_referer" '

                  '"$http_user_agent" "$http_x_forwarded_for"';

  

access_log  /usr/local/etc/nginx/logs/access.log  main;

  

sendfile        on;

tcp_nopush     on;

  

#keepalive_timeout  0;

keepalive_timeout  65;

  

#gzip  on;

#gzip  on;

  

server {

    listen       80;

    server_name  localhost;

    root        /usr/local/var/www/;

    index    index.html index.htm index.php;

  

    #charset koi8-r;

  

    access_log  /usr/local/etc/nginx/logs/host.access.log  main;

  

    location / {

        #include /usr/local/etc/nginx/conf.d/php-fpm;

        #root   /var/www/wordpress/;

        index  index.html index.htm;

        #allow   127.0.0.1;

        #allow   all;

        try_files $uri /index.php?$args;

        #autoindex on;

  

        location ~ \\.php$ {

            try_files      $uri = 404;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

    }

  

    location /wordpress {

        alias /var/www/wordpress;

        index  index.php;

    }

  

    location = /info {

        allow   127.0.0.1;

        deny    all;

        rewrite (.*) /.info.php;

    }

  

    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   /var/www/;

    }

  

    # 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$ {

        #root           html;

        try_files      $uri = 404;

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME  /scripts$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;

    }

}

  

  

# another virtual host using mix of IP-, name-, and port-based configuration

#

#server {

#    listen       8000;

#    listen       somename:8080;

#    server_name  somename  alias  another.alias;

  

#    location / {

#        root   html;

#        index  index.html index.htm;

#    }

#}

  

  

# HTTPS server

#

#server {

#    listen       443 ssl;

#    server_name  localhost;

  

#    ssl_certificate      cert.pem;

#    ssl_certificate_key  cert.key;

  

#    ssl_session_cache    shared:SSL:1m;

#    ssl_session_timeout  5m;

  

#    ssl_ciphers  HIGH:!aNULL:!MD5;

#    ssl_prefer_server_ciphers  on;

  

#    location / {

#        root   html;

#        index  index.html index.htm;

#    }

#}

include servers/*;

}

autoindex on 을 하지 않으면 http://localhost/wp-admin 에서 403 forbidden 이 나왔었다. 아래는 그 해결방법. ![][link0] 6\. http://localhost/wordpress 에 접속한다. 아래처럼 잘 나왔을 때 감격이... ![][link1] 소감....) 실제 블로그나 사이트를 운영하기 위해 만든 건 아니지만, 맥에서 nginx, php, mariaDB 를 설치하고 운영하기위해 참고하는 레퍼런스가 생각보다 적었고, 회사에서 프론트엔드 개발자들이 주로 NPM을 이용해 개발을 하기 때문에 나도 알아두면 좋을 것 같아서 해본 것인데 막상 하는 도중에 막힌 부분들이 많아서 꽤나 오기가 생겼었다. 최종적으로 잘 된 것을 보니 기뻤고, 회사에서 프론트엔드 개발자들과 대화할 수 있는 범위가 좀 더 넓어지겠거니 싶다. [link0]:https://t1.daumcdn.net/cfile/tistory/2246B43F5882209B3A [link1]:https://t1.daumcdn.net/cfile/tistory/235D743458821AD11A

Comments