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=<관리자 이메일="" 주소="">관리자>사용할>사용할>제목>도메인or아이피>
-—- 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 도메인 주소를 적어주었음.관리자>사용할>사용할>제목>도메인or아이피>
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/*;
}
Comments