免责声明:运行 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。它现在可以正常工作了。
- 清除 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
- 清除 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