Як встановити ownCloud 9.1 з Nginx і MariaDB на CentOS 7

Як встановити ownCloud 9.1 з Nginx і MariaDB на CentOS 7

OwnCloud - це серверне програмне забезпечення для синхронізації даних та обміну файлами за допомогою простого веб-інтерфейсу, доступного за ліцензією з відкритим вихідним кодом. OwnCloud може бути встановлений на веб-сервері Linux або Windows, його легко налаштувати та мати всеосяжну документацію в Інтернеті. Нативний клієнт доступний для Windows, MacOS та Linux (Desktop Application). Існує також мобільний додаток для Android та iOS.

У цьому підручнику я допоможу вам встановити та налаштувати ownCloud 9.1 на сервері CentOS 7. Я покажу вам, як налаштувати ownCloud за допомогою Nginx і PHP 7 (як FPM) і MariaDB як систему бази даних.

Передумови

  • CentOS 7 Server
  • Привілеї root

Крок 1 - встановіть Nginx та PHP7-FPM

Перш ніж ми почнемо з установки Nginx та php7-fpm, нам потрібно додати сховище EPEL, яке містить додаткове програмне забезпечення, недоступне в репозиторії бази CentOS. Встановіть EPEL за допомогою цієї команди yum.

yum-я встановлюю EPEL-реліз

Тепер встановіть Nginx з сховища Epel.

yum-я встановлюю nginx

Тепер нам потрібно додати ще один сховище для php7-fpm. Є кілька репозиторіїв для PHP 7, доступних в мережі, я буду використовувати webtatic сховище тут.

Додайте репозиторій webtatic:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Потім встановіть PHP7-FPM з деякими додатковими пакетами для інсталяції ownCloud.

yum-я встановлюю php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-груша php70w-xml php70w-mbstring php70w-pdo php70w-json

Перевірте версію PHP з термінала сервера, щоб переконатися, що установка була успішною.

PHP-V

Перевірте версію PHP

Крок 2 - Налаштування PHP7-FPM

На цьому кроці ми налаштуємо php-fpm для запуску з nginx. Php7-fpm буде працювати під користувачем nginx і слухати на порту 9000.

Відредагуйте стандартну конфігурацію php7-fpm за допомогою vim.

vim /etc/php-fpm.d/www.conf

В рядку 8 і 10 змініть користувача та групу на "Nginx».

користувач = nginx
група = nginx

У рядку 22 переконайтеся, що за протоколом сервера 9000 працює протокол php-fpm.

слухати = 127.0.0.1: 9000

Розчленувати лінії 366-370 для змінних системного середовища php-fpm.

env [HOSTNAME] = $ HOSTNAME
env [PATH] = / usr / local / bin: / usr / bin: / bin
env [TMP] = / tmp
env [TMPDIR] = / tmp
env [TEMP] = / tmp

Збережіть файл і вийдіть з редактора

Потім створіть новий каталог для шляху сеансу у каталозі '/ var / lib /' та змініть власника на користувача nginx.

mkdir -p / var / lib / php / session
chan nginx: nginx-r / var / lib / php / session /

Запустіть php-fpm та nginx, після чого додайте його, щоб почати час завантаження.

sudo systemctl почати php-fpm
sudo systemctl почати nginx
sudo systemctl увімкнути php-fpm
sudo systemctl дозволити nginx

Налаштувати PHP-FPM на CentOS

Конфігурація PHP7-FPM виконана.

Крок 3 - встановлення та налаштування MariaDB

OwnCloud підтримує бази даних PostgreSQL та MySQL, в цьому уроці ми будемо використовувати MariaDB для бази даних власної пам'яті. Встановіть пакунок mariadb-сервера з репозиторію CentOS за допомогою команди yum.

yum -y я встановлюю mariadb mariadb-сервер

Почніть службу MariaDB і налаштуйте пароль rootDB MariaDB.

systemctl почати mariadb
mysql_secure_installation

Введіть пароль root після запиту.

Встановити пароль адміністратора? [Y / n] Y
Новий пароль:
Повторно введіть новий пароль:
Видалити анонімних користувачів? [Y / n] Y
Заборонити відключити кореневий авторизацію? [Y / n] Y
Видалити тестову базу даних та доступ до неї? [Y / n] Y
Перезавантажити таблиці привілеїв зараз? [Y / n] Y

Встановлено пароль адміністратора MariaDB, тепер ми можемо увійти в оболонку MySQL, щоб створити нову базу даних та користувача для власного ресурсу. Ми створимо нову базу даних '

Ми створимо нову базу даних 'owncloud_db"під користувачем"ownclouduser'з паролем'ownclouduser @'. Будь ласка, виберіть інший та надійний пароль для вашої установки!

mysql -u root -p
Введіть Пароль

Введіть MySQL-запит нижче, щоб створити нову базу даних і нового користувача.

створити базу даних owncloud_db;
створити користувача [email protected], що ідентифікується як "ownclouduser @";
надавати всі привілеї на owncloud_db. * до [email protected], що ідентифікується як "ownclouduser @";
флеш пільг;

Створіть нову базу даних MySQL для власної пам'яті

Була створена база даних 'owncloud_db' з користувачем 'ownclouduser'.

Крок 4 - Створіть самопідписаний сертифікат SSL

