GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にNginxとPHP7-FPMを使用してNextcloudをインストールする方法

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.conf 

8行目と10行目で、ユーザーとグループを「 nginx」に変更します '。

 user =nginx 
group =nginx

22行目で、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-server 

MariaDBサービスを開始し、ブート時に実行するように追加します。

 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] Y

MariaDBのルートパスワードが設定されました。これで、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.zip

nextcloud 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
  1. CentOS7にNginxをインストールして構成する方法

  2. CentOS7にNginxを使用してWordPressをインストールする方法

  3. CentOS7でApacheを使用してNextcloudをインストールおよび構成する方法

  1. CentOS7にNginxを使用してphpMyAdminをインストールする方法

  2. CentOS8にNginxとPHP7.3でNextcloudをインストールする方法

  3. CentOS7にNginxとMariaDBを使用してownCloud9.1をインストールする方法

  1. CentOS7にHHVMとNginxを使用してWordPressをインストールする方法

  2. CentOS7でNginxを使用してAskbotをインストールおよび構成する方法

  3. CentOS7にNginxを使用してSuiteCRMをインストールする方法