[Nextcloud/server, android] 개발 환경 구성
기여에 앞서서, 먼저 환경 구성을 해야 한다.
Nextcloud/android 레포지토리에 기여하기로 했지만, 개발 환경에 서버도 필요하기 때문에 Nextcloud/server도 구축해야 한다.
1. Nextcloud Server 구축
서버 설치 및 구성은 아래 문서를 참고하였다.
https://docs.nextcloud.com//server/stable/admin_manual/installation/index.html
나는 Nextcloud server 운영체제로 Ubuntu 20.04 LTS를 선택했으며,
데이터베이스는 MySQL을 사용하여 구축할 것이다.
먼저 가상 머신에 Ubuntu 20.04 LTS를 설치한 후, 아래 사이트에서 nextcloud-20.0.1을 다운받는다.
https://nextcloud.com/install/
서버 구축에 필요한 라이브러리 설치
아래 커맨드를 통해 필요한 apache, mysql(mariadb), php를 설치한다
sudo apt update sudo apt install apache2 mariadb-server libapache2-mod-php7.4 sudo apt install php7.4-gd php7.4-mysql php7.4-curl php7.4-mbstring php7.4-intl sudo apt install php7.4-gmp php7.4-bcmath php-imagick php7.4-xml php7.4-zip
위의 mariadb-server를 설치하다가 아래와 같은 오류가 발생했다. MariaDB에 종속성이 없거나 패키지가 손상되었다는 오류다..😅
The following packages have unmet dependencies:
mariadb-server : Depends: mariadb-server-10.3
but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
이는 버전을 명시해주면 된다!
아래 명령을 통해 mysql-common과 libmysqlclient21의 버전을 확인한다
sudo apt-cache show mysql-common | grep Version
sudo apt-cache show libmysqlclient21 | grep Version
나는 mysql-common의 버전이 5.8+1.0.5ubuntu2 였고 libmysqlclient21의 버전이 8.0.22-0ubuntu0.20.04.2였다 (libmysqlclient의 경우 버전에 따라 뒤에 붙는 숫자가 바뀌니 주의하자! 현재는 21인것 같다😆)
확인한 버전을 명시하여 설치하면 성공이다!
sudo apt-get install mariadb-server-10.3 mariadb-client-10.3 \
libmysqlclient21=8.0.22-0ubuntu0.20.04.2 mysql-common=5.8+1.0.5ubuntu2
PHP 모듈 설치
sudo apt install php7.4-cli
// 이 command를 통해 아래 필수 모듈이 설치되었는지 확인한다
php -m | grep <module name>
- PHP (7.2, 7.3 or 7.4)
- PHP module ctype
- PHP module curl
- PHP module dom
- PHP module GD
- PHP module hash (only on FreeBSD)
- PHP module iconv
- PHP module JSON
- PHP module libxml (Linux package libxml2 must be >=2.7.0)
- PHP module mbstring
- PHP module openssl
- PHP module posix
- PHP module session
- PHP module SimpleXML
- PHP module XMLReader
- PHP module XMLWriter
- PHP module zip
- PHP module zlib
- PHP module pdo_mysql (MySQL/MariaDB) // 데이터베이스 연결 모듈
MySQL 및 MariaDB 구성
sudo /etc/init.d/mysql start
sudo mysql -uroot -p
위의 커맨드를 통해 mysql을 시작해야 한다!
이 과정에서 오류가 발생했는데 mysql.sock이 없다는 것이다... 이 소켓 파일은 mysql 데몬이 실행되면 저절로 생성이 되는 파일로 따로 만드는 것은 아니다ㅠ
아무리 찾아도 소켓파일이 없다...
sudo
mysqld_safe --user=root &
위 커맨드를 실행해보았을 때 에러를 확인할 수 있었고, error.log에 의하면 query_cache_size가 없다는 오류가 발생했다..
찾아보니 버전이 낮아서 생기는 오류였다...
mysql을 실행하여, 아래 커맨드를 통해 새로운 유저 aqaqsubin과 데이터베이스를 생성한다.
CREATE USER 'aqaqsubin'@'localhost' IDENTIFIED BY 'password'; CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; GRANT ALL PRIVILEGES ON nextcloud.* TO 'aqaqsubin'@'localhost'; FLUSH PRIVILEGES;
Apache 2.4를 설치한다. /etc/apache2/site-available/nextcloud.conf 를 생성한다.
Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
아래 커맨드를 통해 활성화한다.
a2ensite nextcloud.conf
추가적으로 아래 모듈들을 활성화 시킨다.
a2enmod rewrite (Nextcloud가 정확히 동작하기 위해 필요한 모듈)
a2enmod headers (그 외 추가적인 모듈)
a2enmod env
a2enmod dir
a2enmod mime
Apache HTTP 서버를 실행한 후, 다운받은 nextcloud-20.0.1을 압축 해제하여 apache 문서 경로에 복사한다.
sudo cp -r nextcloud /var/www/
그 다음으로 Nextcloud에 대해 서버 구성 인증을 수행하지 않도록 설정해야 한다는데
어떻게 하는지 모르겠다.. 여기서 부터 막힌 것 같다.😅😅
https://docs.nextcloud.com//server/stable/admin_manual/installation/source_installation.html
이렇게 서버 구축에 어려워하는 윈도우 사용자를 위해 Nextcloud에서는 서버 설정이 완료된 VM을 제공해준다.
https://www.univention.com/products/univention-app-center/app-catalog/nextcloud/
VirtualBox 사용자는 VirtualBox Image(.ova)
VMware 사용자는 VMware Image(.zip)을 다운받으면 된다.
(주의 : RAM은 2GB 이상으로 해야 한다! 아니면 다시 설치해야 한다..)
몇 가지 설정을 마치면 아래와 같이 서버 구축이 완료된다.
2. Nextcloud android 환경 설정
검색 이슈를 해결을 위해 서버 환경을 구축해야 하는데 이 글이 많은 도움이 될 것 같습니다!
답글삭제감사합니다!!😊
자세하게 설명되어있어서 도움이 많이 되었습니다^^ 꼼꼼한 설명 감사합니다~~~ :)
답글삭제