개인 학습용 기록 문서 입니다.
Apache2, MariaDB PHP7.3 이용한 nextcloud Server 설치
Orangge pi Lite 2 (H6 Based) 보드를 이용한 무선 nas 제작.
Orange Pi - Orange Pi official website - Orange Pi development board, open source hardware, open source software, open s
Orange Pi Compute Module 4 • Rockchip RK3566 quad-core 64-bit Cortex-A55 processor • 1GB/2GB/4GB/8GB (LPDDR4/4X) • 4K HD display • Wi-Fi5+BT 5.0, BLE support More info
www.orangepi.org
Orange pi lite2 용 OS 다운로드 Armbian 사용
무선으로 초기 계정 설정 후 다음 명령어를 통해 Wi-Fi 부터 연결
armbian-config
와이파이 연결 완료 후
sudo apt update
sudo apt install apache2 mariadb-server libapache2-mod-php7.4
PHP 모듈들 설치
nextcloud 가 Ownclud에서 파생된것이기에 PHP7.4이상 지원하지 않는다 PHP 구버전을 설치할 수 있게 다음 명령어 입력
모듈 설치 한번에 해도 된다.
sudo apt install php7.4-gd php7.4-json php7.4-mysql php7.4-curl php7.4-mbstring
sudo apt install php7.4-intl php-imagick php7.4-xml php7.4-zip php7.4-bcmath php7.4-gmp
재시작
sudo systemctl restart apache2
2. 아파치 설치 후 서버 재시작 되면 자동으로 실행할 수있도록 하기.
sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
3. 방화벽 설정 및 테스트
sudo ufw allow 80
4. MariaDB설치
sudo apt-get install mariadb-server
서버 설치 후 다음 명령어 실행
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
5. Mysql은 보안에 취약하기에 보안 설정
sudo mysql_secure_installation
몇가지 질문
-Enter current password for root : 엔터
set root password? Y
New password : password
.....
설정 완료 하면 다음 명령어
DB 접속
sudo mysql -u root -p
Nextcloud 라는 DB 만든다.
CREATE DATABASE nextcloud;
그후, Nextclouduser 라는 유저를 만든다
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'yourpassword';
유저에게 모든 권한을 준다.
GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost';
저장 후 종료
FLUSH PRIVILEGES;
\q
6. 최신 nextcloud 다운로드 하기 주소에서 최신 버전 다운로드(20.0.4가 최신이었음).
cd /var/www/hteml
wget https://download.nextcloud.com/server/releases/nextcloud-20.0.4.zip
설치sud
sudo mv nextcloud-20.0.5.zip /var/www/html
cd /var/www/html
sudo unzip -q nextcloud-20.0.5.zip
혹시모를 오류 방지 위해 폴더의 권한 설정
sudo chown -R www-data:www-data /var/www/html/nextcloud/
sudo chmod -R 755 /var/www/html/nextcloud/
7. Apache 설정
nextcloud에 대한 apahce2 사이트 구성파일을 구성.
이파일은 사용자가 Nextcloud커넨츠에 액세스하는 방법을 제어한다. nextcloud.conf 새구성파일 만든다.
sudo nano /etc/apache2/sites-available/nextcloud.conf
nano 또는 Vi 사용하여 아래 내용으로 설정. 한글 해당 아이피또는 URL로 변경하여 작성.
<VirtualHost *:80>
ServerAdmin nextclouduser@localhost
DocumentRoot /var/www/html/nextcloud/
ServerName 서버 아이피 또는 URL
ServerAlias 서버 아이파 또는 URL
Alias /nextcloud "/var/www/html/nextcloud/"
<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
크롬 또는 브라우저열고 nextcloud 서버로 이동. localhost/nextcloud.
nextcloud 설정 페이지 가 나타나여 정상 관라자의 사용자 이름과 비밀번호 입력.
다음 아래로 스크롤 하여 데이터베이스 관리하기 위해 만든
'사용자의 아이디'
'비밀번호 '
'데이터베이스'
이름 을 넣는다
일단 설정 완료.
8. 경고해제
경고 해제 시켜준다.
/etc/php/7.4/apachd2/php.ini
nano php.ini 로 내부 memory_limit =128m를 512M로 변경해 줬다.
변경 후 재시작
sudo systemctl reload apache2
8. 오렌지파이 추가 로컬 드라이브 연결 위한
sudo fdisk -l
|
디스크 포멧 하고 마운트 한다음 http 사용자엑 소유권을 부여 한다.(클라우드 외장디스크로 ) /disk로 마운트
sudo mkfs -t ext4 /dev/sda1
sudo mkdir /disk
sudo mount /dev/sda1 /disk
sudo mkdir -p /disk/nextcloud/data
sudo chown www-data:www-data /disk/nextcloud/data
sudo chmod 750 /disk/nextcloud/data
|
다음 nextcloud 이렉토리에서 http사용자에게 소유권 부여
sudo chown -R www-data:www-data /var/www/nextcloud/
|
9. 브라우져에서 nextcloud 접속하여 우측상단 '메뉴' '+앱' 누른다
비활성화된 앱 중 'External storage support'를 선택하고 사용함으로 변경
그리고 다시 '메뉴'에서 '설정'으로으로 가면 왼쪽 화면에 '관리' 항목에 '외부저장소' 메뉴가 생겼다.
(개인메뉴, 관리 메뉴 두가지중 아래쪽에 있는 관리메뉴를 통해 설정해야 한다.)
외부저장소를 로컬로 변경 이름 설정뒤 설정에 마운트 이름 넣는다.
10. 자동 마운트 설정
마운트된 하드디스크는 오렌지 파이가 재부팅 될때마다 다시 마운트 해줘야 하는데
이제 fstab수정을 통해 자동으로 마운트되도록 수정
sudo nano /etc/fstab
|
nano 는 리눅스 텍스트 편집기로 vi 사용해도 상관없다.
아래와 같이 uuid 부터 순서대로 설정. (blkid로 마운트된 정보확인)

