我的 Linux 是 Fedora Core 4 (FC4),其 RPM 套件的 PHP 版本是 5.0.4,並沒有將 SQLite 模組包含進去,所以只好另外手動安裝。
1. 下載 SQLite
$ wget http://pecl.php.net/get/SQLite-1.0.3.tgz
2. 解壓縮,開始編譯 ※如找不到 phpize 請安裝「php-devel」套件
$ tar zxvf SQLite-1.0.3.tgz
$ cd SQLite-1.0.3
$ phpize
$ ./configure
$ make
3. 如果編譯錯誤需修改 sqlite.c 檔案
找到:
static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
將它註解掉:
/* static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE }; */
找到:
function_entry sqlite_functions[] = {
PHP_FE(sqlite_open, arg3_force_ref)
PHP_FE(sqlite_popen, arg3_force_ref)
替換為:
function_entry sqlite_functions[] = {
PHP_FE(sqlite_open, third_arg_force_ref)
PHP_FE(sqlite_popen, third_arg_force_ref)
4. 重新編譯及安裝
$ make
$ make install
5. 建立 sqlite.ini 將 SQLite 載入 PHP
$ vi /etc/php.d/sqlite.ini
加入以下內容並存檔離開:
; Enable sqlite extension module
extension=sqlite.so
6. 重新啟動 Apache
service httpd restart
Linux
SQLite, 架站
還原規則:iptables-restore < 檔案名稱
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [355059:275915118]
# 接受確認連線
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 接受 loopback 連線
-A INPUT -i lo -j ACCEPT
# 接受 icmp 封包
-A INPUT -p icmp -j ACCEPT
# 本機特定服務
-A INPUT -p tcp -m tcp --dport 20:21 -j ACCEPT # FTP
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT # SSH
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT # DNS
-A INPUT -p udp -m udp --dport 53 -j ACCEPT # DNS
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT # HTTP
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT # HTTPS
-A INPUT -p tcp -m tcp --dport 65400:65500 -j ACCEPT # FTP PASV
# 其餘全部封殺
-A INPUT -j DROP
COMMIT
Linux
iptables, Linux, 防火牆
在 Fedora Core 的 Bind 設定檔路徑和以往不太一樣,全部都移到了chroot 目錄底下,以提高安全性,底下是變更後的檔案位置:
named.conf
原始: /etc/named.conf
更改為: /var/named/chroot/etc/named.conf
根網域記錄檔
原始: /var/named/named.ca
更改為: /var/named/chroot/var/named/named.ca
正反解記錄檔
原始: /var/named/
更改為: /var/named/chroot/var/named/
接著啟動 named 後您的 DNS Server 就可以正常運作囉!!
Linux, 系統筆記
bind, dns, fedora, Linux
近期迴響