Nextcloud 네트워크 디스크 보안 및 파일 구성 최적화

최근에 파일 저장 및 게시를 위해 네트워크 디스크를 구축해야 합니다. 검토 결과, nextcloud는 나쁘지 않고 설치도 쉽다는 것을 알게 되었습니다. PHP를 온라인으로 설치하고 사용자 비밀번호와 데이터베이스 연결을 설정한 후에는 문제가 없습니다. 가장 중요한 것은 WebDAV를 지원한다는 점인데, 이는 매우 유용합니다. Nextcloud는 휴대폰이나 컴퓨터 클라이언트를 지원하며, Android와 Apple 모두 지원합니다. 다른 네트워크 디스크 파일 관리 도구도 다운로드할 수 있습니다. 연결에 성공하면 파일을 직접 읽고 사용할 수 있습니다.


최근에 파일 저장 및 게시를 위한 네트워크 디스크를 구축해야 했습니다. 검토 후,나쁘지 않고 설치도 쉽고, PHP 온라인 설치로 사용자 비밀번호 데이터베이스 연결 설정도 문제없습니다. 무엇보다 WebDAV를 지원한다는 점이 큰 장점입니다. Nextcloud는 클라이언트에서 휴대폰이나 컴퓨터를 모두 지원하며, Android와 Apple도 지원합니다. 다른 네트워크 디스크 파일 관리 도구도 다운로드할 수 있으며, 연결에 성공하면 파일을 바로 읽고 사용할 수 있습니다.
서버에 클라우드 디스크를 설치하고 개요를 확인하면 보안 및 설정 관련 경고가 잔뜩 뜹니다. 이것도 큰 함정입니다! 구글에서 검색해 보니 nextcloud에 대한 정보가 별로 없네요!

PHP가 잘못 설치되어 시스템 환경 변수에 액세스할 수 없습니다. getenv("PATH") 함수 테스트에서 null 값이 반환되었습니다. 특히 php-fpm을 사용하는 경우, 서버의 PHP 구성 정보를 검토하려면 설치 설명서 ↗의 PHP 구성 지침을 참조하세요.
php-fpm.conf 파일 끝에 코드 한 줄을 추가해야 합니다. php-fpm.conf 파일은 서버에 설치된 php 디렉터리 아래의 etc 디렉터리에 있습니다. 이는 사용자마다 다릅니다. 자신의 php-fpm.conf 파일을 찾아서 vi를 사용하여 편집하세요.

vi /usr/local/php/etc/php-fpm.conf

다음 코드를 php-fpm.conf의 끝에 복사합니다.

