在CentOS 6.5中安装ownCloud with SSL和Nginx

在CentOS 6.5中安装ownCloud with SSL和Nginx CentOS已升级了很多软件包,我写了1年前的帖子不再工作在Cent ...

在CentOS 6.5中使用SSL和Nginx安装ownCloud

版本:3.0
作者:亚伦

CentOS已经升级了很多软件包,而且我在1年前写过的文章不再适用于CentOS 6.5,而且更新到最新版本。

我做了一个研究,看起来这将是2014年的第一个教程,如何使用nginx,postgresql和ssl在centos中安装owncloud。 因为大多数人不知道如何解决简单的问题,您现在不会使用nginx来查找CentOS和owncloud安装。

我的服务器受到影响,这是今天让我写这篇文章的原因。

EPEL和CentOS repos中的软件包已经过时,而nginx,postgresql和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
enabled=1

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

使用remi repo做同样的事情,但确保启用php版本5.6,

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



创建一个nginx repo配置文件

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

安装以下软件包以满足自己的要求:

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并进行设置

post_max_size = 2G

#搜索cgi.fix_pathinfo,取消注释并进行设置

cgi.fix_pathinfo = 0

#搜索upload_max_filesize并进行设置

upload_max_filesize = 2G

#搜索date.timezone,取消注释并进行设置

date.timezone = "your/timezone"

编辑php-fpm配置文件,以便使用tcp而不是unix套接字

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 - 注意光标在下图中:


重新启动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; # replace with your domain name or internal server ip
        return 301 https://$server_name$request_uri;  # enforce https
}


server {
        listen 443 ssl;
        server_name 10.10.10.110; # replace with your domain name or internal server ip

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

        # Path to the root of your installation
        root /var/www/owncloud/;

        client_max_body_size 10G; # set max upload size
        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 / {
                # The following 2 rules are only needed with 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;
        }

        # Optional: set long EXPIRES header on static assets
        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires 30d;
                # Optional: Don't log access to assets
                access_log off;
        }

}

我已经将这个nginx配置文件上传到我的网站,所以反而手动输入wget http://linux.sytes.net/img/nginx1-6.conf.txt ,并将其重命名为cloud.conf

正如您在上面的nginx“虚拟主机”中指定的,我们自己的Cloud服务器将使用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文件夹的权限。 请注意,我们将下载自己的开发版本。

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

允许将tcp连接到您的服务器端口:80和443.如果您或其他人呼叫您的服务器内部ip,将重定向到https:// yourserverinternalip,因为您在早期指定了nginx“虚拟主机”。

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。 选择您喜欢的任何登录名和密码。