10月 29

Windows下IIS+PHP 5.2的安裝與配置
Windows下PHP的安裝雖然簡單,但如果不注意方法,仍然會讓你頭疼。此外,PHP 5.2版本與之前4.x版本也有一些不同,所以有必要記錄一下,避免下次忘記了這樣的安裝配置方法。

步驟一:下載php 5.2 for windows的安裝包,解壓至C:\php。注意此解壓目錄可以是在任何盤下,然而目錄名不能包含空格;
以下是php5.2的檔目錄:
c:\php
|
+–dev
| |
| |-php5ts.lib
|
+–ext — extension DLLs for PHP
| |
| |-php_bz2.dll
| |
| |-php_cpdf.dll
| |
| |-..
|
+–extras
| |
| +–mibs — support files for SNMP
| |
| +–openssl — support files for Openssl
| |
| +–pdf-related — support files for PDF
| |
| |-mime.magic
|
+–pear — initial copy of PEAR
|
|
|-go-pear.bat — PEAR setup script
|
|-fdftk.dll
|
|-..
|
|-php-cgi.exe — CGI executable
|
|-php-win.exe — executes scripts without an opened command prompt
|
|-php.exe — CLI executable - ONLY for command line scripting
|
|-..
|
|-php.ini-dist — default php.ini settings
|
|-php.ini-recommended — recommended php.ini settings
|
|-php5activescript.dll
|
|-php5apache.dll
|
|-php5apache2.dll
|
|-..
|
|-php5ts.dll — core PHP DLL
|
|-…

步驟二:將c:\php目錄下的php.ini-recommended(或php.ini-dist檔,官方推薦為前者)複製到當前目錄,並修改檔案名為php.ini;

步驟三:編輯php.ini。主要修改如下兩行的值:
extension_dir = “c:\php\ext”
doc_root = “c:\inetpub\wwwroot”

修改時需要刪除掉這兩行行首的;注釋。extension_dir的值為php安裝目錄下的ext目錄,doc_root的值為IIS設置的主目錄;

步驟四:設置環境變數。在Path後添加如下的值:
;:\php
然後重啟電腦。

步驟五:打開Internet資訊服務,找到“默認網站”,將網站停止。然後打開“屬性”頁。在“屬性”頁中找到“主目錄”標籤,單擊“配置”按鈕,添加應用程式映射。其值分別為:
可執行檔:c:\php\php5isapi.dll
副檔名:.php
其餘不用修改,確定後,重新啟動默認網站;

步驟六:在c:\inetpub\wwwroot下新建一個檔hello.php。輸入內容:

保存後,打開流覽器,輸入位址:http://localhost/hello.php。如果網頁中顯示Hello world則說明安裝正確。我們也可以在網頁中通過查看hello.php的源代碼,如果源代碼中沒有php代碼,也說明安裝是正確的。
Source: http://www.cnblogs.com/wayfarer/archive/2007/02/06/642439.html

10月 29
VMware to VirtualBox
icon1 ken666 | icon2 未分類 | icon4 10 29th, 2007 @ 05:10 am| icon3沒有留言 »

VMware to VirtualBox

My tests with VirtualBox went well enough that I decided to move my webserver and mailserver VMs to it (from VMware Workstation 6 beta). VMware does the job great, but VBox is open source and a little faster. So the machine serving this page to you is now running in VirtualBox )

The conversion process isn’t exactly straightforward, though. Unfortunately there’s currently no tools which can convert a VMware hard disk image into a VirtualBox one. So with help from the guys in #mdv-cooker IRC - especially Colin Guthrie, thanks Colin - I used the following method.

Basically we’re going to keep the VMware machine running, create a new VirtualBox machine with an empty hard disk, boot it with a rescue CD, and rsync the entire system from the VMware machine to the VirtualBox one.

So, first of all, make the VMware machine as static as you can - stop all unnecessary services, etc. Just so no changes get lost in transition.

Now, run VirtualBox, create a new machine with whatever settings you like. Get the System Rescue CD image, and set that image as the CD drive for the VirtualBox machine. Boot it up.

Now set up the partitions on the hard disk - sysresccd has gparted, but I didn’t use it, I just used fdisk, mkfs.ext3 and mkswap. It’s obviously easiest if you’re just going with a / and a swap partition, but you can adjust this for more complex cases. Once the partitions are done, mount them somewhere - I just used a single partition, and mounted it as /mnt/new .

You need to have rsync installed on both machines, and an ssh server running on the VMware machine and an ssh client on the VirtualBox machine. You also need to be able to transfer files as root from the VMware machine to the VirtualBox machine, so you must either set up keys appropriately or set the ssh server config to allow password-based login and allow direct root login. Obviously change these settings back to something more secure afterwards.

Once all that’s set up, run this command:

rsync -avWHS -e ssh --exclude /proc --exclude /sys --exclude /dev --delete root@vmware:/ /mnt/new

where ‘vmware’ is the name or IP address of the VMware machine, and /mnt/new is wherever you mounted your new root partition on the VirtualBox machine. Then wait for a while. The entire machine will be rsynced across.

Now there’s just some cleaning up to do. First, check /mnt/new/etc/fstab - I’d switched from hda1 as swap and hda5 as root to hda1 as root and hda5 as swap, so I had to adjust that. Also check /mnt/new/etc/lilo.conf for similar issues, and /mnt/new/etc/modprobe.conf (depending on what hardware you had set up in the VMware and what you have in the VirtualBox, you may have to change something here). Also, create the directories /mnt/new/proc and /mnt/new/sys (Mandriva at least will fail to boot if these don’t exist).

Finally, you need to create the /dev tree and install the bootloader, and to do that, we have to chroot. Do chroot /mnt/new. If it complains about /bin/zsh not being found, you don’t have zsh installed on the VM - just copy the file from /bin/zsh to /mnt/new/bin/zsh and try again.

In the chroot, simply run makedev /dev and then lilo (assuming lilo is your bootloader, of course). Now everything is done. You won’t be able to power down normally, so just shut off the machine via the VirtualBox menu. Unmount the CD image and boot up again, and the machine should boot just as normal.

The other thing I had trouble with was setting up host-based networking - bridged networking, effectively. As with VMware, you need this method of giving the VM a network connection if you want the machine to be accessible from the outside world (as I obviously do). The instructions in the VirtualBox manual don’t work as printed, they seem to be incomplete. I’m very grateful to the author of this post on the Ubuntu forums, who figured out the whole process. You need the tunctl and brctl utilities. In Mandriva, they’re in the tunctl and bridge-utils packages respectively. These are the commands you have to run, on the host machine, as root:

tunctl -t tap0 -u user (where user is the user who runs VirtualBox)
chmod 666 /dev/net/tun (or add user running VirtualBox to the ‘tun’ group, on MDV)
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc (where eth0 is the interface to be bridged)
brctl addif br0 eth0
dhclient br0
brctl addif br0 tap0
ifconfig tap0 192.168.1.50 up (where 192.168.1.50 is an arbitrary unused IP in the same subnet as your local network)
echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp
route add -host 192.168.1.5 dev tap0 (where 192.168.1.5 is the IP address of the host machine)
arp -Ds 192.168.1.5 eth0 pub (where 192.168.1.5 is the IP address of the host machine)

After that, I had to figure out how to create additional tap interfaces, as I want to run two VMs and they can’t share. You don’t need a second bridge, you can use the same one. These are the necessary commands:

tunctl -t tap1 -u user (where user is the user who runs VirtualBox)
brctl addif br0 tap1
ifconfig tap1 192.168.1.51 up (where 192.168.1.51 is an arbitrary unused IP in the same subnet as your local network, not the same as tap0)
echo 1 > /proc/sys/net/ipv4/conf/tap1/proxy_arp
route add -host 192.168.1.5 dev tap1 (where 192.168.1.5 is the IP address of the host machine)

Obviously you can adjust that set of commands to create a tap2, tap3 etc - as many as you need. Then you just assign one tap* interface per VirtualBox machine.

With these settings, if all goes well, the VirtualBox machine can get its own IP address on your local subnet, just as with VMware’s bridged networking mode.

VirtualBox is currently only packaged for Cooker in Mandriva. As my VM host machine runs 2007.0, I backported it to 2007.0 for this setup. The packager doesn’t want to put the current version into the official 2007.0 /backports repository as he doesn’t consider it stable enough, but if anyone’s interested in my backported packages (I also backported tunctl, which isn’t in 2007 either), I can provide them on request.

source: http://www.happyassassin.net/2007/02/06/vmware-to-virtualbox/

10月 29
VMware 和 Virtualbox 的對比
icon1 ken666 | icon2 未分類 | icon4 10 29th, 2007 @ 05:10 am| icon3沒有留言 »

source: http://forum.ubuntu.org.cn/viewtopic.php?t=62195&start=0&sid=bce5ae3f6db3710e1e308983a89b635f

幾星期前我的XP出了個毛病,每隔幾分鐘就出現鍵盤和滑鼠沒有回應,持續5、6秒鐘,懷疑是病毒所致,可 是卻無從下手。加上這段時間大多數時間都在 ubuntu 下面,使用感覺很不錯,於是有了使用它作為主作業系統的想法。可是我的工作要求使用windows下的工具進行編程和測試,完全擺脫windows是不可 能了,只好在ubuntu裏面用虛擬機裝個XP。我的想法是這個XP只是工作用,越簡單越好,只裝必要的軟體,並且不給它上網,從而避免病毒和木馬的騷 擾。這段時間一直在VirtualBox和Vmware之間騎牆,對這兩個虛擬機有了一定的瞭解,做一下總結吧。
先介紹一下基本情況。我有兩台電腦,家裏是一個臺式機,公司裏有一個筆記本,ubuntu 7.04是裝在移動硬碟裏兩台機器共用的。虛擬機用的是VirtualBox 1.4.0和Vmware player 2.0.0 build-45731。Guest OS是Windows XP SP2。

1、易用性
兩個虛擬機都挺好用的,安裝了各自的guest os工具後感覺相當好。不過它們也各有缺點。
VirtualBox總是出一些莫名其妙的毛病。我的ubuntu空間不夠用了,所以我把虛擬硬碟放在移動硬碟的FAT32分區上,然後做了個鏈 接過來,結果VirtualBox在臺式機上啟動後總說我的虛擬機Inaccessiable。有時說WinXP.vdi已經附屬於另一個虛擬機了,有時 說 Snapshot folder不可訪問,讓我放棄所有snapshots再試。可是這時在裏面根本無法編輯虛擬機的選項,就算想放棄也沒辦法啊,這點顯得有點弱智。我檢查 過所有鏈結和檔許可權都沒問題,而且換在筆記本上也是好好的沒這些毛病,真是一點辦法都沒有。VirtualBox的共用剪貼板有很多可選設置,比 Vmware player更靈活些。
Vmware我裝的是免費的player,所以功能上難免有些限制,改動配置基本靠編輯配置檔。其他還好了,反正很少改,就是改變光碟機屬性有 點麻煩,在物理光碟機和 ISO檔間切換時需要關閉guest os,編輯配置檔後重啟。至於在ISO檔間切換比較好辦,在配置檔裏只是寫一個檔鏈結,需要改變時讓鏈結指向不同的檔即可。Vmplayer全 屏顯示時會在螢幕頂端顯示一個工具條,可以用來最小化、還原、關閉虛擬機,對習慣滑鼠操作的人可能更方便些。Vmare player不支持snapshot,這個的確不大好。

2、速度
VirtualBoxVirtualBox的顯示乾淨俐落,一點都不拖泥帶水,給人的感覺是運行速度很快,尤其是開機時顯示的畫面挺順暢的。
Vmware起初在我的筆記本裏運行速度很慢,啟動、關機明顯比VirtualBox慢,程式運行速度似乎還行。不過讓人難以接受的就是系統時 間,基本是每隔7、8秒虛擬機裏才跳1秒,即使打開vmware tools的時間同步也經常比host機的時間慢1~5分鐘,這對於編譯程序是不可接受的,可能會造成make誤以為某些需要編譯的模組已經編譯過了。而 且其他一些用到計時的程式(比如ping)也不正常。但是在我的臺式機上就沒有時間變慢這個問題。在網上搜了一下,發現這是一個有悠久歷史的問題,按照某 些方法加了內核參數不起作用,昨天終於找到了問題所在:

代碼:

cat /sys/module/processor/parameters/max_cstate

我的筆記本裏這個值是8,解決方法很簡單,只要一行命令:

代碼:

echo 1 > /sys/module/processor/parameters/max_cstate

