您的云,您的数据,你的方式! -  ownCloud 4.0在CentOS 6.2 + nginx + PostgreSQL

你的云,你的数据,你的方式! - 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那样凌乱或沉重。

链接到开发人员的几个部分:

我不保证它会为您工作,因为后来可能会有软件变更,先决条件和主要,这样做将会破坏或无论如何禁止本教程中提到的程序成功完成。
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与他登录。
  1. 保护远程登录

    如果您尚未从控制台登录到服务器(我的意思是本地控制台,而不是ssh),请以root身份登录,然后执行:

    vi /etc/ssh/sshd_config

    在第十三个未修改的默认文件(如果你再想知道,键入“:set number”,然后按进入外部插入模式获取行号)有端口22指令。 复制它,将端口号更改为60606并取消注释。
    然后找到(外部插入模式按“/”并键入您要查找的短语) PermitRootLogin yes指令再次重复将其值更改为no ,并取消注释,然后保存该文件。 哦,它是“:noh”来切换突出显示。
    之后重新启动sshd:

    service sshd restart
  2. 设置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
  3. 添加第一个用户

    一切都很好,除了一件事,我们已经禁止自己从ssh,因为root是不允许的,没有其他的系统用户。 时间纠正:

    useradd -c "ownCloud system user" -m -n cloudadmin

    为此用户设置密码:

    passwd cloudadmin

    完成 您可以在第一个命令中为用户设置密码,但是在终端窗口中输入密码的值也将被保存在root用户的.bash_history中,这是不可取的。
    现在您可以通过ssh在本地计算机上的终端窗口中执行以下命令登录:

    ssh cloudadmin@192.168.1.100 -p60606

预设步骤

在大多数情况下,软件安装是非常简单的,我们可以在初始安装时对其进行“检查”,但我更愿意手工执行。
我有意将安装分为几个部分。

  1. 以超级用户身份登录

    在这个时候,你应该在控制台提示中以clouddmin的用户身份。 获取root权限执行:

    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 
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    现在检查epel和remi存储库,如果没有,那么启用= 1通过执行:
    vi /etc/yum.repos.d/epel.repo 
    vi /etc/yum.repos.d/remi.repo
    最后,更新你的系统。 即使新安装的CentOS也可能需要先更新。 执行:
    yum update -y
  3. 精准时间

    与世界其他地方保持同步,执行:

    yum install ntp 
    service ntpd start
    chkconfig ntpd on
    ntpd
  4. 一些其他工具

    为了使我的生活更容易一些,我使用vim而不是vi,而不是顶部,elinks快速测试内部的终端和mc,作为一个好的,不仅双窗格文件管理器,wget是需要下载的东西和当你想读任何东西时,人都是必不可少的。 执行:

    yum install vim htop elinks mc wget man -y

ownCloud设置

  1. 软件先决条件

    一堆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
  2. 后端 - 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
  3. 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
  4. 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运行

  5. 访问网站

    打开端口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

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