PHP Heighlight 語法 與 phps 啓用 (Apache2)

PHP 要秀程式碼, 除了現成的 JavaScript Plugin 等外掛外, 可以使用下述幾種方法:

  • PHP Highlight 的 Function - highlight_string()
  • 或 PHP Highlight 的 Function - highlight_file() 搭配此篇(How do I enable .php file to be color highlight) - 使用 .htaccess + highlight_source.php
    .htaccess如下述:

    Action php-source /var/highlight_source.php
    AddHandler php-source .phps

    highlight_source.php 如下述:
    <?php highlight_file($_SERVER{"DOCUMENT_ROOT"} . $_SERVER{"PATH_INFO"}); ?>

  • 另一個更簡單的方法, 啟用 phps. (*.phps 會自動 Heiglight code, 但是要注意避免把 Source code 不小心公開出去)

PHP 啟用 phps 秀出 Highlight 語法

以前 .phps 預設都是啟用的, 不知哪一版開始預設被關掉了(於 Apache2 關閉 .phps 解析).

開放 phps 的 Apache2 VirtualHost 設定

<VirtualHost *:80>
ServerName blog.longwin.com.tw
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
Order Deny,Allow
Allow from all
</FilesMatch>
</VirtualHost>

關掉 .phps 的設定位於下述檔案: (有上面設定後, 這邊不用動, 這邊修改會讓整個 Apache2 網站通吃, 上面的修改只有那個 VirtualHost 會吃 .phps 的設定)

  • /etc/apache2/mods-available/php5.conf
  • /etc/apache2/mods-available/php5_cgi.conf # 如果有灌 php5-cgi, 這個也會有

<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Order Deny,Allow
Deny from all
</FilesMatch>

想要全部開放, 只要把上述的 Deny for all 改成 Allow for all 就可以了.

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料