執行完後立竿見影,guest os的時間立刻就跟上了,而且運行速度也明顯加快,編譯程序時感覺就像在真實的機器裏一樣快,真舒坦。
感覺往往是不準確的,所以我進行了一下測試。兩個虛擬機的運行環境基本一樣,都是只配了硬碟、記憶體(320M)和網卡,都是通過samba訪問 host機上的原始檔案,裝的軟體都只是編譯必需的,只是vmware的虛擬機裏多了一個cooledit,測試時都是開機後直接運行編譯命令,編譯同一個 工程的用時結果如下(所有的時間都是用host機記錄的,虛擬機裏的時間不准,尤其vmware差異較大):
ubuntu 7.04 + VirtualBox 1.4.0 + 虛擬XP: 3′36″
ubuntu 7.04 + Vmware player 2.0.0 b45731 + 虛擬XP: 1′42″
真實的XP環境: 1′13″
結果真是讓人難以置信啊,差距大的有點離譜,不過卻是事實。Vmware的速度是可以接受的,畢竟是虛擬機,而且訪問檔時繞了那麼多彎子。VirtualBox就有點過分了,無論是檔讀寫還是編譯原始檔案速度都比其他兩個慢。
後來又測試了VirtualBox另外兩種記憶體配置下的編譯速度,結果沒有什麼改觀:
ubuntu 7.04 + VirtualBox 1.4.0 + 虛擬XP(128M記憶體): 4′17″
ubuntu 7.04 + VirtualBox 1.4.0 + 虛擬XP(256M記憶體): 4′02″
以上速度測試涉及網路、記憶體等綜合因素,尤其是vbox的測試,每次測試變化幅度較大,僅供類似使用環境參考。
為了排除網路速度的影響,我又使用super pi 1.2測試了一下104萬位的計算時間,結果兩個虛擬機都是47秒,看來virtualbox的網速真是大大拖了它的後腿。

3、虛擬硬碟
VirtualBox一個虛擬硬碟一個檔,在FAT32檔系統上每個虛擬硬碟最大只能是4G,可能不太夠用。
Vmware的虛擬硬碟可以分割成若干個2GB大小的檔,對於FAT32這樣的檔系統很有用。我感覺linux對ntfs的寫操作依然不是很穩定,所以我的移動硬碟還是使用FAT32分區,所以對我來說Vmware更好用。

4、USB支持
VirtualBox的USB支援比較麻煩,需要先解決許可權的問題。開始時我用添加usbfs用戶組的方法:

代碼:

sudo addgroup usbfs

注意usbfs組的id號,假如是1002
然後修改/etc/fstab
添加一行

代碼:

none /proc/bus/usb usbfs devgid=1002,devmode=664 0 0

把當前帳號加入到usbfs組中

代碼:

sudo usermod -G usbfs -a your_account

結果上面的方法不起作用,後來找到另一個方法:
編輯 /etc/udev/rules.d/40-permissions.rules
找到這行:

代碼:

SUBSYSTEM==”usb_device”, MODE=”0664″

改成

代碼:

SUBSYSTEM==”usb_device”, MODE=”0666″

終於搞定了。
Vmware的USB使用就簡單多了,直接點按鈕就連接上了。

5、音頻
我做的工作跟音頻有關,所以對於音頻要求還是挺高的。
VirtualBox的音頻不是很好,用它自帶的虛擬音效卡播放時經常會卡一下。用USB耳機就更慘了,斷斷續續的,似乎有聲的時候比無聲的時候還少。
Vmware的音頻相當好,無論用內置的虛擬音效卡還是USB耳機都播放的很順暢。

6、共用檔夾
兩個虛擬機的共用文件夾實現都不完美,讀、寫文件都沒問題,不過設置檔屬性(比如修改時間)都不行,本來想用共用檔夾訪問需要編譯的源碼的,由於不能設置檔屬性造成編譯程序出錯,只好作罷。
VirtualBox下使用共用檔夾有時會出錯,不太穩定。使用共用檔夾需要使用命令行來建立映射:

代碼:

net use x: \\vboxsvr\[共用檔夾名稱]

ubuntu 7.04裏面的Vmware player比較舊,不支持共用檔夾,從vmware網站上下載一個最新的裝上就行了。安裝過程很簡單,基本一路回車。說明文件說可以在網路鄰居上流覽 到共用檔夾,可是我的系統裏在網路鄰居裏沒看到任何東西,不過通過搜索電腦“.host”找到了,然後直接映射就行了。它的共用文件夾比較穩定,我這 裏還沒有出過問題。

