์ผ๋ฐ ์ค์
์ง์ ๋ ์๊ฐ ๋์ ํ๋์ด ์์ผ๋ฉด ์๋ ๋ก๊ทธ์์๋ฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: 1์๊ฐ
์ฌ์ฉ์๋ณ ๋์ ๋ณต์ฌ/์ด๋/์ญ์ ์์
์๋ฅผ ์ ํํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: 5
์คํ ๋ฆฌ์ง ๊ฒฝ๋ก ์ค์
โ ๏ธ ์ฃผ์์ฌํญ
- ๊ฒฝ๋ก ๋ณ๊ฒฝ ์ ๊ธฐ์กด ํ์ผ์ ์๋์ผ๋ก ์ด๋๋์ง ์์ต๋๋ค.
- ๋ณ๊ฒฝ ์ ๊ธฐ์กด ํ์ผ์ ์ ๊ฒฝ๋ก๋ก ์ง์ ์ด๋ํด์ฃผ์ธ์.
- ์ ์ฅ ํ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํด์ผ ์ ์ฉ๋ฉ๋๋ค.
์ธ๋ถ ์ ์ ์ค์
๐ WebDAV ์๋ฒ ์ค์
WebDAV ์๋ฒ ์ธก ์ค์ ์
๋๋ค. ์ฌ์ฉ์๋ ์ฌ์ด๋๋ฐ WebDAV ๋ฉ๋ด์์ ์ ์ ์๋ด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๐ก ์ฌ์ด๋๋ฐ WebDAV ๋ฉ๋ด๋ ์คํ ๋ฆฌ์ง ๊ถํ ์ค์ ์์ ํด๋น ์ฌ์ฉ์์๊ฒ WebDAV ํ์ ๊ถํ์ ํ์ฑํํด์ผ ๋ณด์
๋๋ค.
โ๏ธ Apache ์ค์ (๋์ฉ๋ ํ์ผ ์ ์ก ์ ํ์)
โ๏ธ Nginx ์ค์ (Synology ๋ฑ)
๐ ๋ธ๋ฃจํธํฌ์ค ๋ฐฉ์ง
WebDAV ๋ก๊ทธ์ธ ์๋๋ data/webdav_attempts/์ ๊ธฐ๋ก๋ฉ๋๋ค. 5ํ ์คํจ ์ ํด๋น IP+๊ณ์ ์ด 15๋ถ๊ฐ ์ ๊ธ๋ฉ๋๋ค. ์ฆ์ ํด์ ํ๋ ค๋ฉด ์ด ํด๋์ JSON ํ์ผ์ ์ญ์ ํ์ธ์.
๋ก๊ทธ์ธ ํ๋ฉด ์ค์
๋ก๊ทธ์ธ ํ๋ฉด์ ํ์๋๋ ๋ก๊ณ ์ด๋ฏธ์ง์
๋๋ค. (๊ถ์ฅ: 128x128px)
๋ก๊ทธ์ธ ํ๋ฉด์ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง์
๋๋ค. (๊ถ์ฅ: 1920x1080px)
๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ฅผ ํ๋ฉด์ ํ์ํ๋ ๋ฐฉ์์
๋๋ค.
๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง์ ์ ์ฉํ ํํฐ๋ฅผ ์ ํํ์ธ์.
๐ผ๏ธ ์ธ๋ค์ผ ์ค์
์ธ๋ค์ผ ํด์๋์
๋๋ค. ํด์๋ก ์ ๋ช
ํ์ง๋ง ํธ๋ํฝ์ด ์ฆ๊ฐํฉ๋๋ค.
ํ์ธ ์ค...
์บ์๋ ์ธ๋ค์ผ์ ๋ชจ๋ ์ญ์ ํฉ๋๋ค. ๋ค์ ์กฐํ ์ ์๋์ผ๋ก ๋ค์ ์์ฑ๋ฉ๋๋ค.
๐ฆ ์์ถํ์ผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ค์
์์ถ ํ์ผ(zip, rar, 7z, iso ๋ฑ)์ ๋ฏธ๋ฆฌ๋ณด๊ธฐํ์ฌ ๋ด๋ถ ํ์ผ ๋ชฉ๋ก์ ํ์ธํ ์ ์์ต๋๋ค. ZIP๊ณผ TAR ํ์์ PHP ๋ด์ฅ์ผ๋ก ๋์ํฉ๋๋ค. ๊ทธ ์ธ ํ์(RAR, 7Z, ISO, CAB ๋ฑ)์ ์๋ฒ์ 7-Zip์ด ์ค์น๋์ด์ผ ํฉ๋๋ค.
| PHP ๋ด์ฅ | zip, tar, gz, tgz, bz2 |
| 7-Zip ํ์ | rar, 7z, iso, cab, wim, arj, lzh, dmg, msi ์ธ ๋ค์ |
๐ก 7-Zip ์ค์น ๋ฐฉ๋ฒ
Windows: 7-zip.org ์์ ๋ค์ด๋ก๋ ํ ๊ธฐ๋ณธ ๊ฒฝ๋ก์ ์ค์น
Linux: apt install 7zip ๋๋ yum install p7zip-full
๊ฒ์ ์ธ๋ฑ์ค ์ค์
์น UI๊ฐ ์๋ ์ธ๋ถ(์๋ฒ์์ ์ง์ ์ ๊ทผ, FTP, ๋คํธ์ํฌ ๋๋ผ์ด๋ธ, ์ธ๋ถ ๋๊ธฐํ ๋๊ตฌ ๋ฑ)์์ ํ์ผ์ด ์ถ๊ฐ/๋ณ๊ฒฝ/์ญ์ ๋ ๊ฒ์ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฐ์งํ์ฌ ๊ฒ์ ์ธ๋ฑ์ค์ ํ์ผ ๋ชฉ๋ก์ ๋ฐ์ํฉ๋๋ค.
์น UI์์์ ํ์ผ ์์
๊ณผ๋ ๋ฌด๊ดํฉ๋๋ค. ์น UI๋ก ์
๋ก๋/์ญ์ /์ด๋ฆ๋ณ๊ฒฝ/์ด๋ํ ํ์ผ์ ์ด ์ค์ ๊ณผ ์๊ด์์ด ํญ์ ์ฆ์ ๋ฐ์๋ฉ๋๋ค.
โ ๏ธ ํ์ผ์ด ๋งค์ฐ ๋ง์ ํ๊ฒฝ์์๋ ๋นํ์ฑํํ๊ณ ์๋ "์ธ๋ฑ์ค ์ฌ๊ตฌ์ถ" ๋ฒํผ์ ์ฌ์ฉํ๋ ํธ์ด ์๋ฒ ๋ถ๋ด์ด ์ ์ต๋๋ค.
๋ฐฑ๊ทธ๋ผ์ด๋ ์ค์บ ์ฃผ๊ธฐ
๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋๋ ๋์คํฌ ์ ์ฒด ์ค์บ์ ์ฃผ๊ธฐ์
๋๋ค. ํด๋ ์ด๋, ์คํ ๋ฆฌ์ง ์ ํ, ๋์์์ด๋ ํ์ผ ํด๋ฆญํด์ ์ด ๋ ๊ฐ๋ ์น UI๊ฐ ๋ฉ์ถ๋ ํ์์ด ์์ผ๋ฉด ์ด ๊ฐ์ ๋๋ ค์ ์ค์บ ๋น๋๋ฅผ ๋ฎ์ถฐ ์ฃผ์ธ์.
๊ฒ์ ์ธ๋ฑ์ค๋ฅผ ํ์ผ์์คํ
๊ณผ ๋๊ธฐํํ๋ ์ฃผ๊ธฐ์
๋๋ค. ์น UI๋ก ์ถ๊ฐ/์ญ์ ๋๋ ํ์ผ์ ์ด ์ค์ ๊ณผ ๋ฌด๊ดํ๊ฒ ์ฆ์ ์ธ๋ฑ์ฑ๋๋ฉฐ, ์ด ์ฃผ๊ธฐ๋ ์ธ๋ถ ๋ณ๊ฒฝ ๊ฐ์ง์๋ง ์ํฅ์ ์ค๋๋ค.
๊ถ์ฅ: 1440๋ถ(24์๊ฐ) (๋ฒ์: 1โ1440). ์ธ๋ถ ๋ณ๊ฒฝ์ ์ฆ์ ์ธ๋ฑ์ค์ ๋ฐ์ํ๋ ค๋ฉด ์ด ์ฃผ๊ธฐ๋ฅผ ์งง๊ฒ ํ๊ธฐ๋ณด๋ค ์๋ "์ธ๋ฑ์ค ์ฌ๊ตฌ์ถ" ๋ฒํผ์ ์ฌ์ฉํ๋ ํธ์ด ์๋ฒ ๋ถ๋ด์ด ์ ์ต๋๋ค.
โ ๏ธ ์์ "์ธ๋ฑ์ค ์๋ ๊ฐฑ์ "์ด ์ผ์ ธ ์์ ๋๋ง ์ ์ฉ๋ฉ๋๋ค.
๐ง ์ด๋ฉ์ผ(SMTP) ์ค์
์์ด๋/๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ ๊ธฐ๋ฅ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ค์ ํ์ง ์์ผ๋ฉด PHP mail() ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๐ ์ฃผ์ ์ด๋ฉ์ผ ์๋น์ค SMTP ์ค์
| ์๋น์ค |
ํธ์คํธ |
ํฌํธ |
์ํธํ |
๋น๊ณ |
| Gmail |
smtp.gmail.com |
587 |
TLS |
์ฑ ๋น๋ฐ๋ฒํธ ํ์ (2๋จ๊ณ ์ธ์ฆ) |
| Naver |
smtp.naver.com |
587 |
TLS |
POP3/SMTP ์ฌ์ฉ ์ค์ ํ์ |
| Daum/Kakao |
smtp.daum.net |
465 |
SSL |
์ธ๋ถ๋ฉ์ผ ์ฌ์ฉ ์ค์ ํ์ |
| Outlook |
smtp.office365.com |
587 |
TLS |
์ฑ ๋น๋ฐ๋ฒํธ ๊ถ์ฅ |
โ ๏ธ Gmail ์ฌ์ฉ ์ ์ฃผ์
- Google ๊ณ์ ์์ 2๋จ๊ณ ์ธ์ฆ์ ํ์ฑํํ์ธ์.
- ์ฑ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ฑํ์ฌ SMTP ๋น๋ฐ๋ฒํธ๋ก ์ฌ์ฉํ์ธ์.
- ์ผ๋ฐ ๋น๋ฐ๋ฒํธ๋ ๋ณด์ ์ ์ฑ
์ผ๋ก ์ฐจ๋จ๋ฉ๋๋ค.
๐ OnlyOffice ์ค์
OnlyOffice Document Server์ URL์
๋๋ค. HTTPS ๋ฆฌ๋ฒ์ค ํ๋ก์ ์ฌ์ฉ ์: https://๋๋ฉ์ธ/oo
Docker ์คํ ์ JWT_SECRET์ ์ค์ ํ๋ค๋ฉด ๋์ผํ ๊ฐ์ ์
๋ ฅํ์ธ์. JWT_ENABLED=false๋ก ์ค์นํ๋ค๋ฉด ๋น์๋์ธ์.
๐ JWT ์ํฌ๋ฆฟ ํค ํ์ธ ๋ฐฉ๋ฒ
1. Docker ํ๊ฒฝ๋ณ์์์ ํ์ธ
docker inspect [์ปจํ
์ด๋๋ช
] | grep JWT_SECRET
2. ์ปจํ
์ด๋ ๋ด๋ถ ์ค์ ํ์ผ์์ ํ์ธ
docker exec [์ปจํ
์ด๋๋ช
] cat /etc/onlyoffice/documentserver/local.json | grep secret
3. ์คํ ์ค์ธ ์ปจํ
์ด๋์ ํ๊ฒฝ๋ณ์ ์ ์ฒด ํ์ธ
docker exec [์ปจํ
์ด๋๋ช
] env | grep JWT
๐ OnlyOffice ์ค์น ๋ฐฉ๋ฒ (Docker)
# JWT ๋ณด์ ์ฌ์ฉ (๊ถ์ฅ)
docker run -d -p 8080:80 --restart=always \
--shm-size=256m \
-e JWT_SECRET=your-secret-key \
onlyoffice/documentserver
# JWT ๋นํ์ฑํ (๊ฐ๋จ ์ค์น)
docker run -d -p 8080:80 --restart=always \
--shm-size=256m \
-e JWT_ENABLED=false \
onlyoffice/documentserver
๐ Apache ๋ฆฌ๋ฒ์ค ํ๋ก์ ์ค์
์นํ๋ ๋๋ฉ์ธ์ SSL(443) ์ค์ ํ์ผ์์ </VirtualHost> ๋ฐ๋ก ์์ ์ถ๊ฐํ์ธ์.
(์: httpd-vhosts.conf ๋๋ httpd-ssl.conf)
# WebSocket ํ๋ก์RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule ^/oo/(.*) ws://OnlyOffice๋ด๋ถIP:8080/$1 [P,L]
# OnlyOffice ๋ฆฌ๋ฒ์ค ํ๋ก์<Location /oo/>
ProxyPass http://OnlyOffice๋ด๋ถIP:8080/
ProxyPassReverse http://OnlyOffice๋ด๋ถIP:8080/
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Host "๋๋ฉ์ธ"
</Location>
# ์บ์ ํ๋ก์<Location /cache/>
ProxyPass http://OnlyOffice๋ด๋ถIP:8080/cache/
ProxyPassReverse http://OnlyOffice๋ด๋ถIP:8080/cache/
</Location>
# ์ธ์ PDF ํ๋ก์ (OnlyOffice 9.3.1+ ์ธ์ ๊ธฐ๋ฅ ํ์)<Location /printfile/>
ProxyPass http://OnlyOffice๋ด๋ถIP:8080/printfile/
ProxyPassReverse http://OnlyOffice๋ด๋ถIP:8080/printfile/
</Location>
โป OnlyOffice๋ด๋ถIP โ ์๋ฒIP ๋๋ Docker IP๋ก, ๋๋ฉ์ธ โ ์ค์ ๋๋ฉ์ธ์ผ๋ก ๋ณ๊ฒฝํ์ธ์. ์ค์ ํ Apache ์ฌ์์ ํ์.
โป /printfile/ ๋ธ๋ก์ OnlyOffice ํธ์ง๊ธฐ์ "ํ์ผ โ ์ธ์" ๊ธฐ๋ฅ์ ํ์์
๋๋ค (์ธ์ ์ ๊ฐ์ ๋๋ฉ์ธ์ /printfile/... ๊ฒฝ๋ก ํธ์ถ).
๐ฅ๏ธ ์๋๋ก์ง DSM ๋ฆฌ๋ฒ์ค ํ๋ก์ ์ค์
DSM โ ์ ์ดํ โ ๋ก๊ทธ์ธ ํฌํ โ ๊ณ ๊ธ โ ์ญ๋ฐฉํฅ ํ๋ก์ (๋๋ ์์ฉ ํ๋ก๊ทธ๋จ ํฌํ โ ์ญ๋ฐฉํฅ ํ๋ก์)
โ
๋ฐฉ๋ฒ1 (๊ถ์ฅ) - ์๋ธ๋๋ฉ์ธ ๋ฐฉ์
# ์์ค
ํ๋กํ ์ฝ: HTTPS
ํธ์คํธ๋ช
: oo.๋๋ฉ์ธ.com
ํฌํธ: 443
# ๋์
ํ๋กํ ์ฝ: HTTP
ํธ์คํธ๋ช
: localhost
ํฌํธ: 8080
โป Document Server URL โ https://oo.๋๋ฉ์ธ.com
โป DNS์ oo.๋๋ฉ์ธ.com A๋ ์ฝ๋ ์ถ๊ฐ (๊ฐ์ IP)
โป SSL ์ธ์ฆ์์ oo.๋๋ฉ์ธ.com ์ถ๊ฐ (DSM โ ๋ณด์ โ ์ธ์ฆ์)
โป ์ฌ์ฉ์ ์ง์ ํค๋ ํญ์์ ์ถ๊ฐ: Upgrade โ $http_upgrade, Connection โ Upgrade (WebSocket ์ง์)
โป ์๋ธ๋๋ฉ์ธ ๋ฐฉ์์ /printfile/, /cache/ ํฌํจ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ํ๋ก์ํ๋ฏ๋ก ์ธ์ ๊ธฐ๋ฅ์ ์ถ๊ฐ ์ค์ ๋ถํ์.
โธ ๋ฐฉ๋ฒ2 - ์๋ธํจ์ค (/oo) โ Apache์์๋ง ๊ถ์ฅ
# ์์ค: HTTPS / ๋๋ฉ์ธ.com / 443 / ๊ฒฝ๋ก: /oo
# ๋์: HTTP / localhost / 8080
โ Document Server URL: https://๋๋ฉ์ธ.com/oo
โ ๏ธ ์๋๋ก์ง DSM Nginx์์ ๋ฆฌ๋ค์ด๋ ํธ ๋ฌธ์ (404) ๋ฐ์ ๊ฐ๋ฅ, /printfile/ /cache/ ๊ฒฝ๋ก ๋ณ๋ ํ๋ก์ ํญ๋ชฉ ํ์
๐ข Nginx ๋ฆฌ๋ฒ์ค ํ๋ก์ ์ค์
OnlyOffice ์๋ธ๋๋ฉ์ธ์ฉ ์๋ฒ ๋ธ๋ก์ ์ถ๊ฐํ์ธ์.
server {
listen 443 ssl;
server_name oo.๋๋ฉ์ธ.com;
ssl_certificate /์ธ์ฆ์/๊ฒฝ๋ก/cert.pem;
ssl_certificate_key /์ธ์ฆ์/๊ฒฝ๋ก/key.pem;
location / {
proxy_pass http://OnlyOffice๋ด๋ถIP:8080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffering off;
client_max_body_size 100m;
}
}
โป Document Server URL โ https://oo.๋๋ฉ์ธ.com
โป DNS์ oo.๋๋ฉ์ธ.com A๋ ์ฝ๋ ์ถ๊ฐ
โป ๊ฐ์ ์๋ฒ๋ฉด OnlyOffice๋ด๋ถIP ๋์ 127.0.0.1 ์ฌ์ฉ
โป location / ๊ฐ /printfile/, /cache/ ํฌํจ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ํ๋ก์ํ๋ฏ๋ก ์ธ์ ๊ธฐ๋ฅ์ ์ถ๊ฐ ์ค์ ๋ถํ์.
์ง์ ํ์ผ: docx, xlsx, pptx, doc, xls, ppt, odt, ods, odp, txt, csv, html ๋ฑ
๐ ๋๊ธฐํ / ๋ฐฑ์
์คํ ๋ฆฌ์ง ๊ฐ ํ์ผ์ ๋๊ธฐํํ๊ฑฐ๋ ๋ฐฑ์
ํฉ๋๋ค.
๐พ ์ค์ ๋ฐฑ์
/ ๋ณต์
์ฌ์ฉ์, ์คํ ๋ฆฌ์ง, ๊ถํ, ์์คํ
์ค์ ์ ๋ฐฑ์
ํ๊ฑฐ๋ ๋ณต์ํฉ๋๋ค. (์ค์ ํ์ผ์ ํฌํจ๋์ง ์์ต๋๋ค)
๐ ์๋ ๋ฐฑ์
FileStation ์ค์น ๊ฒฝ๋ก์ data/ ํด๋๋ฅผ ํต์งธ๋ก ๋ณต์ฌํด๋ ๋ฐฑ์
๋ฉ๋๋ค.
์ค์ ํ์ผ์ ๋ฐฑ์
ํ๋ ค๋ฉด ๊ฐ์ธํด๋(users/)์ ๊ณต์ ํด๋(shared/)๋ ํจ๊ป ๋ณต์ฌํ์ธ์.
๋ฐฑ์
์ ์ธ ํญ๋ชฉ: *.lock, file_index.db, trash_files/, *.log