如何为 ownCloud 设置 apache2 服务器?

如何为 ownCloud 设置 apache2 服务器?

免责声明:运行 Linux Mint 14 MATE

我看到到处都说运行 ownCloud 时必须为 Apache2 服务器启用 .htaccess。但是没人说在哪里可以做到这一点!

我有 owncloud 的数据运行于

  • /var/lib/owncloud/数据
  • 并将 750 GB 硬盘安装到 /var/lib/owncloud/data(我无法让 owncloud 访问 /media/750GB/data)

nano nano /etc/apache2/sites-enabled/000-default 导致:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride All <-I switched this from NONE*************
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all <-I switched this from NONE*************
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined


</VirtualHost>

我甚至没有看到其中有 owncloud 的目录。只有 /var/www,但我的 owncloud 数据是从 /var/lib/owncloud/data 运行的。我如何为该文件夹设置.htaccess?

这样 ownCloud 管理页面中的以下错误就会消失:

您的数据目录和文件可能可以通过互联网访问。ownCloud 提供的 .htaccess 文件不起作用。我们强烈建议您配置 Web 服务器,使数据目录不再可访问,或者将数据目录移出 Web 服务器文档根目录。

ownCloud 提供的.htaccess 文件在哪里?

是这个吗?

/usr/share/owncloud/.htaccess

该文件的内容:

ErrorDocument 403 /owncloud/core/templates/403.php
ErrorDocument 404 /owncloud/core/templates/404.php
<IfModule mod_php5.c>
php_value upload_max_filesize 1000M
php_value post_max_size 1000M
php_value memory_limit 512M
<IfModule env_module>
  SetEnv htaccessWorking true
</IfModule>
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^.well-known/host-meta /public.php?service=host-meta [QSA,L]
RewriteRule ^.well-known/carddav /remote.php/carddav/ [R]
RewriteRule ^.well-known/caldav /remote.php/caldav/ [R]
RewriteRule ^apps/([^/]*)/(.*\.(css|php))$ index.php?app=$1&getfile=$2 [QSA,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
</IfModule>
Options -Indexes

答案1

为了使 htaccess 正常工作,必须激活 mod_rewrite.so。看这里

根据您的 Linux 发行版,此操作方式不同。

对于 Ubuntu 来说,这很简单

root@VSRV0301 ~# a2enmod rewrite

要为 www-root 之外的特定文件夹激活 htaccess,只需添加

<Directory /var/lib/owncloud> # or the folder owncloud lives in
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all <-I switched this from NONE*************
</Directory>

你的 apache 配置应该可以工作。

答案2

我最终删除了 apache2 和 owncloud 3.0 或任何其他版本,并使用 owncloud 4.5.7 重新安装了 apache2。它现在可以正常工作了。

  1. 清除 Apache2有了这个邮政

sudo 服务 apache2 停止

  • 删除 apache2 包和依赖项:

sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common sudo apt-get autoremove --purge

  • 如果您手动修改或安装了某些内容,apt 可能不会将其删除。检查剩余的内容:

Apache2 在哪里

  • 查看这些目录中的内容,如果您确定要删除它,请手动删除这些目录。 就我的情况而言:

sudo rm -Rf /etc/apache2 /usr/lib/apache2 /usr/include/apache2


  1. 清除 owncloud

sudo apt-get——purge 删除 owncloud

  • 尝试查找任何残留文件并删除它们

sudo rm -r /var/lib/owncloud

  • 删除 MySQL 数据库

mysql -u root -p 删除数据库 owncloud;

  • 从 mysql 中删除 oc 用户

我忘记了命令,我会尝试再次弄清楚。


ownCloud 4.5.7 按照此过程在 xUbuntu 12.10 下进行实际的 apt-get 安装的部分:

http://software.opensuse.org/download.html?project=isv:ownCloud:community&package=owncloud

以及 .htaccess 和其余内容的以下内容

http://samiux.blogspot.co.at/2013/02/howto-owncloud-with-apache-on-ubuntu.html

现在一切都正常了,数据不再位于/var/lib/owncloud,而是/var/www/owncloud 有一个 .htaccess 文件/var/www/owncloud/数据 数据集中所有文件的权限为 www-data:www-data

相关内容