7、網路
為了遠離病毒和木馬,本來不想給虛擬機配置網卡的,可是由於上面提到的共用檔夾的問題,只好通過網路來訪問host機上通過samba共用的檔。不過我只希望guest和host之間通訊,不需要連到外面的網上。
VirtualBox我用的是NAT,這種方式配置最簡單,host機上不需要做任何操作。guest機啟動後就可以通過dhcp分配到IP地 址,是 10.0.2.x網段。不過這樣的話guest機是可以通過host上網的。為了阻止它連網,我把網卡改成固定IP位址10.0.2.20,並且不配網 關,把DNS設置成127.0.0.1,這樣它就不能上網了。可是怎麼和host機互連呢?在ubuntu下是看不到VirtualBox的網卡的,不知 道它用什麼方法隱藏起來了,不過這個網卡的位址是10.0.2.2,通過這個位址就能訪問host機了。
Vmware裏用host-only方式就能實現我的要求,使用和配置都非常簡單,不多說了。

由上面的比較可以看出,對於我的需求來說Vmware優點更多些,所以在解決了guest os系統時間變慢的問題後我理所當然的選擇了Vmware player。

10月 28
Free VM software Virtualbox
icon1 ken666 | icon2 未分類 | icon4 10 28th, 2007 @ 07:10 pm| icon3沒有留言 »

Open source GUI VM Software support windows, linux , mac and other OS

http://www.virtualbox.org

10月 28

街頭的驚喜
[九龍皇帝]這位老人家, 很多人說他精神有問題, 但他以自己獨創的書法, 為沉悶的街道, 帶來了一點驚喜和幽默. 他無視現實功利, 只依循自己內心感覺, 這是藝術的精神, 也是這個城市最缺乏的品質. 可惜他已經老邁, 難再執筆與一個心胸狹窄, 目光短視的政府搏鬥,
希望這本書, 能提醒你香港擁有的豁達, 多元和精彩.
http://www.24reader.com/228326

10月 22
MRTG How to
icon1 ken666 | icon2 未分類 | icon4 10 22nd, 2007 @ 05:10 pm| icon3沒有留言 »

系統環境:redhat9.0 (yes outdated… will update very soon)
必備軟體: (這些軟體都可以在光碟裏找的到)
gd-1.8.4-11
libpng-1.2.2-16
perl-5.8.0-88
zlib-1.1.4-8
apache(
httpd-manual-2.0.40-21
httpd-2.0.40-21)
gcc-3.2.2-5
net-snmp-5.06-17
mrtg-2.9.29.tar.gz
MRTG是工作在SNMP協議上的,所以必須安裝SNMP才能啟動MRTG來觀測你的網路。

1.首先來安裝配置net-snmp
#rpm –ivh net-snmp-5.06-17 #一般redhat9.0會默認安裝上去的。
#Vi /etc/snmp/snmpd.conf #安裝完以後,配置/etc/snmp/snmpd.conf文件,使其能配合mrtg工作。
把下麵的#號去掉
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc #在89行
把下面的語句#在62行
access notConfigGroup “” any noauth exact systemview none none
改為:
access notConfigGroup “” any noauth exact mib2 none none
轉到397行
rocommunity mrtg
改完以後,就可以啟動snmpd服務,SNMP配置也到此完成了。
#/etc/rc.d/init.d/snmpd start

2.安裝mrtg
tar zvxf mrtg-2.9.29.tar.gz
cd mrtg-2.9.29
./configure –prefix=/usr/local/mrtg \
–with-gd=/usr/include \
–with-gd-lib=/usr/lib \
–with-gd-inc=/usr/include \
–with-png=/usr/include \
–with-zlib=/usr/include &&
make &&
make install

