运行ownCloud 5.0在Nginx(LEMP)在Debian Wheezy

本教程将介绍如何在a上安装和运行ownCloud 5.0 Debian Wheezy系统安装了nginx而不是Apache(LEMP = Linux + ng ...

在Nginx(LEMP)上运行ownCloud 5.0在Debian Wheezy上

本教程将展示如何在安装了nginx而不是Apache的Debian Wheezy系统上安装和运行ownCloud 5.0(LEMP = L inux + nginx(发音为“ e ngine x”)+ M ySQL + P HP)。 nginx是一个HTTP服务器,比Apache使用的资源少得多,并且提供了更快的网页,特别是静态文件。

我不会保证这将为您工作!

1初步说明

我想在一个名为www.example.com / example.com的vhost中安装ownCloud,其中包含文档根/var/www/www.example.com/web

您应该有一个工作的LEMP安装,如本教程所示:

2安装APC和一些其他要求

APC是一个免费开放的PHP操作码cacher,用于缓存和优化PHP中间代码。 它类似于其他PHP操作码cacher,如eAccelerator和XCache。 强烈建议您安装其中一个以加快您的PHP页面。

APC可以安装如下:

apt-get install php-apc

安装其他一些要求:

apt-get install php-xml-parser php5-intl php5-sqlite php5-mysql smbclient curl libcurl3 php5-curl

重新载入PHP-FPM如下:

/etc/init.d/php5-fpm reload

3安装ownCloud

我的www.example.com网站的文档根目录是/var/www/www.example.com/web - 如果不存在,创建如下:

mkdir -p /var/www/www.example.com/web

下载将ownCloud从ownCloud网站下载到您的服务器,解压缩并将其放在文档根目录中:

cd /tmp
wget http://download.owncloud.org/community/owncloud-5.0.13.tar.bz2
tar xvfj owncloud-5.0.13.tar.bz2
rm -f owncloud-5.0.13.tar.bz2
cd owncloud
mv * .htaccess /var/www/www.example.com/web/

建议使用作为用户www-data和group www-data运行的nginx守护进程将文档根和ownCloud文件写入:

chown -R www-data:www-data /var/www/www.example.com/web

如果还没有为ownCloud创建MySQL数据库(包括MySQL ownCloud用户),可以按照以下方式进行操作(在本示例中,我将数据库命名为owncloud ,用户名为owncloud_admin ,密码为owncloud_admin_password ):

mysqladmin -u root -p create owncloud

mysql -u root -p

GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud_admin'@'localhost' IDENTIFIED BY 'owncloud_admin_password';
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud_admin'@'localhost.localdomain' IDENTIFIED BY 'owncloud_admin_password';

FLUSH PRIVILEGES;

quit;

接下来,我们在/ etc / nginx / sites-available /目录中为www.example.com vhost创建一个nginx vhost配置,如下所示:

vi /etc/nginx/sites-available/www.example.com.vhost

server {
       listen 80;
       server_name www.example.com example.com;
       root /var/www/www.example.com/web;

       if ($http_host != "www.example.com") {
                 rewrite ^ http://www.example.com$request_uri permanent;
       }

       index index.php index.html;

       location = /favicon.ico {
                log_not_found off;
                access_log off;
       }

       location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
       }

       # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
       location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
       }

        client_max_body_size 10G; # set max upload size

        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
        rewrite ^/apps/calendar/caldav.php /remote.php/caldav/ last;
        rewrite ^/apps/contacts/carddav.php /remote.php/carddav/ last;
        rewrite ^/apps/([^/]*)/(.*\.(css|php))$ /index.php?app=$1&getfile=$2 last;
        rewrite ^/remote/(.*) /remote.php last;

        error_page 403 = /core/templates/403.php;
        error_page 404 = /core/templates/404.php;

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
                        deny all;
        }

        location / {
                        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$is_args$args;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
                        try_files $1 =404;
                        include fastcgi_params;
                        fastcgi_param SCRIPT_FILENAME $document_root$1;
                        fastcgi_param PATH_INFO $2;
                        fastcgi_param HTTPS $https;
                        fastcgi_pass unix:/var/run/php5-fpm.sock;
                        fastcgi_intercept_errors on;
                        fastcgi_index index.php;
                        fastcgi_buffers 64 4K;
        }

        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                        expires 30d;
                        access_log off;
        }
}

要启用vhost,我们从/ etc / nginx / sites-enabled /目录创建一个符号链接:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost

重新加载nginx以使更改生效:

/etc/init.d/nginx reload

现在,我们可以通过访问http://www.example.com启动基于Web的ownCloud安装程序 - 为管理员帐户填写用户名和密码,然后单击高级 。 然后向下滚动...

...并点击MySQL 。 这将使数据库详细信息的输入字段出现。 填写您的数据库详细信息,然后单击完成设置

如果一切顺利,您应该看到欢迎来到ownCloud消息:

安装完成后,您可以开始使用ownCloud: