GNU/Linux >> Linux の 問題 >  >> OpenSuse

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

ownCloudは、PHPプログラミング言語に基づくオープンソースのファイル共有アプリケーションです。 OwnCloudは、セルフホストファイルの同期と共有を優れたWebインターフェイスで提供し、ドロップボックスやメガなどの機能を備えたすべての主要なモバイルおよびデスクトッププラットフォーム用のアプリを同期します。ownCloudを使用すると、ファイル、カレンダー、連絡先に簡単にアクセスして同期できます。デバイス。

このチュートリアルでは、ownCloudを使用して独自の同期および共有サーバープラットフォームを作成する方法を説明します。 WebサーバーとしてNginx、データベースとしてMariaDB(MySQLフォーク)、Linux OpenSUSELeap42.1でphpのリクエストを処理するphp-fpmを使用してownCloudをインストールします。

前提条件

  • OpenSUSE Leap 42.1
  • root権限
  • zypperコマンドを理解する

ステップ1-SuSEfirewall2をインストールします

SuSEfirewallは、その構成をファイル「/ etc / sysconfig/SuSEfirewall2」に保存するファイアウォールスクリプトです。 SuSEfirewall2では、「SuSEfirewall2」ファイルを編集してポートを開くことができます。

zypperコマンドを使用してSuSEfirewall2をインストールします。

zypper in SuSEfirewall2

ファイアウォールがインストールされたら、sysconfigディレクトリに移動し、vimで「SuSEfirewall2」構成を編集します。

cd /etc/sysconfig/
vim SuSEfirewall2

行253に移動し、使用するすべてのサービスのポートを追加します。このステップでは、ssh、http、およびhttpsポートを追加します。

FW_SERVICES_EXT_TCP="22 80 443"

ファイルを保存してエディタを終了します。

次に、SuSEfirewall2を起動し、起動時に実行できるようにします。

systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2

次に、sshdサービスを再起動します。

systemctl restart sshd

SSHサーバーのポートをテストする場合は、telnetコマンドを使用してポート22に接続できます。

telnet 192.168.1.101 22

ステップ2-Nginxをインストールする

Nginxは、メモリとCPUの消費量が少ない軽量のウェブサーバーです。 ownCloudインストールのWebサーバーとしてnginxを使用します。

zypperコマンドを使用してnginxをインストールします:

zypper in nginx

nginxを起動し、systemctlコマンドを使用して起動時に実行できるようにします:

systemctl start nginx
systemctl enable nginx

次に、index.htmlファイルを追加して、nginxが機能しているかどうかをテストします。

echo "This is Nginx Page OpenSUSE Leap" > /srv/www/htdocs/index.html

これで、Webブラウザからnginx Webサーバーにアクセスするか、curlで確認できます:

curl -I 192.168.1.101
curl 192.168.1.101

ステップ3-MariaDBをインストールして構成する

MariaDBは、MySQLデータベースのオープンソースRDBMSベースのフォークです。このステップでは、MariaDBをインストールして構成します。次に、ownCloudインストール用の新しいユーザーとデータベースを作成します。

以下のzypperコマンドを使用してMariaDBをインストールします。

zypper in mariadb mariadb-client

次に、MariaDBを起動し、システムの起動に追加します。

systemctl start mysql
systemctl enable mysql

MariaDBが開始されました。これで、次のコマンドを使用してMariaDBのルートパスワードを構成できます。

mysql_secure_installation

MariaDB / MySQLパスワードを設定します:

Enter current password for root (enter for none): PRESS ENTER
Set root password? [Y/n] Y
New password: TYPE YOUR PASSWORD
Re-enter new password: REPEAT PASSWORD
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Reload privilege tables now? [Y/n] Y

MariaDBルートパスワードが設定されました。これで、MariaDB / MySQLシェルにログインして、ownCloud用の新しいデータベースと新しいユーザーを作成できます。

MariaDB / MySQLシェルにログインします:

mysql -u root -p
TYPE your password

新しいデータベース「owncloud_db」と新しいユーザー「ownclouduser」をパスワード「[emailprotected]」で作成します:

create database owncloud_db;
create user [email protected] identified by '[email protected]';
grant all privileges on owncloud_db.* to [email protected] identified by '[email protected]';
flush privileges;
exit