UUID=[본인 장치의 UUID입력] /home/pi/external_hdd ext4 defaults,noatime 0 0
위 텍스트는 UUID, 마운트 위치, 파일시스템, 마운트옵션, dump설정, fsck실행옵션 순.
noatime 옵션을 사용하면 접근시간을 기록하지 않아 성능향상을 얻을 수 있다.
dump 설정에 0을 입력하면 파일시스템이 덤프하지 않는다.
fsck 실행옵션에 0을 입력하면 fsck를 실행하지 않는다.
그후 reboot 하여 다시 동작 하면 끝
blkid로 다시 연결되어 있나 확인
fdisk -l
11. (옵션 추가) 와이파이 및 공유기 변경 할때 도메인 수정
cd /var/www/html/nextcloud/config
nano config.php
|

Trusted_domains => 'IP주소나 도메인 네임으로 전부 넣는다.
blkid : 연결된 장치확인
sudo fdisk -l :디스크 크기 및 유형
외장 하드의 수명을 위해 절전모드 설정.
sudo apt-get install hdparm -y
sudo nano /etc/hdparm.conf
|
nano를 이용해 내부 변경
맨 마지막 줄
/dev/sda {
apm = 127
spindown_time =60
}
|
위와 같이 입력 후 저장하고 나온다. ctrl+x
apm = 절전강도 1~127
spindown = 숫자 크기에따라 시간 1~240 이내 *5 (120*5=600=10분)
그리고 재시작
sudo reboot now
*php8.0.1버전 문제로 다운그레이 해줬다.
현재 설치된 패키지 버전 확인
sudo dpkg -l | grep [패키지명]
설치되어 있는 패키지 제거
sudo apt-get purge --auto-remove [패키지 명]
패키지 설치
sudo apt-get install [패키지]
업데이트 잠그기, 풀기
sudo -s echo [패키지명] hold | dpkg --set-selections : 업데이트 잠그기
echo [패키지명] install | dpkg --set-selections : 업데이트 풀기
apt-cache policy [패키지명] : 설치된 패키지 & 후보 패키지
apt-get install [패키지명=버전] : 해당버전 설치
'SW' 카테고리의 다른 글
포코폰F1 crDroid 롬 설치 (usb인식 문제 해결) (2) | 2025.03.31 |
---|