你的云,你的数据,你的方式! - ownCloud 4.0 On CentOS 6.2 + nginx + PostgreSQL
本文档介绍了如何在基于CentOS 6.2的网络服务器上的“ownCloud社区”中安装和设置ownCloud,该服务器的tar包是以nginx和php-fpm,postgreSQL数据库为后端。 对于其他发行版,可能会对软件先决条件的安装过程进行细微更改。 本指南不仅可以帮助安装产品,而且还可以了解为什么要按照完成方式完成某些工作(对于很少或根本没有知识的用户来说,最有用的是,像我之前一样,只有开始使用Linux)。
什么是ownCloud?
这是一个集团或公司文件/联系人/日历共享工具,从我的角度来看,尽管Dropbox和GroupOffice(除了迄今为止的电子邮件集成除外),并不像Alfresco或Sharepoint那样凌乱或沉重。
链接到开发人员的几个部分:
- 产品主页: http : //owncloud.org/
- IRC: http : //webchat.freenode.net/?channels=owncloud
- 支持: http : //owncloud.org/support/
我不保证它会为您工作,因为后来可能会有软件变更,先决条件和主要,这样做将会破坏或无论如何禁止本教程中提到的程序成功完成。
PS所有添加的bug都是我的。 使用评论或浏览IRC。
初步说明
在本教程中,我们使用:
- Centos 6.2安装介质
- 主机名:
owncloud.example.com
- IP地址:
192.168.1.100
- 路由器地址:
192.168.1.1
- 网络掩码:
255.255.255.0
- 假设(想像)服务器连接到公共互联网
- 我们使用我们的计算机通过ssh(在Windows上的putty)远程管理服务器,即使您有服务器,或者将虚拟机运行在主操作系统下
- GNU
vim
作为我们的主要文本编辑器。 但是请随意使用您的其他任何方式
要求
我们将需要安装Centos 6.2(x86或x86_64是无关紧要)的工作清洁(最小),我个人使用x86_64版本,我强烈建议您这样做。
第一件事
以root身份登录到服务器控制台。 您将在[root @ owncloud〜]#
提示符下。
我喜欢某些设置,这是完全可选的,但是后来你可能会发现它们很有用。 我设置我的终端在提示符下显示日期,时间,服务器名称和当前文件夹的颜色输出。 还要显示具有日期/时间的命令历史。 我还增加了默认的历史记录大小值。
为此,执行:
vi ~/.bash_profile
在导出PATH
指令后添加提到的行。 如果您不知道,按“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
现在你应该能够以root身份在192.168.1.100
上ssh到ssh。 但不要这样做,首先完成下一步。
保护服务器
在我们继续进行之前,由于我们假设服务器实际上是连接到互联网的,所以我们需要保护它。 我们会做三件事情。
- 重新配置ssh-server,因此它不会允许根登录,并将默认端口22更改为别的东西,较不常见,即60606,
- 设置iptables以允许新端口上的传入连接,
- 添加我们的系统用户,以便通过ssh与他登录。
保护远程登录
如果您尚未从控制台登录到服务器(我的意思是本地控制台,而不是ssh),请以root身份登录,然后执行:
vi /etc/ssh/sshd_config
在第十三个未修改的默认文件(如果你再想知道,键入“:set number”,然后按进入外部插入模式获取行号)有
端口22
指令。 复制它,将端口号更改为60606
并取消注释。
然后找到(外部插入模式按“/”并键入您要查找的短语)PermitRootLogin yes
指令再次重复将其值更改为no
,并取消注释,然后保存该文件。 哦,它是“:noh”来切换突出显示。
之后重新启动sshd:service sshd restart
设置iptables
首先检查已经存在的iptables:
iptables -L -v --line-numbers
在默认安装位置'4'将指令接受新的tcp连接在默认ssh端口,我们需要摆脱它,从而执行:
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添加第一个用户
一切都很好,除了一件事,我们已经禁止自己从ssh,因为root是不允许的,没有其他的系统用户。 时间纠正:
useradd -c "ownCloud system user" -m -n cloudadmin
为此用户设置密码:
passwd cloudadmin
完成 您可以在第一个命令中为用户设置密码,但是在终端窗口中输入密码的值也将被保存在root用户的.bash_history中,这是不可取的。
现在您可以通过ssh在本地计算机上的终端窗口中执行以下命令登录:ssh cloudadmin@192.168.1.100 -p60606
预设步骤
在大多数情况下,软件安装是非常简单的,我们可以在初始安装时对其进行“检查”,但我更愿意手工执行。
我有意将安装分为几个部分。
以超级用户身份登录
在这个时候,你应该在控制台提示中以
clouddmin的
用户身份。 获取root权限执行:su -
软件仓库
为了使用所需的软件,需要两个存储库。
第一个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存储库,如果没有,那么
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm启用= 1
通过执行:vi /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一些其他工具
为了使我的生活更容易一些,我使用vim而不是vi,而不是顶部,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
有四项改变指示,
首先应该在第736行,指令post_max_size
第848行,指令cgi.fix_pathinfo
第885行,指令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
接下来,配置php-fpm使用unix socket而不是tcp stack,执行:
vim /etc/php-fpm.d/www.conf
从十二行,看起来像这样:
;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 on登录postgres作为postgres系统用户,创建数据库用户,数据库和授予权限
su - -c "psql" postgres
CREATE USER clouduser WITH PASSWORD 'userpass';
CREATE DATABASE clouddb OWNER clouduser ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE clouddb TO clouduser;
\q更改postgresql配置文件以允许密码登录:
vim /var/lib/pgsql/data/pg_hba.conf
搜索
# IPv4 local connections:
host all all 127.0.0.1/32 ident并改变它
# IPv4 local connections:
host all all 127.0.0.1/32 password
现在重新启动数据库:
service postgresql restart
nginx网络服务器
安装,设置为开机启动然后停止它:
yum install nginx
service nginx start
chkconfig nginx on
service nginx stop为自己的网站准备配置文件:
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 -in server.csr -signkey server.key -out server.crt重新加载nginx以启用新配置:
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运行
访问网站
打开端口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