ownCloud インストール · 2 min read · Jan 23, 2026

CentOS 6.5でSSLとNginxを使用してownCloudをインストールする

CentOS 6.5でSSLとNginxを使用してownCloudをインストールする

バージョン: 3.0
著者: Aaron

CentOSは多くのパッケージをアップグレードしており、私が1年前に書いた投稿は、最新のCentOS 6.5ではもはや機能しません。

私は調査を行い、これが2014年にCentOSでnginx、postgresql、sslを使用してowncloudをインストールする方法についての最初のチュートリアルになるようです。現在、CentOSとowncloudのnginxによるインストールを見つけることはできません。なぜなら、ほとんどの人が簡単な問題を解決する方法を知らないからです。

私のサーバーが影響を受け、これが私が今日この投稿を書く理由です。

EPELおよびCentOSリポジトリのパッケージは古く、nginx、postgresql、owncloudは少し新しいパッケージを必要とします。あなたはファイルにアクセスできず、ログインページに留まることになり、何が起こったのか自問自答することになります。ログファイルは問題の出所を示さず、owncloud自体も示しません。

owncloudの要件は

PostgreSQL >= 9.0ですが、EPELには8.8があり、最小限のphp 5.3.3が必要ですが、そのバージョンでは動作しません。また、これらの新しいパッケージは最新の安定したnginxバージョンを必要とします。

最初に行うべきことは、すべてのmysqlライブラリを削除することです。

yum remove mysql* mysql-server mysql-devel mysql-libs

通常通り、epel、remi、そして新しいもの: 最新のpostgresqlのようなサードパーティのリポジトリをインストールします。

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpm

epelリポジトリを編集し、上部がenabled=1であることを確認します。

vi /etc/yum.repos.d/epel.repo

remiリポジトリでも同様のことを行いますが、phpバージョン5.6を有効にすることを確認してください。

vi /etc/yum.repos.d/remi.repo


nginxリポの設定ファイルを作成します。

vi /etc/yum.repos.d/nginx.repo

そして、次の内容を追加します:

[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1

CentOSサーバーを更新して、これらのサードパーティのリポジトリを追加します。

yum update

owncloudの要件を満たすために、次のパッケージをインストールします:

yum install nginx postgresql93 postgresql93-libs postgresql93-server wget php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql php-pdo

PostgreSQLを起動し、nginxを一時的に起動し、chkconfigでシステム起動サービスに追加します。

service postgresql-9.3 initdb  
service postgresql-9.3 start   
chkconfig postgresql-9.3 on  
service nginx start   
chkconfig nginx on  
service nginx stop

新しいPostgreSQLユーザーとデータベースを作成します。

su - -c "psql" postgres
CREATE USER cloud WITH PASSWORD 'userpass';  
CREATE DATABASE cloudbase OWNER cloud ENCODING 'UTF8';  
GRANT ALL PRIVILEGES ON DATABASE cloudbase TO cloud;  
\q

タイムゾーンを確認して覚えておきます。

cat /etc/sysconfig/clock

php設定ファイルを編集します。

vi /etc/php.ini
post_max_size = 2G
cgi.fix_pathinfo = 0
upload_max_filesize = 2G
date.timezone = "your/timezone"

php-fpm設定ファイルを編集して、unixソケットの代わりにtcpを使用します。

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

listenが/var/run/php-fpm/php-fpm.sockを指していないことを確認します。

listen = 127.0.0.1:9000

php-fpmサービスを起動します。

chkconfig php-fpm on  
service php-fpm start

PostgreSQL設定ファイルを編集して、パスワードログインを許可します:

vi /var/lib/pgsql/9.3/data/pg_hba.conf

identをpasswordに変更します - 次の画像のカーソルに注意してください:

PostgreSQLデータベースを再起動します service postgresql-9.3 restart

SSL証明書を保存する空のフォルダーを作成します。

cd /etc/nginx  
mkdir -p cert

apacheの仮想ホストに慣れている場合、次に作成するファイルはまさにそれです。

cd conf.d
vi cloud.conf
upstream php-handler {
    server 127.0.0.1:9000;
    #server unix:/var/run/php5-fpm.sock;
}

server {
        listen 80;
        server_name 10.10.10.110; # あなたのドメイン名または内部サーバーIPに置き換えてください
        return 301 https://$server_name$request_uri;  # httpsを強制
}


server {
        listen 443 ssl;
        server_name 10.10.10.110; # あなたのドメイン名または内部サーバーIPに置き換えてください

        ssl_certificate /etc/nginx/cert/server.crt;
        ssl_certificate_key /etc/nginx/cert/server.key;

        # インストールのルートへのパス
        root /var/www/owncloud/;

        client_max_body_size 10G; # 最大アップロードサイズを設定
        fastcgi_buffers 64 4K;

        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 ~ ^/(data|config|\.ht|db_structure\.xml|README) {
                deny all;
        }

        location / {
                # 次の2つのルールは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/ index.php;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
                fastcgi_param PATH_INFO $2;
                fastcgi_param HTTPS on;
                fastcgi_pass php-handler;
        }

        # オプション: 静的アセットに長いEXPIRESヘッダーを設定
        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires 30d;
                # オプション: アセットへのアクセスをログに記録しない
                access_log off;
        }
}

私はそのnginx設定ファイルを私のウェブサイトにアップロードしましたので、手動で書く代わりに wget http://linux.sytes.net/img/nginx1-6.conf.txt と入力し、cloud.confのような名前に変更してください。

nginxの「仮想ホスト」で指定したように、私たちのownCloudサーバーはSSLを使用するので、これらの証明書を作成しましょう。

cd ..  
cd cert  
openssl req -x509 -nodes -sha384 -days 3650 -newkey rsa:4096 -keyout server.key -out server.crt  
chmod 600 server.key  
chmod 600 server.csr

次に、owncloudアーカイブをダウンロードして抽出し、owncloudフォルダーの権限を設定します。開発版のowncloudをダウンロードしますのでご注意ください。

cd /var/www  
wget http://download.owncloud.org/community/daily/owncloud-daily-master.tar.bz2  
tar xjf owncloud-daily-master.tar.bz2  
mkdir -p owncloud/data  
chmod 770 owncloud/data  
chmod 777 owncloud/config/  
chown -R root:apache owncloud  
rm -rf owncloud-daily-master.tar.bz2

サーバーポート80と443への着信tcp接続を許可します。あなたや他の誰かがあなたのサーバーの内部IPを呼び出すと、nginxの「仮想ホスト」で指定したように、https://yourserverinternalipにリダイレクトされます。

iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 80 -j ACCEPT  
iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 443 -j ACCEPT
service iptables save  
service iptables restart

最後にPostgreSQLを再起動し、新しい設定でnginxを起動します:

service postgresql-9.3 restart  
service nginx start

これで完了です。ブラウザを開いてサーバーのIPを指定してください。好きなログイン名とパスワードを選択してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。