在Ubuntu上从Apache 2.4.7提供减价服务

x33g5p2x  于 2022-11-16  发布在  Apache
关注(0)|答案(2)|浏览(151)

我正在运行Apache/2.4.7(Ubuntu 14.04.3 LTS),并试图访问.md文件,并查看它们格式化为Markdown文件。
如果我把我的浏览器指向一个.md文件,目前我要么得到一个空白页面或未格式化的文本(取决于操作系统和浏览器)。我已经在一些地方寻找,试图解决这个问题:
http://leancrew.com/all-this/2010/08/markdown-handler-for-apache/
http://projects.skurfer.com/Example.mdown
http://blog.tonns.org/2012/10/enabling-markdown-on-your-apache.html
http://marc-abramowitz.com/archives/2012/02/13/markdown-apache-handler/
http://daringfireball.net/linked/2007/05/24/markdown-cgi
https://github.com/chdemko/apache-pandoc,这似乎是最有希望的,因为最后一次提交是在8个月前,README文件中的所有内容似乎至少是相关的。

hpxqektj

hpxqektj1#

您可以使用apache-mod-markdown在apache服务器上显示md树。
对于许多基于Debian的发行版(它在Ubuntu 14.04LTS上运行良好),您应该安装:

sudo apt-get install libmarkdown2-dev
sudo apt-get install apache2-threaded-dev

对于模块构建,您可能需要以下库:

sudo apt-get install autoconf
sudo apt-get install libtool

然后下载并解压缩存档文件,并像这样构建模块...

autoreconf -f -i
./configure --with-apxs=/usr/bin/apxs2 --with-discount=/usr
make

并将其复制到安装目录,如下所示:

sudo mkdir -p /opt/misc/apache-mod-markdown/ 
sudo cp ./.libs/libmodmarkdown.so /opt/misc/apache-mod-markdown/mod_markdown.so

然后配置Apache:

echo 'LoadModule markdown_module /opt/misc/apache-mod-markdown/mod_markdown.so' > /etc/apache2/mods-available/markdown.load
touch /etc/apache2/mods-available/mardown.conf

在apache中启用模块:

sudo a2enmod markdown

以下是一个vhost配置示例:

Alias /docs/ /home/web/docs/
<Directory /home/web/docs/>
    AddHandler markdown .md
    DirectoryIndex index.md
    Options +Indexes
    Order allow,deny
    Allow from all
    MarkdownCss /docs/css/stylesheet.css
</Directory>

你可以看看这个tutorial(法语)的进一步信息

h4cxqtbf

h4cxqtbf2#

如果你不是特别关心高流量的话,可以使用外部过滤器来显示Markdown文件(这不是特别有效)。要做到这一点,你需要在apache上安装mod_ext_filter mod并进行适当的配置:
安装您选择的markdown到html转换器(例如pandoc,multimarkdown等)
启用ext_filter模式:

sudo a2enmod ext_filter

编辑配置文件:

#Define markdown to html filters
ExtFilterDefine md-pandoc-to-html mode=output intype=text/markdown outtype=text/html cmd="/usr/local/bin/pandoc"
ExtFilterDefine md-multimarkdown-to-html mode=output intype=text/markdown outtype=text/html cmd="/usr/local/bin/multimarkdown"

#Define the filter to use in the appropriate directories/locations:
<Location /tst-md>
    ...
    SetOutputFilter md-pandoc-to-html
</Location>
<Location /tst-md/pandoc>
    SetOutputFilter md-pandoc-to-html
</Location>
<Location /tst-md/multimarkdown>
    SetOutputFilter md-multimarkdown-to-html
</Location>

重新启动apache:

sudo apache2ctl -k graceful

请注意,由于缓存的原因,您可能需要重新加载以前查看过的任何url。

相关问题