환경 변수[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
systemctl php-fpm 다시 로드

변경 사항을 적용하려면 PHP 서비스를 다시 시작하세요.
웹 서버가 '/.well-known/caldav'를 확인하도록 올바르게 설정되지 않았습니다. 웹 서버가 '/.well-known/carddav'를 확인하도록 올바르게 설정되지 않았습니다.
이렇게 하려면 nginx의 nginx.conf 설정 파일을 수정해야 합니다.

vi /usr/local/nginx/conf/nginx.conf

파일을 연 후 server{} 내부에 두 줄의 코드를 추가합니다.

/.well-known/carddav /remote.php/dav를 영구적으로 다시 작성합니다. /.well-known/caldav /remote.php/dav를 영구적으로 다시 작성합니다.

Apache2x에서 httpd.conf 구성 파일을 수정하고 LoadModule rewrite_module modules/mod_rewrite.so 앞의 # 번호를 제거합니다.
구성 파일에서 AllowOverride none을 모두 AllowOverride all로 변경합니다.
메모리 캐시가 구성되지 않았습니다. 사용자 경험을 개선하려면 메모리 캐시를 최대한 구성해 주세요.
캐싱은 데이터, 코드 및 기타 객체를 메모리에 저장하여 성능을 향상시킵니다. Nextcloud 서버에 Memcache 구성을 설치하고 구성해야 합니다.
먼저 MySQL 설정을 수정하고, my.cnf 파일을 편집한 후 innodb_buffer_pool_size 값을 1G 이상으로 설정하세요. 이 값은 시스템 메모리 크기에 따라 달라지지만, 일반적으로 서버 메모리의 50%~70%로 설정하는 것이 좋습니다.
innodb_io_capacity를 4000으로 설정합니다. 이 항목을 사용할 수 없는 경우, my.cnf 파일에 복사하여 붙여넣습니다. 저장 후 MySQL 서비스를 다시 시작합니다.
Nextcloud는 memcached와 함께 사용할 수 있는 Apcu를 권장합니다. PHP의 Apcu 확장 기능과 memcached 확장 기능을 활성화한 후 Nextcloud 네트워크 디스크 디렉터리의 config.php 파일에 다음을 추가하세요.
최신 확장 파일은 다음에서 찾을 수 있습니다.http://pecl.php.net/최신 버전은 5.18입니다
Apcu 확장 프로그램을 설치하세요:

wget http://pecl.php.net/get/apcu-5.1.18.tgz tar zxvf apcu-5.1.18.tgz cd apcu-5.1.18 phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install

PHP 설치 디렉터리의 bin/php-config에 확장 프로그램을 설치하세요. 경로는 사용자의 설치 경로에 맞게 설정해야 합니다. 그렇지 않으면 오류가 발생합니다.
설치가 완료되면 apcu.so 디렉터리가 생성됩니다. 다음 코드를 php.ini 파일에 복사하고 PHP 서비스를 다시 시작하세요.

확장자=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/apcu.so apc.enabled= 켜짐 apc.shm_size= 64M apc.enable_cli = 켜짐

Memcached 확장 프로그램을 설치하세요.
Memcached 확장에는 총 4개의 소프트웨어를 컴파일하고 설치해야 합니다.

먼저 Memcached가 의존하는 libevent를 설치합니다.
그런 다음 Memcached 라이브러리를 설치합니다.
그런 다음 PHP PECL의 Memcached 플러그인이 의존하는 libmemcached 라이브러리를 설치합니다.
마지막으로 PHP PECL용 Memcached 플러그인을 설치합니다.
순서를 틀리지 마세요!
memcached 확장 프로그램을 먼저 설치해야 하며, libevent에 종속되어 있습니다. libevent의 최신 버전은 2.1.11입니다.
libevent 종속성을 설치하세요:

wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz tar -zxvf libevent-2.1.11-stable.tar.gz cd libevent-2.1.11-stable ./configure --prefix=/usr/local/libevent make make install

다운로드, 압축 해제, 컴파일, 설치를 한 번에 완료하세요. 그런 다음 다음 버전을 설치하세요.
Memcached 라이브러리를 설치하세요. Memcached 라이브러리와 Memcached 확장 기능은 서로 다른 것입니다. 혼동하지 마세요. Memcached 라이브러리의 최신 버전은 1.6.0입니다.
Memcached 라이브러리를 설치하세요:

wget http://www.memcached.org/files/memcached-1.6.0.tar.gz tar -zxvf memcached-1.6.0.tar.gz cd memcached-1.6.0 ./configure --prefix=/usr/local/memcached make make install

libmemcached 라이브러리를 설치하세요:

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz tar -zxvf libmemcached-1.0.18.tar.gz cd libmemcached-1.0.18 ./configure --prefix=/usr/local/libmemcached --with-memcached=/usr/local/memcached/bin/memcached make make install

위의 종속성 라이브러리를 설치한 후 다음 단계는 memcached 확장 프로그램을 설치하는 것입니다. http://pecl.php.net/으로 이동하여 memcached를 검색하세요. 최신 버전은 3.15입니다.
memcached 확장 프로그램을 설치하세요:

wget http://pecl.php.net/get/memcached-3.1.5.tgz tar -zxvf memcached-3.1.5.tgz cd memcached-3.1.5 phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached --disable-memcached-sasl make -j4 make install

성공적으로 설치한 후, memcached.so의 저장 주소는 공유 확장을 설치한 후입니다.
다음 내용을 복사하여 php.ini 파일에 붙여넣으세요. 작업 방법은 위의 apcu 확장 프로그램 설치 방법과 동일합니다.

확장자=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/memcached.so

마지막으로, 수정된 구성을 적용하려면 PHP 서비스를 다시 시작합니다.

systemctl php-fpm 다시 로드

redis 확장 프로그램을 설치하세요:

wget http://pecl.php.net/get/redis-5.2.0.tgz tar -zxvf redis-5.2.0.tgz cd redis-5.2.0 phpize ./configure --with-php-config=/usr/local/php/bin/php-config

다음 내용을 php.ini 파일에 복사하고 PHP 서비스를 다시 시작한 다음 redis 확장 기능을 성공적으로 활성화합니다.

확장자=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/redis.so

확장 프로그램이 설치되었습니다. 다음으로 Nextcloud config.php 파일을 수정하세요.
웹사이트 디렉토리에서 config를 찾고, 그 안에서 config.php를 찾으세요. config.php를 편집하세요.
$CONFIG = array ( config.php에 다음 내용을 추가합니다. 이것은 apcu를 사용하는 확장입니다.

'memcache.local' = '\\OC\\Memcache\\APCu',

PHP의 OPcache 모듈이 로드되지 않았습니다. 성능 향상을 위해 활성화하는 것이 좋습니다.
그렇다면 Opcache는 무엇일까요?
Opcache의 전신은 PHP 공식 개발사인 Zend에서 개발한 무료 PHP 최적화 및 가속 컴포넌트인 Optimizer+입니다. Optimizer+는 PHP 코드를 미리 컴파일하여 생성된 스크립트 파일(Opcode)을 공유 메모리에 캐시하여 나중에 반복적으로 사용할 수 있도록 합니다. 따라서 디스크에서 코드를 읽어 다시 컴파일하는 데 드는 시간을 절약할 수 있습니다. 동시에, 몇 가지 코드 최적화 모드를 적용하여 코드 실행 속도를 높여 PHP 실행 속도를 향상시킵니다.
Opcache를 설치하는 방법?
PHP7에는 Opcache가 기본적으로 설치되어 있지만, 활성화되어 있지 않습니다. 지금 바로 활성화해 보겠습니다.
PHP7 설정 파일 편집
정력 /usr/local/php/etc/php.ini
검색 명령어를 입력하세요:/opcache
[opcache] 필드를 찾으세요
다음 코드를 php.ini에 복사하세요.

zend_extension=opcache.so opcache.enable=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1 opcache.optimization_level=1 opcache.force_restart_timeout=3600


Opcache가 성공적으로 활성화되었습니다.
PHP 메모리 제한이 권장 값인 512MB보다 낮습니다.
php.ini 파일을 편집하고 memory_limit을 512M으로 변경하세요.

vi /usr/local/php/etc/php.ini 메모리_한도 = 512M

귀하의 PHP는 FreeType을 지원하지 않아 프로필 이미지와 설정 인터페이스가 작동하지 않습니다.
많은 사람들이 GD 라이브러리를 설치하면 Freetype이 지원된다고 생각합니다. Freetype은 독립적인 PHP 확장 기능이 아니라 GD 라이브러리에 속합니다.

wget https://download.savannah.gnu.org/releases/freetype/freetype-2.10.0.tar.gz tar -zxvf freetype-2.10.0.tar.gz cd freetype-2.10.0 ./configure --prefix=/usr/local/freetype make make install

php7 설치 파일의 ext/gd 디렉토리를 입력하세요

./configure --with-php-config=/usr/local/php/bin/php-config --with-freetype=/usr/local/freetype make make install

이제 GD 라이브러리는 이미 FreeType을 지원합니다.
데이터베이스에서 일부 인덱스가 손실되었습니다. 큰 테이블에 인덱스를 추가하는 데 시간이 걸리기 때문에 프로그램이 자동으로 복구하지 않습니다.
이 문제는 웹사이트 디렉토리에서 명령을 실행하면 해결할 수 있습니다.
CD를 사용하여 웹사이트가 저장된 디렉터리를 입력하세요. 예를 들어, 웹사이트가 wwwroot/nextcloud에 있는 경우,

cd /wwwroot/nextcloud sudo -u www php occ db:convert-filecache-bigint sudo -u www php occ db:add-missing-indices


시스템이 PHP 명령 사용을 지원하지 않는 경우 오류 메시지가 표시됩니다. PHP: 명령을 찾을 수 없습니다.
먼저 echo $PATH를 사용하여 시스템 변수를 확인하세요. usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/php/bin이 없으면 다음 명령을 사용하여 추가하세요.

ln -s /usr/local/php/bin/php /usr/bin/php

이 예제에는 일부 권장 PHP 모듈이 누락되었습니다. 더 나은 성능과 호환성을 위해 해당 모듈을 설치하는 것을 강력히 권장합니다.
먼저 ImageMagick 소스를 설치합니다.

sudo yum -y install http://mirror.centos.org/centos/7/os/x86_64/Packages/ImageMagick-devel-6.7.8.9-18.el7.x86_64.rpm yum search ImageMagick-devel yum install ImageMagick-devel.x86_64

ImageMagick-devel을 설치한 후 imagick을 설치하세요. ImageMagick-devel도 반드시 설치하세요. 그렇지 않으면 설치가 실패합니다!
pecl.php.net에서 최신 버전을 다운로드하세요. 최신 안정 버전은 3.4.4입니다.

wget http://pecl.php.net/get/imagick-3.4.4.tgz tar -zxvf imagick-3.4.4.tgz cd imagick-3.4.4 phpize ./configure --prefix=/usr/local/imagemagick --enable-shared make make install

다음 내용을 php.ini 파일에 추가하세요. PHP 서비스를 재시작하여 확장 기능을 적용하세요.

확장자=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/imagick.so

시스템에서 LDAP 확장 프로그램을 설치해야 한다는 메시지가 표시됩니다.
yum을 사용하여 openldap 및 openldap-devel을 설치하고 설치 후 해당 파일을 /usr/lib/ 디렉토리에 복사합니다.

yum install openldap yum install openldap-devel cp -frp /usr/lib64/libldap* /usr/lib/

PHP 설치 파일 디렉토리를 입력하세요

cd php-7.4.3/ext/ldap phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install

그런 다음 php.ini 파일을 추가합니다.

확장자=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/ldap.so
1/5 - (1 투표)

댓글남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다