У цьому підручнику ми будемо запускати власний обмін за допомогою https для клієнта. Ви можете використовувати безкоштовний сертифікат SSL, такий як давайте зашифрувати. У цьому підручнику я створив свій власний файл сертифіката SSL за допомогою команди OpenSSL.

Створіть новий каталог для файлу SSL.

mkdir -p / etc / nginx / cert /

Потім створіть новий файл сертифіката SSL за допомогою команди OpenSSL нижче.

openssl req-new -x509 -days 365 -nodes -out /etc/nginx/cert/owncloud.crt -keyout /etc/nginx/cert/owncloud.key

Введіть подробиці сертифіката SSL, як це вимагається командою OpenSSL. Потім змініть дозвіл всіх файлів сертифікатів на 600 за допомогою chmod.

chmod 600 / etc / nginx / cert / *

Створіть самопідписаний сертифікат SSL

Крок 5 - завантажте OwnCloud

Ми будемо завантажувати ownCloud командою wget, тому спочатку потрібно встановити пакет wget. Крім того, нам потрібно розпакувати пакунок.

yum -y, встановіть wget розпакуйте

Перейдіть у каталог tmp і завантажте останню стабільну власну Cloud 9.1 з сайту ownCloud за допомогою wget.

CD / TMP
wget https://download.owncloud.org/community/owncloud-9.1.2.zip

Витягне власний zip-файл і переведіть його в каталог / usr / share / nginx / html / '.

розпакувати власний хмари-9.1.2.zip
mv owncloud / / usr / share / nginx / html /

Потім перейдіть до кореневого каталогу веб-nginx та створіть нову директорію "data" для власної пам'яті.

cd / usr / share / nginx / html /
mkdir -p owncloud / data /

Змінити власника каталогу 'owncloud' на користувача та групу 'nginx'.

chown nginx: nginx-R owncloud /

Крок 6 - Налаштування віртуального хосту OwnCloud в Nginx

На кроці 5 ми завантажили вихідний код ownCloud і налаштували його для запуску під веб-сервером Nginx. Але нам все-таки потрібно налаштувати віртуальний хост для власного кольору.

Створіть новий файл конфігурації віртуального хосту 'owncloud.conf' у каталозі 'conf.d'.

cd /etc/nginx/conf.d/
vim owncloud.conf

Вставте конфігурацію власного віртуального хоста власної версії нижче.

upstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name data.owncloud.co;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name data.owncloud.co;
ssl_certificate /etc/nginx/cert/owncloud.crt;
ssl_certificate_key /etc/nginx/cert/owncloud.key;
# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this topic first.
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
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;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Path to the root of your installation
root /usr/share/nginx/html/owncloud/;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#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 = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/acme-challenge { }
# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location / {
rewrite ^ /index.php$uri;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
return 404;
}
location ~ ^/(?:.|autotest|occ|issue|indie|db_|console) {
return 404;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34]).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; #Avoid sending the security headers twice
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri $uri/ =404;
index index.php;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the PHP block
location ~* .(?:css|js)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers (It is intended to have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into this topic first.
#add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
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;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}
location ~* .(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don't log access to other assets
access_log off;
}
}

Збережіть файл і вийдіть з редактора.

Нарешті, перевірте конфігурацію Nginx та переконайтеся, що помилки немає, а потім перезапустіть службу.

nginx -t
systemctl перезапустити nginx

Перевірте власну конфігурацію Clod Nginx

Крок 7 - Налаштування SELinux і FirewallD

У цьому підручнику ми залишмо SELinux в режимі примусової роботи, тому нам потрібен пакет інструментів управління SELinux для його налаштування.

Встановити інструменти керування SELinux за допомогою цієї команди yum.

yum-я встановлюю policycoreutils-python

Потім виконайте команд нижче в якості кореневого каталогу, щоб дозволити власному класу працювати під SELinux. Не забудьте змінити власний каталог, якщо ви використовуєте інший каталог для інсталяції ownCloud.

semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/data(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/apps(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/assets(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/.user.ini'
restorecon -Rv '/ usr / share / nginx / html / owncloud /'

Далі увімкніть службу брандмауера та відкрийте порт HTTP і HTTPS для власної пам'яті.

Почніть брандмауер і налаштуйте його для запуску при завантаженні.

systemctl почати firewalld
systemctl включити firewalld

Відкрийте порти HTTP і HTTPS команду firewall-cmd, а потім перезавантажте брандмауер.

брандмауер-cmd-перманент-add-service = http
брандмауер-cmd-перманент-add-service = https
брандмауер-cmd-перезавантаження

Відкрийте HTTP-порт і HTTPS-порт у файрволі

Частина конфігурації сервера завершена.

Крок 8 - Майстер встановлення OwnCloud

Тепер відкрийте веб-браузер і введіть ім'я поля ownCloud у поле URL-адреса, моє: data.owncloud.co, і ви будете перенаправлені до безпечного з'єднання HTTPS.

Введіть своє нове ім'я користувача та пароль адміністратора, введіть в облікові дані бази даних і натисніть на "Завершити налаштування».

Майстер установки OwnCloud

Адміністратор панелі керування файлами.

майстер встановлення власного чарту

Налаштування користувача.

Панель керування адміністратора та менеджер файлів

Налаштування адміністратора.

Owncloud Admin

Owncloud успішно встановлено за допомогою Nginx, PHP7-FPM і MariaDB на сервері CentOS 7.

Посилання

джерело

залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.