MySQL(世界上使用最为广泛的开源数据库软件,目前为Sun Microsystem所有)对于微软来说既是竞争者又是合作伙伴(早前MySQL曾加入Visual Studio工业伙伴计划),而自从甲骨文(Oracle)宣布要收购升阳(Sun MicroSystem)之后(顺便得到了升阳旗下的MySQL数据库),MySQL更是升级成为微软的敌人(甲骨文旗下的Oracle数据库是微软SQL Server最为强大的对手)。所以微软此次发布MySQL to SQL Server迁移工具也就不让人意外了。
Posts Tagged ‘MySQL’
Linode放出了Ubuntu 9.10,之前已经装上了,不过一直没空把记录的安装步骤发上来,今天刚刚搞定静态文件的设置,稍微有空,抓紧时间放上来。
初步设置(针对Linode及可以分区的服务器或VPS,如果你的VPS不能分区,请跳过):
1,在Linode上建立一个单独的/home分区,并在建立系统后挂载到该系统下。Linode可以挂载8个区,包括系统分区和swap区~我将/home分区挂载到/dev/xvdh ;
2,启动新建立的系统(Ubuntu9.10),编辑 /etc/fstab 文件,添加以下代码:
/dev/xvdh /home ext3 defaults 1 2
保存后退出;
3,重启Linux后,/home已经挂载成功~
之前在Debian的VPS安装了Apache2.2+MySQL5+PHP5,以及添加了FastCGI模组,内存少了不少,但依然还是很严峻- - 而且速度不是很理想。突然想到之前看到过介绍,在CentOS上使用Apache负责动态PHP,而Lighttpd负责静态文件的方案。折腾了一个早上,终于初步搞定~下面记录方法~

Debian的好处就是直接通过apt-get即可安装(其实我想编译安装。。。但失败了- -)
2,安装Lighttpd:
apt-get install lighttpd
选择"y"安装后会提示无法启动,端口80被其他程序所使用。不急,稍后就开始设置~
3,配置Lighttpd
3.1 修改“/etc/lighttpd/lighttpd.conf ”文件:
server.document-root = "/var/www/html"
server.errorlog = "/var/log/lighttpd/error.log"
accesslog.filename = "/var/log/lighttpd/access.log"
erver.port = 81
server.bind = “localhost”
server.username = “www-data”
server.groupname = “www-data”
注意,要去除前面的注释标记“#”
3.2 安装lighttpd的simple-vhost模组:
/etc/lighttpd/conf-enabled simple-vhost
开启模组使用命令:/usr/sbin/lighty-enable-mod
关闭模组使用命令:/usr/sbin/lighttpd-disable-mod
3.3 修改lighttpd的simple-vhost模组:
编辑文件“/etc/lighttpd/conf-enabled/10-simple-vhost.conf”,按下列形式修改:
server.modules += ( "mod_simple_vhost" )
simple-vhost.server-root = "/home/www"
simple-vhost.document-root = "/"
simple-vhost.default-host = ""
4,开启lighttpd
执行命令:/etc/init.d/lighttpd start 开启监听 81端口;
5,安装Apache2.2 相关模块:
a2enmod rewrite
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_connect
重新载入Apache:
/etc/init.d/apache2 force-reload
6,修改站点配置文件“/etc/apache2/sites-available/”:
按照如下格式填写即可:
ServerName silentstreet.net
ServerAdmin webmaster@mgrei.com
DocumentRoot "/home/www/silent/"Options FollowSymLinks
AllowOverride All
FCGIWrapper /usr/bin/php5-cgi .php
Options ExecCGI SymLinksIfOwnerMatchErrorLog "/var/log/apache2/silentstreet-error.log"
CustomLog "/var/log/apache2/silentstreet-access.log" common
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule “^/((.*).(js|css|htm|html|swf|gif|jpg|png|ico|exe|zip|rar))$” “http://0.0.0.0:81/$1″ [P,QSA,L]
RewriteRule “^/(.*)” “$0″ [L]ProxyRequests Off
ProxyPreserveHost On
ProxyReceiveBufferSize 16384
ProxyTimeout 60
ProxyPassReverse / http://0.0.0.0:81/
这样就完成了~
顺带一提,网上CentOS方案中提到添加cache模组效果会更好,不过我暂时用不到,所以先记着~
为了使mod_proxy能够发挥更好的性能,还可以加入mod_cache模块:
LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.soCacheEnable mem /
MCacheSize 10240
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048CacheRoot /var/cache/mod_proxy
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
Tags: Apache 2.2, Lighttpd, MySQL, PHP, 高负载VPS
终于在Debian用apt-get安装好LAMP了,之前在CentOS使用编译安装,速度比现在快,但内存使用怎么都优化不下来,又没时间深入研究。。。使用yum安装后更头疼,别的都可以,phpmyadmin居然不能连接数据库。。。试了N种方法都不行,最终只能放弃。装回Debian了- -

