Matrix Coturn TURN/STUN 서버를 설정하여 음성 및 영상 통화를 가능하게 하는 방법
Synapse를 사용하여 Matrix WebRTC 통화를 위한 Coturn 설정을 구성합니다. 공유 자격 증명, NAT, 방화벽 포트, TLS 옵션을 구성하고 기존 TURN과 MatrixRTC 및 LiveKit을 구분합니다.
systemd를 사용하여 Nextcloud 백그라운드 작업을 자동으로 실행하려면 웹 서버 사용자 권한으로 실행되는 일회성 서비스를 구성한 cron.php다음, 5분마다 해당 서비스를 시작하도록 타이머를 설정하세요. 주요 확인 사항은 다음과 같습니다. 타이머가 활성화되어 있고 다음 실행 시간이 설정되어 있는지, 서비스가 올바른 Nextcloud 및 PHP 경로를 가리키는지, 그리고 서비스 로그에 성공적으로 종료되었는지 여부입니다. 일회성 서비스는 실행 사이에 "비활성(실행 중지)" 상태로 표시될 수 있는데, 이는 서비스 완료 후 정상적인 현상입니다.
이 설정은 systemd를 사용하여 호스트에서 Nextcloud 파일을 사용할 수 있는 Ubuntu의 일반적인 Nextcloud 설치 환경을 위한 것입니다. Nextcloud가 Docker, Snap 또는 Nextcloud All-in-One과 같은 어플라이언스 내에서 실행되는 경우, 호스트 유닛을 컨테이너 전용 경로로 지정하는 대신 해당 배포판의 공식 스케줄러 방식을 사용하십시오. 아래 예제에서는 `<hostname>`과 `<hostname>`을 사용합니다 /var/www/nextcloud. www-data실제 설치 경로와 HTTP 사용자 이름으로 바꿔서 사용하십시오.
Nextcloud는 cron.php유지 관리 및 앱 작업과 같은 백그라운드 작업을 대기열에 넣어 실행합니다. systemd 타이머는 타이머의 작동 시간을 알려주는 역할을 하며, 서비스는 타이머가 만료되면 실행되는 명령입니다. 이 둘 모두 필요합니다. 타이머를 활성화하지 않고 파일을 생성하면 예약된 작업이 비활성화되고, 잘못된 PHP 또는 Nextcloud 경로를 지정하는 타이머를 활성화하면 반복적인 실행 실패가 발생할 수 있습니다.
Nextcloud는 프로덕션 환경의 백그라운드 작업을 위해 시스템 cron 사용을 권장합니다. 최신 관리 매뉴얼에는 systemd 타이머를 대안으로 제시하고 있습니다. 예시 스케줄은 부팅 후 5분 뒤에 시작하여 각 서비스 활성화 후 5분 뒤에 다시 실행되도록 설정되어 있습니다. 이 방식은 사용자가 웹 인터페이스에 접속할 필요 없이 작업을 실행할 수 있습니다.
유닛을 편집하기 전에 Nextcloud 디렉토리를 찾고 웹 서버 설치에서 예상하는 PHP 명령어를 확인하십시오. 일반적인 Ubuntu 아카이브 설치에서 경로는 `/etc/Nextcloud /var/www/nextcloud/ www-datanext /usr/bin/php...
ls -l /var/www/nextcloud/cron.php
command -v php
php -v
Nextcloud 디렉터리가 다른 위치에 있는 경우 아래 두 개의 유닛 명령에서 해당 디렉터리를 사용하십시오. 웹 서버에서 별도의 PHP 버전을 사용하는 경우 해당 버전의 CLI 실행 파일을 사용하십시오 ExecStart. ExecConditionsystemd 서비스는 대화형 셸의 PATH 또는 환경 변수를 상속하지 않으므로 명시적인 경로를 사용하는 것이 더 안정적입니다.
systemd가 사용할 동일한 사용자 계정으로 상태 확인을 테스트하십시오.
sudo -u www-data /usr/bin/php -f /var/www/nextcloud/occ status -e
Nextcloud occ명령어는 파일 소유권 및 권한을 올바르게 유지하기 위해 HTTP 사용자 권한으로 실행되어야 합니다. 이 테스트에서 PHP 오류, 유지보수 모드 또는 파일 누락이 보고되면 먼저 해당 문제를 해결하십시오. 타이머는 Nextcloud 명령어 실행 실패를 보완할 수 없습니다.
만들다 /etc/systemd/system/nextcloudcron.service:
sudo nano /etc/systemd/system/nextcloudcron.service
이 장치에 접속하려면 설치 환경이 다를 경우 경로와 사용자 이름을 조정하십시오.
[Unit]
Description=Nextcloud cron.php job
[Service]
User=www-data
ExecCondition=/usr/bin/php -f /var/www/nextcloud/occ status -e
ExecStart=/usr/bin/php -f /var/www/nextcloud/cron.php
KillMode=process
ExecCondition백그라운드 작업을 시작하기 전에 Nextcloud가 정상적으로 작동하는지 확인합니다. 조건이 충족되지 않으면 systemd는 실행을 건너뜁니다. 이유를 알아보려면 저널을 확인하세요. KillMode=process메인 cron 프로세스가 종료된 후에도 백그라운드 작업으로 시작된 외부 프로그램이 계속 실행될 수 있도록 합니다. 현재 Nextcloud 예제에서는 [Install]이 서비스 파일에 해당 섹션이 필요하지 않습니다.
`php-php` 명령어 를 사용할 /usr/bin/php때는 서버에서 실행되는 올바른 CLI 인터프리터가 무엇인지 확인해야 합니다. 예를 들어, 사용자 지정 PHP 저장소는 버전이 지정된 바이너리를 설치할 수 있습니다. Nextcloud에서 요구하는 PHP 버전 및 웹 서버 구성에서 사용하는 PHP 버전과 동일한 호환 버전을 사용하십시오.
만들다 /etc/systemd/system/nextcloudcron.timer:
sudo nano /etc/systemd/system/nextcloudcron.timer
추가하다:
[Unit]
Description=Run Nextcloud cron.php every 5 minutes
[Timer]
OnBootSec=5 min
OnUnitActiveSec=5 min
Unit=nextcloudcron.service
[Install]
WantedBy=timers.target
OnBootSec시스템d가 부팅 시 시작된 후 5분 뒤에 첫 번째 실행을 예약합니다. OnUnitActiveSec서비스가 마지막으로 활성화된 후 5분 뒤에 두 번째 실행을 예약합니다. 타이머는 서비스와 동일하지 않습니다. .timer예약된 실행이 자동으로 이루어지도록 하려면 해당 장치를 활성화하고 시작해야 합니다.
systemd에게 새 유닛 파일을 읽도록 요청한 다음, 한 번의 명령으로 타이머를 활성화하고 시작하십시오.
sudo systemctl daemon-reload
sudo systemctl enable --now nextcloudcron.timer
타이머를 확인하세요:
systemctl status nextcloudcron.timer
systemctl list-timers --all | grep nextcloudcron
타이머가 로드되어 활성화되어 있어야 하며, list-timers'다음' 아래에 미래 시간이 표시되어야 합니다. 타이머가 비활성화되었거나 로드되지 않았거나 다음 활성화 시간이 표시되지 않는 경우, 파일 이름이 로 끝나는지 .timer, 해당 [Install]섹션에 가 포함되어 있는지 WantedBy=timers.target, 그리고 daemon-reload파일을 저장한 후 명령을 실행했는지 확인하십시오.
다음 타이머 틱을 기다리지 않고 서비스를 한 번 실행할 수 있습니다.
sudo systemctl start nextcloudcron.service
sudo systemctl status nextcloudcron.service
sudo journalctl -u nextcloudcron.service -n 50 --no-pager
서비스 결과와 PHP 또는 Nextcloud 오류를 확인하십시오. 명령이 완료된 후, 일회성 작업이므로 nextcloudcron.service응답이 없을 수 있습니다 inactive (dead). 하지만 그렇다고 해서 실패한 것은 아닙니다. 타이머는 계속 활성화되어 다음 실행을 예약하며, 이전 실행이 성공적으로 종료되었는지 여부는 로그에 표시됩니다.
Nextcloud 관리 설정에서 백그라운드 작업 상태 영역을 열고 타이머가 작동한 후 마지막 작업 실행 시간이 증가하는지 확인하십시오. Nextcloud에서 최근 백그라운드 활동이 감지되면 개요 경고가 사라져야 합니다. 타이머를 활성화한 후 최소 한 번의 실행 간격이 지난 후에야 예약된 작업이 실행되지 않았다고 판단하십시오.
| 당신이 보는 것 | 확인해야 할 사항 | 다음 단계 |
|---|---|---|
| 타이머가 "비활성" 또는 비활성화되었습니다. | 타이머 장치가 활성화되고 시작되었는지 여부 | 실행한 sudo systemctl enable --now nextcloudcron.timer다음 확인하세요systemctl list-timers |
| 타이머는 작동 중이지만 서비스에 오류가 발생했습니다. | 서비스 로그, PHP 실행 파일, Nextcloud 경로 및 서비스 사용자 | 상태 테스트를 실행하고 www-data, 처음 보고된 PHP 오류 또는 파일 권한 오류를 수정하십시오. |
| 서비스는 실행 사이에는 비활성화됩니다. | 타이머의 다음 시간과 서비스의 마지막 로그 기록 | 서비스가 성공적으로 종료되었는데도 타이머가 활성화된 상태라면, 이는 일회용 장치에서는 정상적인 현상입니다. |
서비스가 실행되지 않고 종료됩니다.cron.php | 그 ExecCondition결과와 Nextcloud가 유지보수 모드인지 여부 | 조건 오류를 해결하고 Nextcloud 상태를 확인한 후 수동으로 작업을 다시 시작하십시오. |
| 관리자 페이지에는 여전히 cron이 실행되지 않았다고 표시됩니다. | 서비스가 실제로 올바른 인스턴스를 호출하는지 여부와 마지막 실행 시간이 변경되는지 여부 | 타이머 간격이 경과할 때까지 기다린 후 로그를 확인하고 동일한 Nextcloud 설치를 점검하고 있는지 확인하십시오. |
자세한 내용은 최근 서비스 로그 및 Nextcloud 로그 파일을 참조하십시오.
sudo journalctl -u nextcloudcron.service --since "30 minutes ago" --no-pager
sudo -u www-data /usr/bin/php -f /var/www/nextcloud/occ background-job:list
작업 목록에는 등록된 작업이 표시되지만, 그 자체만으로는 타이머가 실행 중임을 증명할 수 없습니다. 타이머의 마지막 및 다음 활성화 시간, 서비스 로그, Nextcloud의 마지막 실행 표시기를 함께 사용하십시오.
Systemd 타이머는 서버에서 systemd가 실행 중이고 로컬에서 서비스로 관리되는 스케줄을 원하는 경우에 유용합니다. 이미 표준 cron 데몬을 운영하고 있고 해당 crontab을 확인할 수 있는 경우, 동일한 기능을 호출하는 시스템 cron 항목을 사용하는 것도 cron.php지원 www-data됩니다. 동일한 Nextcloud 인스턴스에 대해 두 가지 방법을 모두 예약하지 마십시오. 중복 호출은 리소스를 낭비하고 문제 해결을 복잡하게 만들 수 있습니다.
AJAX 스케줄링은 Nextcloud 방문자 수에 따라 달라지므로 사용량이 많거나 다중 사용자 서버에서는 안정성이 떨어집니다. Webcron은 cron.phpHTTP를 통해 호출되므로 시스템 접근이 불가능한 매우 작은 인스턴스에 적합할 수 있지만, Nextcloud는 웹 실행 시 호출당 실행할 수 있는 작업량이 제한된다는 점을 명시하고 있습니다. Nextcloud가 컨테이너화되었거나 어플라이언스로 관리되는 경우, 해당 컨테이너에서 지원하는 스케줄러 또는 컨테이너 구성을 사용하십시오. 호스트 서비스가 /var/www/nextcloud해당 경로를 사용하는 경우 호스트에 해당 경로가 없으면 작동하지 않습니다.
정상적인 설정은 반복되는 다음 실행 시간으로 타이머가 활성화되어 있고, 서비스 실행이 PHP 오류 없이 완료되며, Nextcloud 마지막 실행 시간이 정상적으로 증가하는 것입니다. 이 세 가지 조건이 모두 충족되는데도 특정 앱 작업이 여전히 지연되는 경우, 스케줄러가 해당 작업이 자체 일정, 유지 관리 기간 또는 대기열 조건을 기다리는 동안 작동하고 있을 수 있습니다. 타이머 간격을 변경하기 전에 해당 작업을 별도로 진단하십시오.
Synapse를 사용하여 Matrix WebRTC 통화를 위한 Coturn 설정을 구성합니다. 공유 자격 증명, NAT, 방화벽 포트, TLS 옵션을 구성하고 기존 TURN과 MatrixRTC 및 LiveKit을 구분합니다.
Nextcloud 메일을 Gmail 또는 Microsoft 365용 OAuth2로 구성하고, IMAP/SMTP 액세스를 확인하고, 리디렉션 문제를 해결하고, 제한 사항을 파악하세요.
Element의 "ID 확인 불가" 세션 경고를 해결하려면 다른 신뢰할 수 있는 장치 또는 복구 키를 사용하여 인증하고, 재설정이 안전한 시점을 알아보세요.
Kopano 마이그레이션과 grommunio 및 Zammad 마이그레이션을 비교해 보세요. 각 마이그레이션 경로에서 보존할 수 있는 사서함 데이터, 테스트 및 결과 검증 방법, 그리고 IMAP 또는 사용자 지정 가져오기가 적합한 경우를 알아보세요.
Nextcloud 데이터 디렉토리를 파일 참조를 손상시키지 않고 외장 하드 드라이브로 이동하는 방법입니다. 백업, 영구 마운트, rsync, 권한 설정 및 심볼릭 링크를 안전하게 활용하세요.
Ubuntu에서 Nextcloud systemd cron 타이머 문제를 해결하려면 서비스 사용자, PHP 및 Nextcloud 경로, 타이머 활성화 여부, 작업 실행 기록을 확인하십시오.
BigBlueButton 4.0 beta.4 또는 이전 버전에서 Etherpad 공유 메모를 활성화하세요. 선택적 패키지를 설치하고, 회의 수준 또는 전체 기본값을 선택하고, 프록시 문제를 해결하세요.
PHP, Nginx 또는 Apache, 리버스 프록시, 타임아웃 및 스토리지 설정을 확인하여 Nextcloud 업로드 용량 제한(2GB)을 해결하세요. 기존 제한 용량보다 큰 파일을 사용하여 변경 사항을 안전하게 테스트할 수 있습니다.
Apache에서 실행되는 ownCloud 서버에 Let's Encrypt HTTPS를 설정합니다. DNS 및 포트를 확인하고, Certbot을 사용하여 인증서를 발급하고, 리디렉션을 활성화하고, 갱신을 테스트합니다.
업그레이드 후 ownCloud 무결성 경고를 진단하고 코어 파일 불일치, 파일 누락, 추가 파일 또는 앱 서명 오류에 대한 안전한 해결 방법을 선택하세요.