ownCloudインストール用のデータベースが作成されました。

ステップ4-PHP-FPMのインストールと構成

PHP-FPM(FastCGI Process Manager)は、多くの訪問者がいるサイトを処理するための最新のFastCGI代替手段です。 PHP-FPMは高度なプロセス管理を備えており、管理と構成が簡単です。

このステップでは、php-fpmといくつかのPHP拡張機能をインストールしてから、php-fpmを介してphpファイルリクエストを処理するようにnginxウェブサーバーを構成します。

この「zypperin」コマンドを使用してphp-fpmをインストールします:

zypper in php5-fpm php5-gd php5-mcrypt php5-mysql php5-pear php5-zip php5-curl php5-ldap php5-json

インストールが完了したら、php-fpmディレクトリに移動し、デフォルトの構成ファイルをコピーします。

cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf

php-fpm.confファイルをvimまたはnanoエディターで編集します:

vim php-fpm.conf

32行目のコメントを解除して、php-fpmログを有効にします。後でPHPスクリプトでエラーが発生した場合は、「/ var /log/」ディレクトリにログファイルがあります。

error_log = log/php-fpm.log

プロセスのUNIXユーザー/グループの行148-149を「nginx」に変更します。

user = nginx
group = nginx

159行目の値を変更して、ソケットファイルでphp-fpmを実行します。

listen = /var/run/php-fpm.sock

コメントを外し、行170〜172の値を変更して、UNIXソケットのアクセス許可を設定します。

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

ファイルを保存してエディタを終了します。

次に、cliディレクトリのphp.iniファイルを編集します。

cd /etc/php5/cli/
vim php.ini

コメントを外して、758行目の値を変更します:

cgi.fix_pathinfo=0

保存して終了します。

php.iniファイルをconf.dディレクトリにコピーします:

cp php.ini /etc/php5/conf.d/

次に、phpセッションハンドラーパスを構成します。このチュートリアルでは、php-fpmをnginxユーザーとして実行するため、nginxユーザーがsessionsディレクトリに書き込めることを確認してください。セッションパスの構成は、1390行目のphp.iniファイルで確認できます。

session.save_path = "/var/lib/php5"

セッションディレクトリ「/var/ lib / php5 /」の所有者を変更し、nginxユーザーをディレクトリの所有者にします:

chown -R nginx:nginx /var/lib/php5/

次に、nginxウェブサーバーと連携するようにphp-fpmを設定します。構成を編集する前に、nginx構成ディレクトリに移動し、nginx.confファイルをバックアップしてください。

cd /etc/nginx/
cp nginx.conf nginx.conf.backup
vim nginx.conf

65行目に次の新しい構成を追加します。この構成はすべてのPHPファイル要求を処理します。

       location ~ \.php$ {
                root /srv/www/htdocs;
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }

保存して終了し、nginx構成をテストして、構成にエラーがないことを確認します。

nginx -t

エラーがない場合は、以下の結果を確認できます。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

次に、php-fpmを起動し、起動時にstatに追加してから、nginxサービスを再起動します。

systemctl start php-fpm
systemctl enable php-fpm
systemctl restart nginx

Nginxとphp-fpmが構成されている場合、Webルートディレクトリに新しいphpinfo()ファイルを作成してphpファイルをテストできます。

cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php

ブラウザを開き、サーバーIPにアクセスします:

http://192.168.1.101/info.php

または、curlを使用できます:

curl -I 192.168.1.101/info.php

ステップ5-SSL証明書を生成する

安全なhttps接続を介してownCloudを実行することは、ファイルを安全でプライベートに保つために非常に重要です。自社でownCloudを実行している場合は、SSL証明書を購入できます。無料のSSL証明書が必要な場合は、Let's-encryptを使用できます。ここでは、いわゆる「自己署名」SSL証明書を作成します。自己署名証明書の暗号化は公式証明書より低くはありませんが、サービスに初めてアクセスするときにブラウザでセキュリティ警告を受け入れる必要があります。 。

新しい「ssl」ディレクトリを作成し、opensslコマンドを使用して証明書を生成します。

