我想要自动生成索引,与下面的示例非常相似。对于我在互联网上的网站,我的网络主机正确配置了 Apache,现在我需要在 Synology NAS 上为我们的内联网执行此操作。
根据这个答案我将其放入Options +Indexes
一个.htaccess
文件中,但它还没有起作用。网络搜索让我将其添加AllowOverride All
到 Apache 配置中,我尝试在/usr/local/etc/apache24/conf/httpd24.conf
找到的文件中执行此操作(请参阅下面编辑中的配置文件)。但是,该条目已存在于第 76 行:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
出于测试目的,相应的目录包含旧的(重命名的)_index.html
文件和foo.html
,可以使用例如以下方式访问192.168.1.2/index.html
:
$ ls /volume1/web/
@eaDir foo.html _index.html
应该foo.html
像下图这样列出。
目前我分别得到 404http://192.168.1.2/index.html
和 500。显示我的网站。http://192.168.1.2/
http://192.168.1.2/foo.html
所以,看来我陷入困境,不知道该如何继续。有什么想法吗?
例子:
笔记:我正在DSM 6.2.4-25556
使用linux4.4.59+ x86_64
内核运行并且Apache 2.4
运行。
编辑
以下是原始的 Apache 配置文件(未改变):
$ cat httpd24.conf
ServerRoot "/usr/local/etc/apache24"
Listen 127.0.0.1:915
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule cgid_module modules/mod_cgid.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule unixd_module modules/mod_unixd.so
<IfModule unixd_module>
User http
Group http
</IfModule>
ErrorLog /run/apache24-error_log
TraceEnable off
LogLevel error
<IfModule log_config_module>
LogFormat "%{X-Real-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Real-IP}i %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%{X-Real-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog /dev/null combined
#CustomLog /run/apache24-access_log combined
</IfModule>
<IfModule cgid_module>
ScriptSock /run/httpd/user-cgisock
</IfModule>
<IfModule mime_module>
TypesConfig conf/mime.types
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType image/x-icon .ico
AddHandler cgi-script .cgi
</IfModule>
MIMEMagicFile conf/magic
EnableMMAP off
# TODO: AllowOverride of root directory to All ??
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
# TODO: should apache handle this or nginx?
<IfModule deflate_module>
DeflateCompressionLevel 2
AddOutputFilterByType DEFLATE text/html text/plain text/xml
AddOutputFilter DEFLATE js css
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.[0678] no-gzip
BrowserMatch \bMSIE\s7 !no-gzip !gzip-only-text/html
</IfModule>
# TODO: should apache handle this or nginx
<Files ~ "^\.([Hh][Tt]|[Dd][Ss]_[Ss])">
<IfModule authz_core_module>
Require all denied
</IfModule>
</Files>
<VirtualHost _default_:80 _default_:443>
DocumentRoot "/var/services/web"
Alias /_webstation_/ "/var/packages/WebStation/target/error_page/"
</VirtualHost>
# TODO: Should apapche handle FileETag
# For CVE-2003-1418
FileETag MTime Size
Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-languages.conf
Include conf/extra/mod_xsendfile.conf
Include conf/extra/mod_rpaf.conf
IncludeOptional sites-enabled/*.conf
内容sites-enabled
:
$ ls /usr/local/etc/apache24/sites-enabled
httpd-vhost.conf webstation-default.conf
$ cat /usr/local/etc/apache24/sites-enabled/httpd-vhost.conf
Alias /_webstation_/ "/var/packages/WebStation/target/error_page/"
ErrorDocument 400 /_webstation_/400.html
ErrorDocument 401 /_webstation_/401.html
ErrorDocument 402 /_webstation_/402.html
ErrorDocument 403 /_webstation_/403.html
ErrorDocument 404 /_webstation_/404.html
ErrorDocument 405 /_webstation_/405.html
ErrorDocument 406 /_webstation_/406.html
ErrorDocument 407 /_webstation_/407.html
ErrorDocument 408 /_webstation_/408.html
ErrorDocument 500 /_webstation_/500.html
ErrorDocument 501 /_webstation_/501.html
ErrorDocument 502 /_webstation_/502.html
ErrorDocument 503 /_webstation_/503.html
ErrorDocument 504 /_webstation_/504.html
ErrorDocument 505 /_webstation_/505.html
$ cat /usr/local/etc/apache24/sites-enabled/webstation-default.conf
<Directory "/var/services/web">
<FilesMatch "\.(php[345]?|phtml)$">
Redirect 500
</FilesMatch>
Options MultiViews FollowSymLinks ExecCGI
AllowOverride All
<IfModule authz_core_module>
Require all granted
</IfModule>
<IfModule dir_module>
DirectoryIndex index.html index.htm index.cgi index.php index.php5
</IfModule>
</Directory>
答案1
有任何想法吗?
一段<Directory>
通常需要目录.因此您可能想尝试例如:
<Directory "/path/to/your/httpd/htdocs">
Options FollowSymLinks
AllowOverride All
</Directory>
补充评论
如果我重复了您已经知道的内容,请原谅我。=)
<Directory>
部分通常应用于相应的<VirtualHost>
。因此,例如,要将一个部分应用于默认 的根目录<VirtualHost>
,您可以使用:<VirtualHost _default_:80 _default_:443> DocumentRoot "/var/services/web" Alias /_webstation_/ "/var/packages/WebStation/target/error_page/" <Directory "/var/services/web"> Options FollowSymLinks AllowOverride All </Directory> </VirtualHost>
您可能不应该按照上面的建议操作。相反,验证是否
sites-enabled
包含(最有可能)指向 eg 的符号链接sites-available
以及其下的某些文件。然后尝试更新 ex 下相关的任何虚拟主机sites-available
。假设
/volume1/web/
实际上是您想要索引的文件所在的位置,则可能不应该有尾随斜杠(例如,您可能想要使用/volume1/web
)。我不确定 DSM 是基于什么的,但对于过去需要添加虚拟主机文件
sites-enabled/sites-available
等功能的发行版来说,这很常见。话虽如此,我怀疑这不适用于仅更新现有文件。sudo a2ensite some.conf
.conf
任何更新之后,您都需要重新启动 Apache(例如类似的
sudo systemctl restart apache2
)。