记录下自己的安装过程,以备后用~
1,更新Debian:
apt-get update
apt-get updgrade
2,安装Apache2:
由于内存只有360M,得省着用,所以选择了prefork模式安装:
apt-get install apache2-mpm-prefork
3,安装mysql
apt-get install mysql-server-5.0 mysql-common mysql-client
4,安装php相关组件,并整合mysql
apt-get install php5-common php5-mysql php5-cgi php5-gd php5-mcrypt libapache2-mod-php5 php5-memcache php5-imagick php5-suhosin php5-xmlrpc
如果需要,可以如下安装
apt-get install php5-common php-pear php5-curl php5-dev php5-gd php5-idn php5-imap php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xsl
注:
如果要删除某个包,可以用以下命令
apt-get remove
比如删除php-cgi
apt-get remove php-cgi
如果不知道有哪些安装包,可以用如下命令:
apt-cache search
比如:
apt-cache search apache2
5,设置Mysql账户、密码,及优化:
mysqladmin -u root password '' //在引号中输入密码
登陆MySQL数据库
mysql -u root -p
修改原始账户(mysql)
mysql>use mysql;
mysql>update user set user="自己设定用户名" where user="root"; (将mysql的root用户名修改成centos,防止root的密码被暴力破解)
mysql>select Host,User,Password,Select_priv,Grant_priv from user;
mysql>delete from user where user=''; (删除user用户)
mysql>delete from user where password=''; (删除user用户)
mysql>delete from user where host=''; (删除user用户)
mysql>drop database test; (删除默认的test数据库)
mysql>flush privileges; (刷新mysql的缓存,让以上设置立即生效)
mysql>quit;
修改MySQL的配置文件在/etc/mysql/my.cnf
找到 #skip-innodb 去掉注释
重新载入Mysql
/etc/init.d/mysql reload
或者重启Mysql
/etc/init.d/mysql restart
6,设置php
修改文件:/etc/php5/apache2/php.ini
找到以下数值,修改为自己需要的数值
memory_limit
post_max_size
upload_max_filesize
关闭以下功能 Off
enable_dl
display_errors
7,Apache优化及设置:
修改 /etc/apache2/apache2.conf文件
Timeout 300
改为
Timeout 60
KeepAliveTimeout 15
改为
KeepAliveTimeout 5
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
改为
StartServers 3
MinSpareServers 5
MaxSpareServers 10
MaxClients 50
MaxRequestsPerChild 2000
找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
保存退出,并重启apache
/etc/init.d/apache2 reload
/etc/init.d/apache2 restart
激活deflate模块(用于页面压缩),在SSH界面输入:
a2enmod deflate
让apache2得进程加载新配置的模块
/etc/init.d/apache2 force-reload
再修改 /etc/apache2/apache2.conf文件,在最后加入
在文件之后加入:
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE css js
激活mod rewrite(用于伪静态连接地址),在SSH界面输入:
a2enmod rewrite
让apache2得进程加载新配置的模块
/etc/init.d/apache2 force-reload
再修改 /etc/apache2/apache2.conf文件,在最后加入:
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
网上有人这么设置的,不过很多时候,网站多了很不好控制,都已我没有在apache2.conf添加这最后一段。
重新载入apache
/etc/init.d/apache2 reload
或重启apache
/etc/init.d/apache2 restart
8,在Debian Apache5下设置多域名:
设置/etc/apache2/sites-available/default,将ServerAdmin改为你自己的邮箱,并在之前添加一段,作为你的空间根目录域名:
ServerName xxx.com
将/var/www/目录全部修改为 /home/www/
在SSH界面输入:
chmod 755 -R /home/www //设置网站根目录权限
ls -lh //查看文件夹属主
cd /home/www/
chown -R www-data:www-data /home/www/
做好这些后,保存并退出default。
在/home/www/建立新文件夹“1”;然后在当前目录“/sites-available/”新建一个文件,假设文件名为1,打开文件1,输入以下内容:
<VirtualHost *>
ServerName xxx.com //此处输入域名
ServerAdmin webmaster@mgrei.com
DocumentRoot "/home/www/1/" //网站目录
<Directory /> //这段添加后,可直接支持.htaccess
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog "/var/log/apache2/1-error.log"
CustomLog "/var/log/apache2/1-access.log" common
</VirtualHost>
保存该文件,然后在SSH界面下输入:
a2ensite 1
这时,设定的网站域名已经被绑定了,在/etc/apache2/sites-enabled/文件夹会有一个1的快捷链接。重启一下Apache后,就可以操作该网站了:
/etc/init.d/apache2 restart
现在就可以用浏览器登陆你的域名了~
分开设定确实麻烦了点,但好处还是很大的,比如我要单独维护网站1,只需要输入以下命令:
a2dissite silent
然后重启一遍即可
/etc/init.d/apache2 restart
其他网站还是会正常运作,不会受到牵连~
9,安装phpmyadmin:
由于debian的php版本是5.2的,所以可以使用phpmyadmin3.1,也省去了不少麻烦,不用apt-get安装,直接如下操作即可:
cd /usr/local/src
wget http://ncu.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-3.2.0-all-languages.tar.gz
tar zxvf phpMyAdmin-3.2.0-all-languages.tar.gz
cp -rf phpMyAdmin-3.2.0-all-languages /home/www/phpmyadmin
10,安装sendmail:
很多人说sendmail不好,不过我不是要邮件服务器,只不过需要一些邮件发送支持罢了,sendmail对我是足够了~
apt-get install sendmail
11,安装 Zend Optimizer
cd /usr/local/src
wget http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
tar xzvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
./ZendOptimizer-3.3.3-linux-glibc23-i386/install.sh
按照它的提示一步步进行就行了。
总之一句话。如果你的服务器环境不需要ZendOptimizer,那么能不安就不安装这个。避免和eaccelerator冲突。
好啦,全部装好了,可以使用了。。。不过目前由于是apt-get安装,没有找到php-config,所以eaccelerator和xcache暂时不能安装,不知道怎么办。。。
Tags: Apache, Debian, MySQL, PHP, phpMyAdmin, Sendmail, Zend Optimizer
最新稳定版本5.1.36,这是去年11月26日5.1.30发布并标志着5.1系列正式GA后的第六个版本。上一个版本是2009-06-04的5.1.35。这个版本主要对Windows平台的安装包做了一些改进及复制的Bug修正.其他各产品线是 5.0.83 4.1.25 4.0.30.

