今天轉換跑道了,最近玩 Apache 玩的很不順,因為只要線上人數一多,就會吃很多記憶體,導致必須重新開 Apache,所以今天來玩看看 lighttpd試試看,看看結果如何,其實轉換到 lighttpd 需要注意很多事情,那就是 Lighttpd 並不支援 .htaccess 檔案,所以 mode_rewrite 功能要設定到 Lighttpd.conf 裡面,然後也去找看看 Lighttpd 的 virtual host 的寫法,然後還有一點就是 wordpress 的 Permalinks 的問題,算是今天都解決了,底下來寫一下作法:
# # 安裝 lighttpd # cd /usr/ports/www/lighttpd; make install clean # # 安裝 php5 # cd /usr/ports/lang/php5; make install clean # # 記得把 [X] FASTCGI Enable fastcgi support (CGI only) 打勾 #不然會出現底下錯誤訊息:
2008-07-03 10:44:06: (mod_fastcgi.c.1036) If you're trying to run PHP as a FastCGI backend, make sure you're using the FastCGI-enabled version. You can find out if it is the right one by executing 'php -v' and it should display '(cgi-fcgi)' in the output, NOT '(cgi)' NOR '(cli)'.底下是 php-cgi -v
PHP 5.2.6 with Suhosin-Patch 0.9.6.2 (cgi-fcgi) (built: Jul 3 2008 10:49:48) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies那如果你沒有支援的話,那就是在 update php5
# # 利用 portupgrade 指令 # portupgrade -rf php5-5.2.6裝好之後呢,其實就差不多了,接下來就是設定 Lighttpd.conf 部份,這部份比較複雜一點,那可以參考官網所提供的說明:
lighttpd wiki,那其實我要做到的就是在web上面擋圖片盜連的功能,所以需要用到 mod_rewrite 的功能,在 apache 作法相當簡單,可以在本站搜尋一下就一堆了,那網路上也很多,那我底下就是在 lighttpd 上面的寫法: 1.首先解決 apache virtual host 的問題:設定如下:
# # 其實看起來不難,設定 log檔案 # $HTTP["host"] == "www.ee.ccu.edu.tw" { server.document-root = "/usr/local/www/apache22/data/www.ee.ccu.edu.tw/" server.errorlog = "/var/log/lighttpd/www.ee.ccu.edu.tw-error_log" accesslog.filename = "/var/log/lighttpd/www.ee.ccu.edu.tw-access_log" server.error-handler-404 = "/index.php" }log檔案,最好是自己建立一個 lighttpd 的目錄,不然根本沒有權限啟動 lighttpd 2.解決 wordpress 的 Permalinks 的問題:
$HTTP["host"] == "blog.wu-boy.com" { server.document-root = "/usr/local/www/apache22/data/Blog/" url.rewrite = ( "^/?$" => "/index.php", "^/(\?.*)$" => "/index.php$1", "^/(wp-.+)$" => "$0", "^/([^.]+)/?$" => "/index.php?$1", ) server.errorlog = "/var/log/lighttpd/blog.wu-boy.com-error_log" accesslog.filename = "/var/log/lighttpd/blog.wu-boy.com-access_log" }這設定相當簡單,大家可以參考看看 3.解決圖片防止盜連的問題:
$HTTP["referer"] !~ "^($|http://(.*\.wu-boy\.com|mini101\.twgg\.org))" { url.access-deny = ( ".JPG", ".JPEG", ".PNG" , ".GIF" , ".jpg" , ".jpeg" , ".png" , ".gif") }這就是要比對 referer 的網址了,其實這樣就可以達到我想要的結果了,可是 lighttpd 好像沒有像是 apache 可以吐出盜連的圖片,也就是把 403 導向一張圖片,lighttpd 好像只可以導向哪一個網頁,這部份還要查查看。
Installing Lighttpd With PHP5 And MySQL Support On CentOS 5.0 Lighttpd-輕量級 Web Server gslin 大大:在 lighttpd 上擋圖片盜連 Lighttpd 防止圖片盜連 lighttpd rewrite rules for WordPress permalink
See also
- 將部落格從 Wordpress 轉換到 Hugo
- 來聊聊 PHP & JavaScript & CSS 的 Coding Style
- 在 WordPress 內寫 Markdown 語法
- 為什麼我選擇使用 Laravel Framework?
- Laravel 搭配 Google, Facebook, Twitter 第三方 OAuth 認證
- 將 wordpress 強制使用 SSL 連線
- PHP 7 vs HHVM Benchmark 比較
- Laravel 50 個小技巧 + Laravel 5.2 新功能
- Laravel Homestead 支援 MySQL 5.7 和 Node 5.0
- PHP-FIG 新網站