3.配置mrtg
#mkdir /var/www/html/mrtg 這裏/var/www/html是www的默認主頁位址
#cp images/* /var/www/html/mrtg images/*是在解壓縮mrtg-2.9.29.tar.gz的mrtg-2.9.29文件夾裏
#/usr/local/mrtg/bin/cfgmaker –output=/var/www/html/mrtg/mrtg.cfg \
>mrtg@192.168.0.1 #這裏是創建一個mrtg.cfg文件
[color =red:e3eeb2c739]上面請特別注意:在 mrtg@192.168.0.1這一行,mrtg 是有其意義的(在 snmp 這個通訊服務裏面的預設搜尋的一個代碼,默認的可能是public,這就是剛才要查看/etc/snmp/snmpd.conf裏的原因了),所以,如果 你的主機的動態 DNS 名稱為 your.domain.name 則你就『一定』要寫成 mrtg@your.domain.name 才行!千萬不要弄錯了! [/color:e3eeb2c739]
在/var/www/html/mrtg目錄下,並且監控192.168.0.1的位址,本例這個位址是本機的網卡IP位址
#vi /var/www/html/mrtg/mrtg.cfg #修改mrtg.cfg檔,主要修改以下內容,以符合你的實際情況
WorkDir: /var/www/html/mrtg
Options[_]: growright, bits
Language:GB2312
這個要注意的一點是前邊不要有空格,否則會有什麼” ERROR: Line 8 ( WorkDir: /var/www/html/mrtg) in CFG file (mrtg) does not make sense”的錯誤。
下面接著:
#/usr/local/mrtg/bin/mrtg /var/www/html/mrtg/mrtg.cfg
這個需要運行3次,前兩次都會報錯,不用去理會他,第3次就應該沒有錯誤了,不過,若是有問題的話,就需要修改mrtg.cfg,再執行直到沒有錯誤發生為止。
錯誤大概是這樣的:
Rateup WARNING: /usr/local/mrtg2/bin/rateup could not read the primary log file for localhost
Rateup WARNING: /usr/local/mrtg2/bin/rateup The backup log file for localhost was invalid as well
Rateup WARNING: /usr/local/mrtg2/bin/rateup Can’t remove localhost.old updating log file
Rateup WARNING: /usr/local/mrtg2/bin/rateup Can’t rename localhost.log to localhost.old updating log file

4.製作首頁index.html:
#/usr/local/mrtg/bin/indexmaker \
>–output=/var/www/html/mrtg/index.html \
>–title=伺服器流量統計 \
>/var/www/html/mrtg/mrtg.cfg
上面這個程式indexmaker是在製作首頁。會自動地輸出一個index.html的文件中。

5.設定每5分鐘執行一次
使用手工運行mrtg並不能定時產生適當的統計資訊,因此最好還是定時自動運行mrtg來生 成統計資訊,默認為五分鐘運行一次。
作為root身份crontab -e進入編輯狀態,添加內容 如下:
*/5 * * * * /usr/local/mrtg/bin/mrtg /var/www/html/mrtg/mrtg.cfg
到此為止,配置完畢,記得一定要重新啟動snmp和httpd服務!
訪問: http://192.168.0.1/mrtg/ 就能看到網路流量圖了

10月 21

「SyncBack」是一套很強大的檔案備份及同步軟體, 對於同步的規則可以定義的很詳細是我選中它的主因。在官方網站同時提供了付費版本及免費版本的下載, 我個人建議一般使用者使用免費版本的就足夠了, 我也是下載免費版本。

URL: http://www.2brightsparks.com/

10月 8
防治 SYN-Flood 碎片攻擊 !!!
icon1 ken666 | icon2 未分類 | icon4 10 8th, 2007 @ 07:10 am| icon3沒有留言 »

防治 SYN-Flood 碎片攻擊
iptables -N syn-flood
iptables -A syn-flood -m limit –limit 100/s –limit-burst 150 -j RETURN
iptables -A syn-flood -j DROP
iptables -I INPUT -j syn-flood

10月 7
Log Rotate for Apache
icon1 ken666 | icon2 未分類 | icon4 10 7th, 2007 @ 02:10 pm| icon3沒有留言 »

Apache will lock the log file and syslog also cannot rotate it.
so we need a program cronolog
1. download most update version from http://cronolog.org/
2. unzip the file
3. ./configure
4. make
5. make install
6. configure the apache
CustomLog “|/usr/sbin/cronolog /var/www/logs/domain.com-access_log.%Y%m%d” common
ErrorLog “|/usr/sbin/cronolog /var/www/logs/domain.com-error_log.%Y%m%d”
7. restart apache
8. Done

10月 3

1. Put keywords near top of the page
2. Use tags
3. Use bold and italic
4. Put keywords in bulleted list
5. Use keywords in the content as much as possible (but don’t abuse, over 8% of the content can said to be abuse)

« 上一頁