Error: 1264 SQLSTATE: 22003 (ER_WARN_DATA_OUT_OF_RANGE)
阿維今天在升級公司的資料庫的時候遇到下面的錯誤
Error: 1264 SQLSTATE: 22003 (ER_WARN_DATA_OUT_OF_RANGE)
Message: Out of range value for column '%s' at row %ld
解決的方法是修改my.ini
把 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
改成 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
晚點再繼續研究這個錯誤代碼
現在先記錄下來
然後繼續升級資料庫
» 引用網址
加速你的網站
今天想到既然重新編譯了Apache那就順便來作一下網站的加速吧
Apache
在上一篇提到阿維編譯的時候加入了mod_deflate
編譯完之後在httpd.conf 加入下面的內容
SetOutputFilter DEFLATE
DeflateFilterNote ratio
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
因為它是將資料壓縮來達到加速的效果
阿維認為圖檔和壓縮檔不需要再壓縮
所以才會有後面那三行
做好之後重新啟動Apache就可以了
PHP
阿維採用的凱大人建議使用的 eAccelerator
因為阿維的機器裝有兩個PHP因此採用下面的編譯方法
不過我想即使只裝一個PHP也是可以使用這種方法的
解壓縮eaccelerator-0.9.5.tar.bz2
編譯eAccelerator
export PHP_PREFIX="/usr/local/php"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
make install
後續設定
然後我將 /usr/local/php/lib/php/extensions/eaccelerator.so 複製到 /usr/local/php/lib
這是我的習慣,你可以自己修改只是要記得自己把這個檔案放在哪裡
接著打開php.ini 輸入以下內容
zend_extension="/usr/local/php/lib/eaccelerator.so" <---- 這裡根據你剛剛放置 eaccelerator.so的位置要進行修改
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
然後重新啟動Apache,打開你的phpinfo頁面,你如果看到
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with eAccelerator v0.9.5, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
紅色是我自己標的,正常是顯示黑色字,看到紅色這段文字就代表成功了
MySQL
當 Apache 和 PHP 的加速器安裝完成之後
接下來就是要找出那些執行特別久的SQL statement了
編輯my.cnf,加入以下內容
log_slow_queries =/var/log/slow_queries.log
然後重新啟動MySQL,他就會把執行特別久的SQL statement記錄在 /var/log/slow_queries.log 這個檔案了
接下來觀察一兩天,然後針對log裡所記載的SQL statement進行調教
這樣一來你的系統就可以運作的更有效率
執行速度也更快了
» 引用網址
防止網站內容被違法連接
阿維今天收到同事反應,說公司網站的內容被百度給找出來了
雖然說公司網站被搜尋引擎找到是好事
可是如果是使用者上傳的資料,屬於公司內部使用,也被搜尋引擎找到那就不是一件好事了
於是找了凱大人求救,花了大概三個小時終於搞定
下面把我的作法分享給大家參考
re-Compile Apache with mod_rewrite
阿維的Apache當初在編譯的時候沒有加入rewrite這個模組,所以就先把mod_rewrite編譯進去
另外阿維還加上了mod_deflate,因為想說既然重新編譯那就順便把Apache加速的模組也編譯進去好了
建立robots.txt
阿維公司的網站不想讓所有的搜尋引擎機器人找到,因此內容寫成
User-agent: *
Disallow: /
如果你想要了解更多的資訊可以到 http://www.google.com.tw/support/webmasters/bin/answer.py?answer=40362
建立.htaccess 文件
避免使用者使用不正當的連結進行資料存取的行為
首先要先將httpd.conf 裡面的 AllowOverride None 改成 AllowOverride ALL
接著在要防止被連結的目錄下面建立.htaccess檔案,我是建立在根目錄
內容如下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://blog.hsnd.net/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://blog.hsdnnet$ [NC]
RewriteRule .*\.(*)$ /content/no_hotlink.jpeg [R,NC]
將允許的網站放在blog.hsdn.net的位置,
是兩個設定一組的,如果你有多個允許網站就複製貼上然後修改一下
/content/no_hotlink.jpeg 這個是你要讓那些違法連結顯示的畫面
你可以參考阿維今天做的 畫面
希望這篇文章對大家有幫助,也感謝凱大人的幫忙 
» 引用網址
PHP 加速器....
本來我都用 mmcache ...
但是 mmcache 的作者被zend拐去了....
還好有人繼承了程式碼,繼續開發了eaccelerator..
支援 php5 ....
http://eaccelerator.net/
» 引用網址
