Установка OwnCloud 9 на Arch Linux с использованием Nginx, MariaDB и PHP7

Один из читателей поинтересовался, как установить собственное облачное хранилище ownCloud на Arch Linux с использованием Nginx, MariaDB и PHP7. В этом руководстве я расскажу, как выполнить эту настройку. Вы можете применить указанные шаги как на сервере, так и на настольном ПК с Arch Linux.

Данный учебник рассчитан на тех, кто уже установил стек LEMP на Arch Linux. Если у вас еще нет этой настройки, пожалуйста, обратитесь к простому руководству ниже, чтобы узнать, как ее выполнить.

После завершения настройки стека LEMP, вернитесь к этому месту. Если у вас появятся какие-либо ошибки, сообщите об этом в комментариях.

Инсталляция ownCloud 9 на Arch Linux

ownCloud доступен в репозитории сообщества Arch Linux, что позволяет установить его через pacman.

sudo pacman - S owncloud

Указанная команда также устанавливает графическую библиотеку php-gd, которая расшифровывается как Graphics Draw. Программа OwnCloud располагается в папке /usr/share/webapps/owncloud. Чтобы Nginx имел возможность записывать в эту директорию, необходимо установить http в качестве владельца каталога webapps.

sudo chown http:http /usr/share/webapps/ - R

Настройка базы данных и учетной записи пользователя для ownCloud.

Подключитесь к серверу базы данных MariaDB:

Читайте также:  Подсчитать количество строк в Linux

mysql - u root - p

После этого необходимо настроить базу данных для ownCloud.

create database owncloud;

Для просмотра всех ваших баз данных используйте:

show databases;

Теперь необходимо создать пользователя для базы данных ownCloud на локальном хосте. Подберите пароль по своему усмотрению.

create user ownclouduser@localhost identified by 'password';

Если после выполнения указанной команды возникает ошибка 403 «Запрещено», это может означать, что ваша конфигурация Nginx ограничивает доступ к скрытым файлам. Чтобы разрешить доступ к your-web-root/.well-known/acme-challenge, необходимо добавить следующую директиву в файл конфигурации Nginx.

location ~ /.well-known/acme-challenge

После этого выполните перезагрузку конфигурации Nginx.

sudo systemctl reload nginx

Снова запустите команду letsencrypt для получения вашего сертификата.

Подготовьте файл конфигурации Nginx для ownCloud.

Сначала необходимо создать папку conf.d для размещения отдельных файлов конфигурации Nginx.

sudo mkdir /etc/nginx/conf.d

После этого необходимо сгенерировать конфигурационный файл для ownCloud.

sudo nano /etc/nginx/conf.d/owncloud.conf

Поместите указанный текст в файл.

upstream php-handler < #server 127.0.0.1:9000; server unix:/run/php-fpm/php-fpm.sock; >server < listen 80; server_name owncloud. your-domain.com; # принудительное использование https return 301 https://$server_name$request_uri; > server < listen 443 ssl; server_name owncloud. your-domain.comssl_сертификат /etc/letsencrypt/live/owncloud. your-domain.com/fullchain. pem; ключ_ssl_сертификата /etc/letsencrypt/live/owncloud. your-domain.com/nprivkey. pem; # Вставить заголовки для повышения безопасности add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; # Укажите путь к корневой директории вашей установки root

/usr/share/webapps/owncloud

Установить максимальный лимит загрузки client_max_body_size 10G; fastcgi_buffers 64 4K; # Отключить gzip, чтобы предотвратить удаление заголовка ETag gzip off; # Раскомментируйте, если ваш сервер использует модуль ngx_pagespeed # Этот модуль в настоящее время не поддерживается. #pagespeed off; index index.php; error_page 403 /core/templates/403.php; error_page 404 /core/templates/404.php; rewrite ^/.well-known/carddav /remote.php/carddav/ permanent; rewrite ^/.well-known/caldav /remote.php/caldav/ permanent; # Следующие два правила необходимы только для приложения user_webfinger. # Раскомментируйте, если собираетесь использовать это приложение. #rewrite ^/.well-known/host-meta /public.php? service=host-meta last; #rewrite ^/.well-known/host-meta. json /public.php? service=host-meta-json last; location = /robots. txt /templates/403.php; error_page 404 /core/templates/404.php; rewrite ^/.well-known/carddav /remote.php/carddav/ permanent; rewrite ^/.well-known/caldav /remote.php/caldav/ permanent; # Следующие два правила нужны только для приложения user_webfinger. # Раскомментируйте, если планируете использовать это приложение. #rewrite ^/.well-known/host-meta /public.php? service=host-meta last; #rewrite ^/.well-known/host-meta. json /public.php? service=host-meta-json last; location = /robots. txt< allow all; log_not_found off; access_log off; >location ~ ^/(build|tests|config|lib|3rdparty|templates|data)/ < deny all; >location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) < deny all; >Местоположение /< rewrite ^/remote/(.*) /remote.php last; rewrite ^(/core/doc/[^\/]+/)$ $1/index. html; try_files $uri $uri/ =404; >location ~ \.php(?:$|/) < fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTPS on; fastcgi_param modHeadersAvailable true; #Избегайте отправки заголовков безопасности дважды fastcgi_pass php-handler; fastcgi_intercept_errors on; >Добавление заголовка для управления кэшированием файлов js и css. Убедитесь, что он расположен ниже блока location.~ \.php(?:$|/) < block location ~

  • .(?< add_header Cache-Control "public, max-age=7200"; # Добавить заголовки для обеспечения безопасности add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; # Необязательно: не логировать доступ к активам access_log off; >Не обязательно: не фиксировать доступ к другим ресурсам местоположения.~

  • .(?< access_log off; >>

    Замените текст, выделенный красным, на свои реальные данные. Этот конфигурационный файл предполагает, что ваш php-fpm работает через Unix-сокет. Если php-fpm настроен на 127.0.0.1:9000, вам потребуется внести изменения в раздел upstream.

    Если вы устанавливаете ownCloud на своем персональном компьютере:

    • Необходимо настроить его так, чтобы он принимал соединения только на порту 80.
    • server_name будет настроен на 127.0.0.1 или на localhost.
    • Настройки SSL не требуются.

    После этого внесите изменения в файл /etc/nginx/nginx.conf.

    sudo nano /etc/nginx/nginx.conf

    Включите эту строку в раздел http.

    include /etc/nginx/conf.d/*.conf;

    http < include /etc/nginx/conf.d/*.conf; include mime. types; default_type application/octet-stream; .

    Сохраните файл и закройте его. После этого перезапустите Nginx.