下载源码包:
ftp://mirror2.dataphone.se/pub/mysql/Downloads/MySQL-5.1/mysql-5.1.36.tar.gz
其他平台的bin包请见官方ftp
ftp://mirror2.dataphone.se/pub/mysql/Downloads/MySQL-5.1/
相关改进及修正声明:
http://dev.mysql.com/doc/refman/5.1/en/news-5-1-36.html
经过几个月断断续续的学习,我终于学会了安装LAMP。。。汗,虽说是几个月,但也没多少时间给我折腾,所以直接才全部设置完毕。
本来考虑使用Lighttpd或者Nginx代替Apache的,理由是这两个Server程序比Apache占有资源小很多,设置也不比Apache麻烦,但我各个都装了之后还是决定采用Apache,因为这些程序中,Apache历史最久,也最稳定,寂静街不是大战,不需要太多资源,稳定就行了。
另外,原打算Apache负责处理PHP,Lighttpd负责静态文件,但发现一旦安装两个以上的Server不但需要花去大量的时间和精力来研究设置,以后还会有很多程序上的冲突问题,所以也放弃了这个方案。
废话不多说了,开始记录:

我用的是FsckVPS,由于前段时间的BUG,导致现在很多VPS供货商都不给控制面板,FsckVPS最严重,肯定是不给的拉,只给我一个SSH帐户密码。。。修改密码还要我自己来- -
默认的系统是Centos 5.3 x86,安装了apache rpm包,所以,第一步当然是要清理这个无用的Apache:
1,删除默认安装的apache rpm包,输入以下命令,并回车即可:
rpm -e httpd
2,更新系统,输入命令后,等待提示,输入'y':
yum upgrade
3,由于我采用的全是编译安装,所以需要安装很多开发包支持。使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称):
yum -y install glibc glibc-kenheaders glibc-headers glibc-devel cpp gcc gcc-c++ gcc-g77 g77 flex bison autoconf automake bzip2 bzip2-devel zlib curl zlib-devel curl-devel ncurses ncurses-devel libjpeg libjpeg-devel libpng libpng-devel libtiff-devel freetype freetype-devel pam-devel openssl openssl-devel libxml2 libxml2-devel gettext-devel libtool libtool-ltdl libtool-ltdl-devel pcre pcre-devel diff diff-devel diffutils diffutils-devel patch libmhash libmhash-devel libmcrypt libevent unzip glib2 glib2-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers ImageMagick-devel
由于我偷懒,不想每次编译安装某个程序时,再安装RPM包,所以找了半天,一口气将大部分需要的都安装了;
4,安装 pcre 7.7:
其实之前我们已经安装好了 pcre-6.6-2 版本,但其官方网站已经升级到 7.9 版本了,再者这次安装所涉及的软件都是使用目前最新的稳定版本,因此 pcre 我们也安装最新版本。
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz
tar zxvf pcre-7.9.tar.gz
cd pcre-7.9
./configure
make //make 是用来编译的,它从 Makefile 中读取指令,然后编译。
make install //make install 是用来安装的,它也从 Makefile 中读取指令,安装到指定的位置。
make && make install //一般情况下,可以使用该命令集成make及make install命令
cd ..
rm -rf pcre-7.9
rm -rf /usr/bin/pcre-config
cp -a /usr/local/bin/pcre-config /usr/bin/
rm -rf /usr/lib/libpcre.a
cp -a /usr/local/lib/libpcre.a /usr/lib/
5,安装其余相关组件:
cd /usr/local/src
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz
tar xzvf libiconv-1.13.tar.gz
cd libiconv-1.13
./configure --prefix=/usr/local
make && make install
cd /usr/local/src
wget http://ncu.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make && make install
cd /usr/local/src
wget http://nchc.dl.sourceforge.net/sourceforge/mhash/mhash-0.9.9.9.tar.gz
tar xzvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make && make install
cp /usr/local/lib/libmcrypt.* /usr/lib
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ldconfig
cd /usr/local/src
wget http://www.monkey.org/~provos/libevent-1.4.10-stable.tar.gz
tar xzvf libevent-1.4.10-stable.tar.gz
cd libevent-1.4.10-stable
./configure --prefix=/usr/libvent
make && make install
cd /usr/local/src
wget http://nchc.dl.sourceforge.net/sourceforge/mcrypt/mcrypt-2.6.8.tar.gz
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure
make && make install
cd /usr/local/src
wget http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz
tar xzvf memcached-1.2.8.tar.gz
cd memcached-1.2.8
./configure --with-libevent=/usr/libvent --prefix=/usr/memcache
make && make install
安装GD2
cd /usr/local/src
wget http://www.libgd.org/releases/gd-2.0.35.tar.gz
tar xzvf gd-2.0.35.tar.gz
cd gd-2.0.35
./configure --prefix=/usr/local/gd2 --mandir=/usr/share/man
make && make install
以上组件安装完毕后,下一页开始安装MySQL,最新版5.1.35;
顺带一提:有的VPS和FsckVPS一样,自带了Sendmail,如果不做邮件服务器,只是想让程序可以发送通知邮件的话,可以直接开启Sendmail:
service saslauthd start
设置开机启动:
echo 'service saslauthd start ' >> /etc/rc.local
Tags: Apache 优化, Centos, LAMP, Linux, MySQL, PHP, phpMyAdmin, VPS

MySQL今天放出5.1系列最新稳定版本5.1.35,这是去年11月26日5.1.30发布并标志着5.1系列正式GA后的第五个版本。上一个版本是2009-04-16的5.1.34。这个版本主要对Windows平台的安装包做了一些改进及复制和分区的Bug修正.其他各产品线是 5.0.82 4.1.25 4.0.30. Read the rest of this entry »
唉,在wordpress中文论坛找了半天没人回答,还是自己找解决方法比较好。在中国,求人真不如求己,人心的冷漠到处可见。
我的寂静街除了自己的私人博客外,平时还会为客户和我自己的网店找些插件来测试。几乎所有的wordpress插件都是靠写入数据库来运行的,但并不是所有插件都会使用UTF-8来写入,比如有名下载管理插件"WP-DownloadManager"就是用"latin1_swedish_ci"编码来写入的数据;另外,wp的数据库写入好像也有问题,虽然以UTF-8备份数据库,但备份出的.sql文件打开就会变成乱码,一开始我只是怀疑使用非UTF-8造成的情况,于是将所有数据库的编码都转换成了UTF-8,结果备份出的.sql问题依然存在。