Nextcloudは、無料の(オープンソース)Dropboxのようなソフトウェアであり、ownCloudプロジェクトのフォークです。 NextcloudはPHPとJavaScriptで記述されており、MySQL / MariaDB、PostgreSQL、Oracle Database、SQLiteなどの多くのデータベースシステムをサポートしています。デスクトップと独自のサーバー間でファイルの同期を維持するために、Nextcloudは、Windows、Linux、およびMacデスクトップ用のアプリケーションと、AndroidおよびiOS用のモバイルアプリを提供します。 Nextcloudは単なるドロップボックスクローンではなく、カレンダー、連絡先、スケジュールタスク、Ampacheを使用したストリーミングメディアなどの追加機能を提供します。
このチュートリアルでは、CentOS7サーバーに最新のNextcloud10リリースをインストールして構成する方法を紹介します。 Nginx WebサーバーとPHP7-FPMを使用してNextcloudを実行し、データベースシステムとしてMariaDBを使用します。
前提条件
- CentOS764ビット
- サーバーのルート権限
ステップ1-CentOS7にNginxとPHP7-FPMをインストールします
Nginxとphp7-fpmのインストールを開始する前に、EPELパッケージリポジトリを追加する必要があります。このyumコマンドを使用してインストールします。
yum -y install epel-release
次に、EPELリポジトリからNginxをインストールします。
yum -y install nginx
次に、php7-fpm用に別のリポジトリを追加する必要があります。 PHP 7パッケージを提供するリポジトリがネット上にいくつかあります。ここでは、webtaticを使用します。
PHP7-FPMWebtaticリポジトリを追加します:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
次に、PHP7-FPMとNextcloudインストール用のいくつかの追加パッケージをインストールします。
yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json php70w-pecl-apcu php70w-pecl-apcu-de / pre>最後に、サーバーターミナルからPHPのバージョンをチェックして、PHPが正しくインストールされていることを確認します。
php -v
![]()
ステップ2-PHP7-FPMを構成する このステップでは、Nginxで実行するようにphp-fpmを構成します。 Php7-fpmはユーザーnginxで実行され、ポート9000でリッスンします。
デフォルトのphp7-fpm構成ファイルをvimで編集します。
vim /etc/php-fpm.d/www.conf8行目と10行目で、ユーザーとグループを「 nginx」に変更します '。
user =nginx
group =nginx22行目で、php-fpmがサーバーポートで実行されていることを確認します。
listen =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ファイルを保存してvimエディターを終了します。
次に、「/ var / lib /」ディレクトリにセッションパス用の新しいディレクトリを作成し、所有者を「nginx」ユーザーに変更します。
mkdir -p / var / lib / php / session
chown nginx:nginx -R / var / lib / php / session /次に、php-fpmとNginxを起動し、起動時にサービスを開始できるようにします。
sudo systemctl start php-fpm
sudo systemctl start nginx
sudo systemctl enable php-fpm
sudo systemctl enable nginx
![]()
PHP7-FPM構成が完了しました。
ステップ3-MariaDBをインストールして構成する NextcloudデータベースにはMariaDBを使用します。
を使用してCentOSリポジトリからmariadb-serverパッケージをインストールします。yum -y install mariadb mariadb-serverMariaDBサービスを開始し、ブート時に実行するように追加します。
systemctl start mariadb
systemctl enable mariadb次に、MariaDBルートパスワードを構成します。
mysql_secure_installation要求されたら、rootパスワードを入力します。
ルートパスワードを設定しますか? [Y / n] Y
新しいパスワード:
新しいパスワードを再入力してください:
匿名ユーザーを削除しますか? [Y / n] Y
rootログインをリモートで禁止しますか? [Y / n] Y
テストデータベースを削除してアクセスしますか? [Y / n] Y
特権テーブルを今すぐリロードしますか? [Y / n] YMariaDBのルートパスワードが設定されました。これで、mysqlシェルにログインして、Nextcloudの新しいデータベースと新しいユーザーを作成できます。 ' nextcloud_dbという名前の新しいデータベースを作成します 'とユーザー'nextclouduser 'パスワード付き'[メール保護] '。インストール用の安全なパスワードを選択してください!
mysql -u root-p
パスワードの入力以下にmysqlクエリを入力して、新しいデータベースと新しいユーザーを作成します。
create database nextcloud_db;
「[emailprotected]」で識別されるユーザー[emailprotected]を作成します;
「[emailprotected]」で識別される[emailprotected]にnextcloud_db。*のすべての権限を付与します;
フラッシュ権限;
![]()
ユーザーが「nextclouduser」のnextcloud_dbデータベースが作成されました。
ステップ4-Nextcloudの自己署名SSL証明書を生成する このチュートリアルでは、クライアントのhttps接続を使用してnextcloudを実行します。 Let'sEncryptや自己署名SSL証明書などの無料のSSLを使用できます。 OpenSSLコマンドを使用して独自の自己署名SSL証明書ファイルを作成します。
SSLファイル用の新しいディレクトリを作成します。
mkdir -p / etc / nginx / cert /次に、以下のopensslコマンドを使用して新しいSSL証明書ファイルを生成します。
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/nextcloud.crt -keyout /etc/nginx/cert/nextcloud.key最後に、chmodを使用してすべての証明書ファイルのアクセス許可を600に変更します。
chmod 700 / etc / nginx / cert
chmod 600 / etc / nginx / cert / *
![]()
ステップ5-Nextcloudをダウンロードしてインストールする Nextcloud with wgetをサーバーに直接ダウンロードするので、最初にwgetをインストールする必要があります。さらに、解凍プログラムが必要です。 yumを使用して両方のアプリケーションをインストールします。
yum -y install wget unzip/ tmpディレクトリに移動し、wgetを使用してNextcloudWebサイトから最新の安定したNextcloud10バージョンをダウンロードします。
cd / tmp
wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.zipnextcloud zipファイルを抽出し、そのコンテンツを「/ usr / share / nginx /html/」ディレクトリに移動します。
unzip nextcloud-10.0.2.zip
mv nextcloud / / usr / share / nginx / html /次に、Nginx Webルートディレクトリに移動し、Nextcloud用の新しい「データ」ディレクトリを作成します。
cd / usr / share / nginx / html /
mkdir -p nextcloud / data /'nextcloud'ディレクトリの所有者を'nginx'ユーザーとグループに変更します。
chown nginx:nginx -R nextcloud /
ステップ6-NginxでNextcloud仮想ホストを構成する ステップ5では、Nextcloudソースコードをダウンロードし、NginxWebサーバーで実行するように構成しました。ただし、Nextcloud用に仮想ホストを構成する必要があります。 Nginxの「conf.d」ディレクトリに新しい仮想ホスト構成ファイル「nextcloud.conf」を作成します。
cd /etc/nginx/conf.d/
vim nextcloud.conf以下にNextcloud仮想ホスト構成を貼り付けます。
上流のphp-handler{
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name cloud.nextcloud.co;
#強制https
return 301 https:// $ server_name $ request_uri;
}
server {
listen 443 ssl;
server_name cloud.nextcloud.co;
ssl_certificate /etc/nginx/cert/nextcloud.crt;
ssl_certificate_key /etc/nginx/cert/nextcloud.key;
#セキュリティ関連のヘッダーを提供するヘッダーを追加する
#Strict-Transport-Securityヘッダーを有効にする前に、こちらをお読みください
#最初のトピック。
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;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
#インストールのルートへのパス
root / usr / share / nginx / html / nextcloud /;
location =/robots.txt{
すべて許可;
log_not_found off;
access_log off;
}
#次の2つのルールは、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 =/.well-known/carddav {
return 301 $ schema://$host/remote.php/dav;
}
location =/.well-known/ caldav {
return 301 $ schema://$host/remote.php/dav;
}
#最大アップロードサイズを設定
client_max_body_size 512M;
fastcgi_buffers 64 4K;
#gzipを無効にしてthを回避するeETagヘッダーの削除
gzipoff;
#サーバーがngx_pagespeedモジュールでビルドされている場合はコメントを外します
#このモジュールは現在サポートされていません。
#pagespeed off;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
場所/{
書き直し^/index.php$uri;
}
場所〜^ /(?:build | tests | config | lib | 3rdparty | templates | data)/ {
すべて拒否;
}
場所〜^ /(?:\。| autotest | occ | issue | indie | db_ | console){
すべて拒否;
}
場所〜^ /(?:index | remote | public | cron | core / ajax / update | status | ocs / v [12] | updater/.+|ocs-provider/.+|core/templates /40[34])\.php(?:$|/){
include fastcgi_params;
fastcgi_split_path_info ^(。+ \。php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
fastcgi_param PATH_INFO $ fastcgi_path_info;
fastcgi_param HTTPS on;
#セキュリティヘッダーを2回送信しないようにする
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass _ _> fastcgi_request_buffering off;
}
location〜 ^ /(?:updater | ocs-provider)(?:$ | /){
try_files $ uri / =404;
index index.php;
}
#jsおよびcssファイルのキャッシュ制御ヘッダーを追加します
#PHPブロックの下にあることを確認します
〜* \。(?:css | js)$ {
try_files $ uri /index.php$uri$is_args$args;
add_header Cache-Control "public、max-age =7200";
#セキュリティ関連のヘッダーを提供するヘッダーを追加します(
#上記のヘッダーと複製することを目的としています)
#Strict-Transport-Securityヘッダーを有効にする前に
#をお読みくださいこのトピックを最初に。
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;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
#オプション:アセットへのアクセスをログに記録しない
access_log off;
}
location〜* \。(?:svg | gif | png | html | ttf | woff | ico | jpg | jpeg)$ {
try_files $ uri /index.php$uri$is_args$args;
#オプション:他のアセットへのアクセスをログに記録しない
access_log off;
}
}ファイルを保存してvimを終了します。
次に、Nginx構成をテストして、エラーがないことを確認します。次に、サービスを再起動します。
nginx -t
systemctl restart nginx
![]()
ステップ7-Nextcloud用にSELinuxとFirewallDを設定する このチュートリアルでは、SELinuxを強制モードのままにしておくため、Nextcloud用にSELinuxを構成するための新しいパッケージSELinux管理ツールが必要です。
このコマンドを使用してSELinux管理ツールをインストールします。
yum -y install policycoreutils-python-utils次に、rootユーザーとして以下のコマンドを実行して、NextcloudがSELinuxで実行できるようにします。別のディレクトリを使用する場合は、Nextcloudディレクトリを変更することを忘れないでください。
semanage fcontext -a -t httpd_sys_rw_content_t'/usr/share/nginx/html/nextcloud/data(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t'/ usr / share / nginx / html /nextcloud/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t' /usr/share/nginx/html/nextcloud/apps(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t'/usr/share/nginx/html/nextcloud/assets(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t'/usr/share/nginx/html/nextcloud/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t'/usr/share/nginx/html/nextcloud/.user.ini'
restorecon -Rv'/ usr / share / nginx / html / nextcloud / '次に、firewalldサービスを有効にし、NextcloudのHTTPポートとHTTPSポートを開きます。
Firewalldを起動し、起動時に起動できるようにします。
systemctl start Firewalld
systemctl enable Firewalld次に、firewall-cmdコマンドを使用してHTTPポートとHTTPSポートを開き、ファイアウォールをリロードします。
Firewall-cmd --permanent --add-service =http
firewall-cmd --permanent --add-service =https
firewall-cmd --reload
![]()
すべてのサーバー構成が完了しました。
ステップ8-Nextcloudインストールウィザード Webブラウザーを開き、Nextcloudドメイン名を入力します。私の名前はcloud.nextcloud.coです。安全なhttps接続にリダイレクトされます。
目的の管理者ユーザー名とパスワードを入力してから、データベースの資格情報を入力します。 [セットアップの完了]をクリックします '。
![]()
Nextcloud管理ダッシュボード(ファイルマネージャー)が表示されます。
![]()
Nextcloudユーザー設定。
![]()
管理者設定。
![]()
Nextcloudは、CentOS 7サーバーにNginx、PHP7-FPM、MariaDBとともにインストールされています。
Cent OS