저는 오드로이드 HC2를 사용중에 있는데 워드프레스를 설치하다가 개인적으로 조금 헤맸던 것이 있어서 정리해보았습니다. 아마도 리눅스를 좀더 알았으면 쉽게 넘어갈 수 있었을텐데, 기본적으로 이해가 부족하다보니 시간이 좀 걸렸던 것 같습니다.
제가 궁금했던 것은 워드프레스의 기본 uploads 경로를 다른 파티션의 경로로 바꾸고 싶었던 것이었는데, 결국 심볼릭 링크를 사용해서 처리할수 있었습니다.
현재 오드로이드는 속도 향상을 위해 1개의 하드 디스크를 2개의 파티션으로 나눠 사용중인 상태였습니다.
[참고 1] 루트 파티션 만들기-스퀴니님의 글: http://bit.ly/2wudE7Y
위의 참고1을 기반으로 sda1은 루트 파티션으로 sda2는 데이터 파티션으로 나누어 놨었습니다. 그리고 sda1에 워드프레스를 설치한 뒤, 사진과 영상 같은 크기가 큰 미디어 정보는 용량을 크게 잡았던 sda2로 저장하면 되겠다 싶었는데 이게 마음대로 잘 안되었었습니다.
(문서 내의 ww w는 자동으로 http 가 붙어버려서 공백을 넣었습니다.)
1. wp-config.php 에 경로 추가 방법
위 파일에 sda2에 저장할 디렉토리를 만들어 두고, wp-config.php 파일에 아래 define을 추가해보았습니다.
define( 'UPLOADS', '/media/data/wordpress/wp-content/uploads' );
위와 같이 하면 될 줄 알았는데, 파일을 업로드 해보았더니 루트 파티션(sda1) /var/ww w/wordpress/ 밑에 '/media/data/wordpress/wp-content/uploads' 가 생기면서 파일들이 저장되었습니다. 검색을 해보니 기본적으로 wp-config.php 에 define을 통해 경로를 설정하면 절대경로로 잡힌 다는 것을 알게 되었습니다.
원하는 것이 아니기에 해당 설정 정보는 삭제하였습니다. 이렇게 uploads 디렉토리에 대한 정보가 없으면 업로드된 파일은 '/wp-content/uploads' 경로에 저장됩니다.
2. 심볼릭 링크 사용
(1) 파일이 저장될 파티션의 경로 생성
sda2에 /media/data/wordpress/wp-content/uploads 디렉토리 생성
디렉토리 생성 후, permission 설정
# sudo chown -R ww w-data:ww w-data /media/data/wordpress/
# sudo usermod -a -G ww w-data ww w-data
(2) 심볼릭 링크
구글 검색을 하다가 [참고2] https://do.co/2wuvGHf 의 댓글 중 심볼릭 링크를 사용한 것을 보고 시도해보았는데 잘 작동하였습니다.
1) 워드프레스가 설치(sda1)되어 있는 wp-content 디렉토리로 이동
$ id@web:/var/ww w/wordpress/wp-content#
2) 심볼릭 링크 명령어 수행
$ id@web:/var/ww w/wordpress/wp-content# sudo ln -s /media/data/wordpress/wp-content/uploads uploads
위 명령을 수행하고 나면 다음과 같이 uploads 가 연결된 것을 확인 하실 수 잇습니다.
lrwxrwxrwx 1 root root 40 May 10 14:13 uploads -> /media/data/wordpress/wp-content/uploads
해당 작업 후 파일을 업로드하니 심볼릭 링크를 적용한 sda2 파티션 경로에 파일이 저장되는 것을 확인할 수 있었습니다.
3. 기타
(1) 워드프레스 설치
워드프레스의 기본적인 설치는 아래 [참고 3]을 따라했습니다.
[참고3] 워드프레스 설치 http://bit.ly/2wF89nl
(2) 심볼릭 링크 설정 후, 파일 업로드 시 HTTP 오류 발생
이렇게 경로를 수정하고 나서 파일 업로드를 수행할 때, HTTP 에러가 발생하신다면 다음의 참고 링크를 확인해보세요.
[참고 4] NGINX client_max_body_size 사이즈 늘리기. http://bit.ly/2wCJDTK
위 참고 4의 내용은 다음과 같이 nginx.conf 에 client_max_body_size를 추가하는 것입니다.
# sudo vi /etc/nginx/nginx.conf
http {...} 안에 아래 항목을 추가하고 저장합니다.
client_max_body_size 50M;
서비스를 재시작하고 다시 한번 이미지를 추가해보시기 바랍니다.
# sudo service nginx reload
워드프레스가 거의 처음이라 아직 세팅 중이지만 ssd를 달아줘서인지 로딩도 빠르더라구요.
앞으로도 많은 조언 부탁드려요~~~
하드디스크를 2개의 파티션으로 나누셨지만 실제적으로 속도증가는 별로 일어나지 않을꺼 같습니다.
전 docker 매니아다 보니 이렇게 변경을 해서 사용했어요
https://www.howtoforge.com/tutorial/dockerizing-wordpress-with-nginx-and-php-fpm/
에서 step4 에서 wordpress-fpm -> volumn 부분을 좀 세분히 나눠서 저장하시면 다른디스크를 사용가능합니다.
Docker에 대해서는 이름만 들어봤지 전혀 알지 못했는데 나중에 저도 한번 시도해봐야겠어요. 덕분에 새로운 걸 알게되었습니다. ^^ 그리고 링크 고맙습니다. Docker 적용할 때 꼭 필요한 정보 같아요.
제 경우 하드디스크를 2개의 파티션으로 나눴던 이유는 오드로이드가 기본적으로 MicroSD 카드에 우분투가 설치되어 돌아가다 보니 좀더 성능향상을 위해 SD카드에 있던 루트파티션을 디스크 쪽으로 옮겨 사용하기 위해서 였었습니다. 아무래도 MicroSD 카드보다는 SSD로 옮기는 것이 속도가 더 좋을 것 같아서요. 그래서 파티션 하나는 루트파티션으로 다른 하나는 데이터용으로 사용 중이예요. 제가 속도향상이란 부분에 설명이 부족했던 것 같습니다.