Cloud Anda, Data Anda, Sesuai Keinginan Anda! - ownCloud 4.0 Pada CentOS 6.2 + nginx + PostgreSQL
Dokumen ini menjelaskan cara menginstal dan mengatur ownCloud oleh "komunitas ownCloud" pada server web berbasis CentOS 6.2 dari paket tar pada nginx dan php-fpm dengan database postgreSQL sebagai backend. Untuk distribusi lain mungkin ada perubahan kecil pada prosedur instalasi prasyarat perangkat lunak. Panduan ini tidak hanya akan membantu menginstal produk, tetapi juga memahami mengapa poin-poin tertentu dilakukan dengan cara seperti itu (ini sangat membantu bagi pengguna dengan sedikit atau tanpa pengetahuan yang, seperti saya beberapa waktu lalu, baru mulai menggunakan Linux).
Apa itu ownCloud?
Ini adalah alat berbagi grup atau perusahaan file / kontak / kalender, yang, dari sudut pandang saya, membuat yang terbaik dari Dropbox dan GroupOffice (kecuali untuk integrasi email sejauh ini), dan tidak berantakan atau seberat Alfresco atau Sharepoint.
Tautan ke beberapa bagian pengembang:
- Beranda produk:http://owncloud.org/
- IRC:http://webchat.freenode.net/?channels=owncloud
- Dukungan:http://owncloud.org/support/
Saya tidak menjamin itu akan berhasil untuk Anda, karena nanti mungkin ada perubahan pada perangkat lunak, baik prasyarat maupun utama, dilakukan sedemikian rupa sehingga akan merusak atau bagaimanapun juga melarang prosedur yang disebutkan dalam tutorial ini untuk diselesaikan dengan sukses.
P.S. Semua bug yang ditambahkan adalah milik saya. Gunakan komentar atau jelajahi IRC.
Catatan Awal
Dalam tutorial ini kami menggunakan:
- Media penginstalan Centos 6.2
- Nama host:owncloud.example.com
- Alamat IP:192.168.1.100
- Alamat perute:192.168.1.1
- Netmask:255.255.255.0
- Asumsikan(bayangkan) bahwa server terhubung ke internet publik
- Kami menggunakan komputer kami untuk mengelola server dari jarak jauh melalui ssh (dempul di windows), bahkan jika Anda memiliki server di sisi Anda, atau menjalankannya sebagai mesin virtual di bawah sistem operasi utama Anda
- GNU vim sebagai editor teks utama kami. Tapi silakan gunakan yang lain sesuai keinginan Anda
Persyaratan
Kami akan membutuhkan instalasi Centos 6.2 yang bersih (minimal) (x86 atau x86_64 tidak relevan), saya pribadi menggunakan versi x86_64 dan saya sangat menyarankan Anda melakukan hal yang sama.
Hal Pertama Yang Utama
Masuk ke konsol server sebagai root. Anda akan berada di perintah [[email protected] ~]#.
Saya lebih suka pengaturan tertentu, yang sepenuhnya opsional, tetapi Anda mungkin menganggapnya berguna nanti. Saya mengatur terminal saya untuk menampilkan output dalam warna dengan tanggal, waktu, nama server dan folder saat ini pada prompt. Juga untuk menampilkan riwayat perintah dengan tanggal/waktu. Saya juga meningkatkan nilai ukuran sejarah default.
Untuk melakukannya, jalankan:
vi ~/.bash_profile
Tambahkan baris yang disebutkan setelah direktif PATH ekspor. Jika Anda tidak tahu, menekan "i" masuk ke mode insert, "ESC" keluar. Vi adalah vi :)
#Ukuran riwayat untuk menampung 50.000 perintah dan memperbesar ukuran file sepuluh kali lebih besarekspor HISTSIZE=50000ekspor HISTFILESIZE=500000#Tampilkan riwayat dengan tanggal sebagai contoh:"24.05.2012 - 14:28:56"export HISTTIMEFORMAT="%d.%m .%Y - %H:%M:%S "#Autocolor output dari "ls" commandexport LS_OPTIONS='--color=auto'eval "`dircolors`"#Setel prompt untuk ditampilkan sebagai contoh:"Thu May 24 2012 14 :28:56 owncloud.example.com dari root @ ~]"#dan mewarnai tanggal, waktu, dan lokasi secara berbeda. Setel semua teks masukan ke nilai default.PS1="\e[1;37m\][\e[1;36m\] \d \D{%Y} \e[1;31m\]\t \e[1;37m\] \H dari \u @ \W] \033[00m\]"
Simpan dan keluar dari file. Sekali lagi, jika Anda tidak tahu, di luar mode penyisipan Anda masuk ke ":wq" dan tekan enter untuk menyimpan dan keluar, atau cukup tekan "ZZ" untuk melakukan hal yang sama. Untuk masuk kembali ke terminal untuk menerapkan perubahan, jalankan:
keluar
Jaringan
Jika Anda tidak menyetel alamat IP statis selama penginstalan, misalnya Anda memiliki perute berkemampuan DHCP, Anda harus melakukannya sekarang, jika tidak, lanjutkan ke langkah berikutnya.
vi /etc/sysconfig/network-scripts/ifcfg-eth0
Ubah atau tambahkan hanya baris yang disebutkan.
BOOTPROTO="none"NETWORK="192.168.1.0"NETMASK="255.255.255.0"IPADDR="192.168.1.100"GATEWAY="192.168.1.1"
Simpan dan keluar. Kemudian restart jaringan:
jaringan layanan dimulai ulang
Periksa apakah jaringan dikonfigurasi ulang dengan menjalankan:
ifconfig
Sekarang Anda seharusnya dapat melakukan ssh ke server pada 192.168.1.100 sebagai root. Tapi jangan lakukan itu dulu, selesaikan dulu langkah selanjutnya.
Mengamankan Server
Sebelum kita melangkah lebih jauh, karena kita berasumsi bahwa server sebenarnya terhubung ke internet, kita perlu mengamankannya. Kami akan melakukan tiga hal.
- Konfigurasi ulang ssh-server sehingga tidak mengizinkan login root dan mengubah port default 22 menjadi yang lain, yang kurang umum, yaitu 60606,
- Siapkan iptables untuk mengizinkan koneksi masuk pada port baru,
- Tambahkan pengguna sistem pertama kami untuk masuk dengannya melalui ssh.
-
Mengamankan login jarak jauh
Jika Anda belum login dari konsol ke server (maksud saya konsol lokal, belum ssh), login sebagai root, lalu jalankan:
vi /etc/ssh/sshd_config
Pada baris tiga belas dari file default yang tidak diubah (jika Anda bertanya-tanya lagi, ketik ":set number" dan tekan enter di luar mode insert untuk mendapatkan nomor baris) ada arahan Port 22. Duplikat, ubah nomor port menjadi 60606 dan batalkan komentar.
Kemudian temukan (di luar mode penyisipan tekan "/" dan ketik frasa yang Anda cari) PermitRootLogin yes direktif duplikat lagi dan ubah nilainya menjadi tidak dan batalkan komentar juga , lalu simpan file. Oh, dan ini adalah ":noh" untuk menonaktifkan penyorotan.
Mulai ulang sshd setelahnya:layanan sshd restart
-
Mengatur iptables
Pertama periksa iptables yang sudah ada:
iptables -L -v --line-numbers
Dalam instalasi default pada posisi '4' akan direktif untuk menerima koneksi tcp baru pada port ssh default, kita harus menyingkirkannya, lalu jalankan:
iptables -D INPUT 4
Sekarang kita perlu mengizinkan koneksi ke port 60606 sebagai gantinya. Jalankan:
iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPT
Terakhir untuk menyimpan status iptables saat ini, jalankan:
service iptables simpan
service iptables restart -
Menambahkan pengguna pertama
Semuanya baik-baik saja sekarang, kecuali satu hal, kami telah melarang diri kami sendiri dari ssh, karena root tidak diizinkan dan belum ada pengguna sistem lain. Waktu untuk mengoreksi:
useradd -c "pengguna sistem ownCloud" -m -n cloudadmin
Setel sandi untuk pengguna ini:
passwd cloudadmin
Selesai. Anda dapat mengatur kata sandi untuk pengguna pada perintah pertama, tetapi dengan cara ini nilai kata sandi akan terlihat selama entri di jendela terminal dan juga disimpan di .bash_history pengguna root, yang tidak diinginkan.
Sekarang Anda dapat masuk melalui ssh menjalankan perintah berikut di jendela terminal Anda di komputer lokal:ssh [dilindungi email] -p60606
Langkah-Langkah Pra-Penyiapan
Penginstalan perangkat lunak dalam banyak kasus cukup mudah dan kami dapat 'memeriksa' sebagian besar saat penginstalan awal, tetapi saya lebih suka melakukannya dengan tangan.
Saya sengaja membagi penginstalan menjadi beberapa bagian.
-
Mencatat sebagai pengguna super
Pada saat ini Anda harus berada di prompt konsol sebagai pengguna clouddmin. Untuk mendapatkan hak akses root, jalankan:
su -
-
Repositori perangkat lunak
Untuk menggunakan perangkat lunak yang diinginkan, diperlukan dua repositori.
EPEL pertama, jalankan:rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
Dan tidak, i386 tidak salah, itu sama untuk sistem 32-bit dan 64-bit.
Kemudian Remi, jalankan:rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
Sekarang periksa repositori epel dan remi dan jika tidak ada, atur diaktifkan =1 dengan menjalankan:
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmvi /etc/yum.repos.d/epel.repo
Terakhir, perbarui sistem Anda. Bahkan CentOS yang baru diinstal mungkin memerlukan pembaruan terlebih dahulu. Jalankan:
vi /etc/yum.repos.d/remi.repoyum update -y
-
Waktu presisi
Adalah baik untuk sinkron dengan seluruh dunia, jalankan:
yum install ntp
service ntpd start
chkconfig ntpd on
ntpd -
Beberapa alat lain
Untuk membuat hidup saya sedikit lebih mudah, saya menggunakan vim daripada vi, htop bukannya atas, elinks untuk menguji sesuatu dengan cepat dari dalam terminal dan mc, sebagai pengelola file panel ganda yang baik dan tidak hanya, wget diperlukan untuk mengunduh barang-barang dan man sangat penting ketika Anda ingin membaca apa saja. Jalankan:
yum install vim htop elinks mc wget man -y
Pengaturan ownCloud
-
Prasyarat perangkat lunak
Banyak hal php, jalankan:
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-rapi php-pgsql
Edit php.ini, jalankan:
vim /etc/php.ini
Ada empat arahan yang harus diubah,
pertama harus pada baris 736, arahan post_max_size
kedua pada baris 848, arahan cgi.fix_pathinfo
ketiga pada baris 885, arahan upload_max_filesize
terakhir pada baris 956, direktif date.timezone memodifikasinya sesuai dengan lokasi server Anda.[...]post_max_size =64M[...]cgi.fix_pathinfo =0[...]upload_max_filesize =64M[...]date.timezone ="Europe/Praha"[...]
Jika Anda tidak tahu caranya, Anda dapat menemukan nama zona waktu Anda dengan menjalankan:
cat /etc/sysconfig/clock
Selanjutnya, konfigurasikan php-fpm untuk menggunakan soket unix alih-alih tumpukan tcp, jalankan:
vim /etc/php-fpm.d/www.conf
Dari baris dua belas, buat seperti ini:
;listen =127.0.0.1:9000listen =/var/run/php-fpm/php-fpm.sock
Mulai php-fpm:
chkconfig php-fpm pada
layanan php-fpm mulai -
Backend - PostgreSQL
Untuk menginstal dan mengaturnya, jalankan:
yum install postgresql postgresql-libs postgresql-server
service postgresql initdb
service postgresql start
chkconfig postgresql onMasuk ke postgres sebagai pengguna sistem postgres, buat pengguna basis data, basis data, dan berikan hak istimewa
su - -c "psql" postgres
BUAT PENGGUNA clouduser DENGAN PASSWORD 'userpass';
BUAT DATABASE clouddb PEMILIK clouduser ENCODING 'UTF8';
BERIKAN SEMUA HAK ISTIMEWA PADA DATABASE clouddb KEPADA clouduser;
\qUbah file konfigurasi postgresql untuk mengizinkan login kata sandi:
vim /var/lib/pgsql/data/pg_hba.conf
-
Telusuri
# Koneksi lokal IPv4:
host semua 127.0.0.1/32 ident -
Dan ubah menjadi
# Koneksi lokal IPv4:
host semua 127.0.0.1/32 sandi
Sekarang restart databasenya:
service postgresql restart
-
-
server web nginx
Instal, atur untuk memulai saat boot dan kemudian hentikan:
yum install nginx
service nginx start
chkconfig nginx on
service nginx stopSiapkan file konfigurasi untuk website ownclod:
vim /etc/nginx/conf.d/owncloud.conf
# redirect http ke https.server { listen 80; nama_server owncloud.example.com; tulis ulang ^ https://$server_name$request_uri? permanen; # menegakkan https}# server owncloud (ssl/tls) { dengarkan 443 ssl; ssl_certificate /etc/nginx/certs/server.crt; ssl_certificate_key /etc/nginx/certs/server.key; nama_server owncloud.example.com; root /var/www/owncloud; indeks indeks.php; client_max_body_size 64M; # atur ukuran unggahan maksimum # tolak lokasi akses langsung ~ ^/(data|config|\.ht|db_structure\.xml|README) { tolak semua; } # default coba lokasi pesanan / { try_files $uri $uri/ @webdav; } # owncloud WebDAV lokasi @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 aktif; termasuk fastcgi_params; } # aktifkan lokasi php ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS aktif; termasuk fastcgi_params; }}
Sekarang mari kita buat sertifikat untuk server, jawab pertanyaan di prompt sesuai dengan pengaturan Anda:
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 -in server. csr -signkey server.key -out server.crtMuat ulang nginx untuk mengaktifkan konfigurasi baru:
layanan nginx reload
-
file dan direktori ownCloud
instalasi ownCloud terdiri dari mengunduh dan membongkar arsip, dengan beberapa penyesuaian di sisi server, jadi, jalankan:
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/owncloudDan sekali lagi, apache sebagai grup pada perintah terakhir bukanlah kesalahan. php-fpm dijalankan secara default sebagai apache pengguna
-
Akses situs web
Buka port 443 untuk dapat mengakses website, jalankan:
iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 443 -j ACCEPT
service iptables save
service iptables restart
Uji Jalan
Jelajahi https://owncloud.example.com melalui browser pilihan Anda dan selesaikan prosedur instalasi.
Pilih nama pengguna dan kata sandi administrator, pilih PostgreSQL sebagai backend database dan posting nilai yang sesuai di pengaturan koneksi Database.
Menikmati.
Pemecahan masalah
File log terletak sebagai berikut:
/var/www/owncloud/data/owncloud.log
/var/log/php-fpm/www-error.log
/var/log/nginx/access.log
/var /log/nginx/error.log