あなたのクラウド、あなたのデータ、あなたのやり方! --ownCloud 4.0 on CentOS 6.2 + nginx + PostgreSQL
このドキュメントでは、postgreSQLデータベースをバックエンドとして使用するnginxおよびphp-fpmのtarパッケージからCentOS6.2ベースのWebサーバーに「ownCloudコミュニティ」でownCloudをインストールしてセットアップする方法について説明します。他のディストリビューションの場合、ソフトウェアの前提条件のインストール手順に関して小さな変更がある可能性があります。このガイドは、製品のインストールに役立つだけでなく、特定のポイントが実行される方法で実行される理由も理解します(これは、少し前のようにLinuxの使用を開始したばかりの知識がほとんどまたはまったくないユーザーに最も役立ちます)。
ownCloudとは何ですか?
これはグループまたは会社のファイル/連絡先/カレンダー共有ツールであり、私の観点からは、DropboxとGroupOfficeの両方を最大限に活用し(これまでの電子メール統合を除く)、AlfrescoやSharepointほど雑然としたり重くはありません。
開発者のいくつかのセクションへのリンク:
- 製品のホームページ:http://owncloud.org/
- IRC:http://webchat.freenode.net/?channels=owncloud
- サポート:http://owncloud.org/support/
後で、前提条件とメインの両方のソフトウェアに変更が加えられ、このチュートリアルで説明されている手順が失敗したり、正常に完了できなくなったりする可能性があるため、これが機能することを保証しません。
P.S.追加されたバグはすべて私のものです。コメントを使用するか、IRCを参照してください。
このチュートリアルでは、以下を使用します:
- Centos6.2インストールメディア
- ホスト名:owncloud.example.com
- IPアドレス:192.168.1.100
- ルーターアドレス:192.168.1.1
- ネットマスク:255.255.255.0
- サーバーがパブリックインターネットに接続されていると想定(想像)
- サーバーを横に置いている場合や、仮想マシンをメインのオペレーティングシステムで実行している場合でも、コンピューターを使用してssh(Windowsのパテ)を介してサーバーをリモートで管理します。
- プライマリテキストエディタとしてのGNUvim。ただし、他の好みのものを自由に使用してください
Centos 6.2のクリーンな(最小限の)インストールが必要になります(x86またはx86_64は関係ありません)。私は個人的にx86_64バージョンを使用していますが、同じようにすることを強くお勧めします。
rootとしてサーバーコンソールにログインします。[[emailprotected]〜]#プロンプトが表示されます。
私は完全にオプションの特定の設定を好みますが、後で役立つかもしれません。プロンプトに日付、時刻、サーバー名、現在のフォルダーを含むカラーで出力を表示するように端末を設定しました。また、コマンドの履歴を日付/時刻とともに表示します。また、デフォルトの履歴サイズ値を増やします。
これを行うには、次を実行します:
vi ~/.bash_profile
exportPATHディレクティブの後に上記の行を追加します。わからない場合は、「i」を押すと挿入モードになり、「ESC」を押すと終了します。 Viはviです:)
#History size to hold 50.000 commands and inflate filesize ten times bigger export HISTSIZE=50000 export HISTFILESIZE=500000 #Show history with date as example: "24.05.2012 - 14:28:56" export HISTTIMEFORMAT="%d.%m.%Y - %H:%M:%S " #Autocolor output of "ls" command export LS_OPTIONS='--color=auto' eval "`dircolors`" #Set prompt to display as example: "Thu May 24 2012 14:28:56 owncloud.example.com of root @ ~]" #and colorize date, time and location differently. Set all input text to default values. PS1="\e[1;37m\][\e[1;36m\] \d \D{%Y} \e[1;31m\]\t \e[1;37m\] \H of \u @ \W] \033[00m\]"
ファイルを保存して終了します。繰り返しますが、わからない場合は、挿入モードの外で「:wq」と入力してEnterキーを押して保存して終了するか、「ZZ」を押して同じ操作を行います。ターミナルに再ログインして変更を適用するには、次のコマンドを実行します。
exit
インストール中に静的IPアドレスを設定しなかった場合、たとえばDHCP対応ルーターを使用している場合は、今すぐ設定する必要があります。設定しない場合は、次の手順に進みます。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
上記の行のみを変更または追加します。
BOOTPROTO="none" NETWORK="192.168.1.0" NETMASK="255.255.255.0" IPADDR="192.168.1.100" GATEWAY="192.168.1.1"
保存して終了。次に、ネットワークを再起動します。
service network restart
次のコマンドを実行して、ネットワークが再構成されていることを確認します。
ifconfig
これで、192.168.1.100のサーバーにrootとしてssh接続できるようになります。ただし、まだそれを行わないでください。最初に次のステップを完了してください。
先に進む前に、サーバーは実際にはインターネットに接続されていると想定しているため、サーバーを保護する必要があります。 3つのことを行います。
- ssh-serverを再構成して、rootログインが許可されないようにし、デフォルトのポート22をあまり一般的ではない別のポート22(60606など)に変更します。
- 新しいポートでの着信接続を許可するようにiptablesを設定します
- ssh経由でログインするには、最初のシステムユーザーを追加します。
-
リモートログインの保護 コンソールからサーバーにまだログインしていない場合(つまり、ローカルコンソールであり、まだsshではありません)、rootとしてログインしてから、次のコマンドを実行します。
vi /etc/ssh/sshd_config
変更されていないデフォルトファイルの13行目に(もう一度疑問に思う場合は、「:set number」と入力し、Enterキーを押して行番号を取得します)、ポート22ディレクティブがあります。複製し、ポート番号を60606に変更して、コメントを解除します。
次に、(挿入モードの外で「/」を押して、探しているフレーズを入力します)PermitRootLogin yesディレクティブを再度複製し、値をnoに変更して、コメントを解除します。 、ファイルを保存します。ああ、ハイライトをオフに切り替えるのは「:noh」です。
後でsshdを再起動します:service sshd restart
-
iptablesの設定 まず、既存のiptablesを確認します:
iptables -L -v --line-numbers
位置「4」でのデフォルトのインストールでは、デフォルトのsshポートで新しいtcp接続を受け入れるように指示されます。これを取り除く必要があるため、次のように実行します。
iptables -D INPUT 4
次に、代わりにポート60606への接続を許可する必要があります。実行:
iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPT
最後に、現在のiptablesの状態を保存するには、次のコマンドを実行します。
service iptables save
service iptables restart -
最初のユーザーの追加 ルートが許可されておらず、他のシステムユーザーがまだいないため、1つを除いて、すべてが順調に進んでいます。修正する時間:
useradd -c "ownCloud system user" -m -n cloudadmin
このユーザーのパスワードを設定します:
passwd cloudadmin
終わり。最初のコマンドでユーザーのパスワードを設定できますが、この方法では、パスワード値はターミナルウィンドウへの入力時に表示され、rootユーザーの.bash_historyにも保存されます。これは望ましくありません。
これで、を介してログインできます。ローカルコンピュータのターミナルウィンドウで次のコマンドを実行するssh:ssh [email protected] -p60606
ほとんどの場合、ソフトウェアのインストールは非常に簡単で、最初のインストール時にほとんどを「チェック」できますが、私は手動で行うことを好みます。
意図的にインストールをセクションに分割します。
-
スーパーユーザーとしてのロギング この時点で、clouddminユーザーとしてコンソールプロンプトが表示されます。ルート権限を取得するには、次のコマンドを実行します。
su -
-
ソフトウェアリポジトリ 目的のソフトウェアを使用するには、2つのリポジトリが必要です。
最初のEPEL、実行:rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
いいえ、i386は間違いではありません。32ビットシステムと64ビットシステムの両方で同じです。
次に、Remiを実行します。rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
> 次に、epelリポジトリとremiリポジトリの両方をチェックし、そこにない場合は、以下を実行してenabled=1に設定します。
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmvi /etc/yum.repos.d/epel.repo
最後に、システムを更新します。新しくインストールしたCentOSでさえ、最初に更新が必要になる場合があります。実行:
vi /etc/yum.repos.d/remi.repoyum update -y
-
精度時間 他の世界と同期し、実行するのは良いことです:
yum install ntp
service ntpd start
chkconfig ntpd on
ntpd -
その他のツール 私の生活を少し楽にするために、viの代わりにvim、topの代わりにhtop、elinksを使用して、ターミナルとmc内から物事をすばやくテストします。これは、デュアルペインのファイルマネージャーとしてだけでなく、wgetがものをダウンロードする必要があります。あなたがほとんど何でも読みたいとき、人は不可欠です。実行:
yum install vim htop elinks mc wget man -y
ownCloudセットアップ
-
ソフトウェアの前提条件 たくさんのphpのもの、実行:
yum install php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql
php.iniを編集し、実行します:
vim /etc/php.ini
変更するディレクティブは4つあります。
最初は736行目、ディレクティブpost_max_size
848行目は2番目、ディレクティブcgi.fix_pathinfo
885行目は3番目、ディレクティブupload_max_filesize
最後は956行目、ディレクティブdate.timezoneは、サーバーの場所に応じて変更します。[...] post_max_size = 64M [...] cgi.fix_pathinfo = 0 [...] upload_max_filesize = 64M [...] date.timezone = "Europe/Prague" [...]
方法がわからない場合は、次のコマンドを実行してタイムゾーン名を見つけることができます。
cat /etc/sysconfig/clock
次に、tcpスタックの代わりにunixソケットを使用するようにphp-fpmを構成し、次を実行します。
vim /etc/php-fpm.d/www.conf
12行目から、次のようになります。
;listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php-fpm.sock
php-fpmを起動します:
chkconfig php-fpm on
service php-fpm start -
バックエンド-PostgreSQL インストールして設定するには、次のコマンドを実行します。
yum install postgresql postgresql-libs postgresql-server
service postgresql initdb
service postgresql start
chkconfig postgresql onpostgresシステムユーザーとしてpostgresにログインし、データベースユーザー、データベースを作成し、権限を付与します
su --- c "psql"postgres
パスワード「userpass」を使用してユーザーclouduserを作成します;
「UTF8」をエンコードするデータベースclouddbOWNERclouduserを作成します;
データベースclouddbのすべての特権をclouduserに付与します;
\ qパスワードログインを許可するようにpostgresql構成ファイルを変更します:
vim /var/lib/pgsql/data/pg_hba.conf
-
検索
#IPv4ローカル接続:
すべての127.0.0.1/32identをホスト -
そしてそれを
に変更します#IPv4ローカル接続:
すべての127.0.0.1/32パスワードをホストします
次にデータベースを再起動します:
service postgresql restart
-
-
nginxWebサーバー
インストールし、起動時に開始するように設定してから停止します:
yum install nginx
service nginx start
chkconfig nginx on
service nginx stopownclod Webサイトの構成ファイルを準備します:
vim /etc/nginx/conf.d/owncloud.conf
# redirect http to https. server { listen 80; server_name owncloud.example.com; rewrite ^ https://$server_name$request_uri? permanent; # enforce https } # owncloud (ssl/tls) server { listen 443 ssl; ssl_certificate /etc/nginx/certs/server.crt; ssl_certificate_key /etc/nginx/certs/server.key; server_name owncloud.example.com; root /var/www/owncloud; index index.php; client_max_body_size 64M; # set maximum upload size # deny direct access location ~ ^/(data|config|\.ht|db_structure\.xml|README) { deny all; } # default try order location / { try_files $uri $uri/ @webdav; } # owncloud WebDAV location @webdav { fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; include fastcgi_params; } # enable php location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; include fastcgi_params; } }
次に、サーバーの証明書を作成し、設定に従ってプロンプトで質問に答えましょう。
mkdir -p / etc / nginx / certs /
cd / etc / nginx / certs /
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key- out server.csr
cp server.key server.key.orig
openssl rsa -in server.key.orig -out server.key
openssl x509 -req -days 365-inserver。 csr -signkey server.key -out server.crtnginxをリロードして、新しい構成を有効にします:
service nginx reload
-
ownCloudファイルとディレクトリ
ownCloudのインストールは、アーカイブのダウンロードと解凍で構成され、サーバー側でいくつかの調整が行われるため、次のように実行されます。
cd / tmp
wget http://download2.owncloud.org/releases/owncloud-4.0.0.tar.bz2
tar xjf owncloud-4.0.0.tar.bz2
mv owncloud / var / www /
mkdir -p / var / www / owncloud / data
chmod 770 / var / www / owncloud / data
chown -R root:apache / var / www / owncloudまた、最後のコマンドのグループとしてのapacheはエラーではありません。 php-fpmは、デフォルトでユーザーapacheとして実行されます
-
ウェブサイトにアクセス Webサイトにアクセスできるようにするには、ポート443を開き、次のコマンドを実行します。
iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 443 -j ACCEPT
service iptables save
service iptables restart
選択したブラウザからhttps://owncloud.example.comにアクセスし、インストール手順を完了します。
管理者のユーザー名とパスワードを選択し、データベースバックエンドとしてPostgreSQLを選択して、データベース接続設定に適切な値を投稿します。
楽しみ。
ログファイルは次のように配置されています:
/var/www/owncloud/data/owncloud.log
/var/log/php-fpm/www-error.log
/var/log/nginx/access.log
/ var /log/nginx/error.log