cd /etc/nginx/
mkdir ssl; cd ssl/
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/example-owncloud.crt -keyout /etc/nginx/ssl/example-owncloud.key

次に、キーの権限を変更します:

chmod 600 example-owncloud.key

ステップ6-ownCloudをインストールして設定する

このステップでは、ownCloudをインストールし、ownCloudドメイン用に新しいnginx仮想ホストを構成します。ドメイン名が「example-owncloud.co」のowncloudをインストールし、「/ srv / www /owncloud/」ディレクトリにWebルートファイルをインストールします。

ownCloudをダウンロード

「/srv/ www /」ディレクトリに移動し、ownCloudソースをダウンロードして解凍します:

cd /srv/www/
wget https://download.owncloud.org/community/owncloud-9.0.2.zip
unzip owncloud-9.0.2.zip

次に、owncloudディレクトリの下に新しいデータディレクトリを作成して、すべてのユーザーデータを保存します。 ownCloudディレクトリの所有者をnginxユーザーに変更します:

mkdir -p owncloud/data/
chown -R nginx:nginx owncloud/

ownCloud用にNginx仮想ホストを構成する

nginxディレクトリに移動し、仮想ホストファイル構成用の新しいディレクトリを作成します。

cd /etc/nginx/
mkdir vhosts.d/

vhosts.dディレクトリに移動し、owncloud「example-owncloud.conf」の新しい仮想ホストファイルを作成します。

cd vhosts.d/
vim example-owncloud.conf

以下に構成を貼り付けます:

upstream php-handler {
  #server 127.0.0.1:9000;
  server unix:/var/run/php-fpm.sock;
}

server {
  listen 80;
  server_name example-owncloud.co;
  # enforce https
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl;
  server_name example-owncloud.co;

  ssl_certificate /etc/nginx/ssl/example-owncloud.crt;
  ssl_certificate_key /etc/nginx/ssl/example-owncloud.key;

  # Path to the root of your installation
  root /srv/www/owncloud/;
  # set max upload size
  client_max_body_size 10G;
  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;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 /core/templates/403.php;
  error_page 404 /core/templates/404.php;

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
    deny all;
  }

  location / {
    # The following 2 rules are only needed with 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;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    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_pass php-handler;
    fastcgi_intercept_errors on;
  }

  # Adding the cache control header for js and css files
  # Make sure it is BELOW the location ~ \.php(?:$|/) { block
  location ~* \.(?:css|js)$ {
    add_header Cache-Control "public, max-age=7200";
    # Add headers to serve security related headers
    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;
    # Optional: Don't log access to assets
    access_log off;
  }

  # Optional: Don't log access to other assets
  location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
    access_log off;
  }
}

ファイルを保存してエディタを終了します。

nginx構成をテストし、すべてのサービスを再起動することを忘れないでください:

nginx -t
systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysql

テスト

owncloudドメインにアクセスします:

例-owncloud.co

https接続にリダイレクトされます。

次に、管理者ユーザーとパスワード、データベース名、ユーザー、パスワードを入力し、[セットアップの完了]をクリックします。

ちょっと待つと、owncloudファイルマネージャーが表示されます:

OpenSUSELeap42.1へのnginxとMariaDBを使用したownCloudのインストールが完了しました。

参考資料

  • https://doc.owncloud.org/
  • https://www.howtoforge.com/tutorial/install-nginx-php-and-mysql-lemp-stack-on-opensuse-leap-42.1/
  • https://www.howtoforge.com/tutorial/how-to-install-owncloud-8-with-nginx-and-mariadb-on-centos-7/


OpenSuse
  1. OpenSUSELeap15.3にErlangをインストールする方法

  2. Nginxをプロキシとしてインストールおよび設定する方法OpenSUSELeap15.3

  3. OpenSUSE Leap 15.3にPHPとNginx(LEMP)をインストールしてセットアップする方法

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

  2. openSUSE12.1にPHP-FPMとMySQLを使用してNginxをインストールする方法

  3. OpenSUSELeap15.3にMongodb5をインストールする方法

  1. MysqlServer8をOpenSUSELeap15.3にインストールする方法

  2. OpenSUSELeap15.3にRedis6をインストールして設定する方法

  3. OpenSUSELeap15.3にJava17をインストールする方法