星期三, 二月 16, 2005

安装

apache+mysql+php+GD+zend+mmcache安装
 
 
目的

安装Apahe与MySQL,将php安装成支持gif,png,jpeg,freetype,mysql,需要更强大的图形处理能力,可安装ImageMagic。可以分析大流量网站日志(更大流量的网站推荐用Webalizer,不过界面简陋:-,),同时安装mmcache+zend来加速度

二、安装环境描述
操作系统:GNU Linux kernel 2.4.20-8
web服务器:Apache httpd-2.0.50 下载:http://apache.linuxforum.net/dist/httpd/httpd-2.0.50.tar.gz

数据库服务器:mysql-standard-4.0.20-pc-linux-i686.tar.gz 下载:http://dev.mysql.com/get/Downloads/MySQL-4.0/mysql-standard-4.0.20-pc-linux-i686.tar.gz/from/http://mysql.ihostunit.com/

脚本程序语言:php-4.3.8.tar.gz下载:http://cn2.php.net/get/php-4.3.8.tar.gz/from/cn.php.net/mirror


其它库文件:
ZLIB:zlib-1.2.1.tar.gz 下载:http://www.zlib.net/zlib-1.2.1.tar.gz

FreeType:freetype-2.1.9.tar.gz  http://sourceforge.net/projects/freetype/
下载:http://umn.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.9.tar.gz

PNG:libpng-1.2.5.tar.gz http://prdownloads.sourceforge.net/png-mng/libpng-1.2.5.tar.gz?download  

JPEG:jpegsrc.v6b.tar.gz http://freshmeat.net/projects/libjpeg/ 下载:http://freshmeat.net/redir/libjpeg/5665/url_tgz/jpegsrc.v6b.tar.gz

GD:gd-2.0.28.tar.gz 下载:http://www.boutell.com/gd/http/gd-2.0.28.tar.gz 已支持gif


mmcache:http://turck-mmcache.sourceforge.net/index_old.html下载:http://sourceforge.net/project/showfiles.php?group_id=69426

zend: www.zend.com

三、安装步骤

1.安装mysql(由于安装mysql比较简单,省略)安装在/usr/local/mysql目录

2.安装apache
2.安装apache
./configure --prefix=/usr/local/apache --with-mysql=/usr/local/mysql --enable-track-vars --enable-cgi --enable-so --enable-mods-shared=all --with-config-file-path=/usr/local/apache/conf

--prefix=/usr/local/apache 指定把apahce安装到/usr/local/apache目录中;
--enable-cgi 支持CGI;
--with-config-file-path=/usr/local/apache/conf 指定把apache的配制文件放在/usr/local/apache/conf中;比如httpd.conf配制文件就在这个目录中;
--enable-track-vars 为启动cookie的get/post等追踪功能
--enable-so DSO功能
--enable-mods-shared=all 包含所有的模块为DSO

如果需要更多的选项,可能通过下面的命令来查看;

./configure --help

make
make install

设置成开机自启动
在/etc/rc.d/rc.local文件中加入一行
/usr/local/apache/bin/apachectl start
这样每次重新启动系统以后,apache也会随系统一起启动.

3.安装PHP
  A先安装支持包(注意安装顺序)

建立初始目录:


mkdir /usr/local/modules

#jpeg目录
mkdir /usr/local/modules/jpeg6
mkdir /usr/local/modules/jpeg6/bin
mkdir /usr/local/modules/jpeg6/lib
mkdir /usr/local/modules/jpeg6/include
mkdir /usr/local/modules/jpeg6/man
mkdir /usr/local/modules/jpeg6/man/man1

A1、安装zlib

tar xzvf zlib-1.2.1.tar.gz
cd zlib-1.2.1
#不要用--prefix自定义安装目录,影响gd的安装
./configure
make
make install

A2、安装freetype

tar xzvf freetype-2.1.5.tar.gz
cd freetype-2.1.5
./configure --prefix=/usr/local/modules/freetype
make
make install

A3、安装libpng

tar xzvf libpng-1.2.5.tar.gz
#不要用--prefix自定义安装目录,影响gd的安装
cd libpng-1.2.5
cp scripts/makefile.std makefile
make test
make install

A3、安装jpeg

tar xzvf jpegsrc.v6b.tar.gz
./configure --prefix=/usr/local/modules/jpeg6 --enable-shared --enable-static
make
make install

A4、安装GD

tar xzvf gd-2.0.28.tar.gz
./configure --prefix=/usr/local/modules/gd --with-jpeg=/usr/local/modules/jpeg6 --with-png --with-zlib --with-freetype=/usr/local/modules/freetype
make
make install

B、安装PHP

tar xzvf php-4.3.8.tar.gz
cd  php-4.3.8
./configure --prefix=/usr/local/php --with-gd=/usr/local/modules/gd --with-jpeg-dir=/usr/local/modules/jpeg6 --with-zlib --with-png --with-freetype-dir=/usr/local/modules/freetype --enable-magic-quotes --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --enable-track-vars --enable-force-cgi-redirect --enable-ftp --with-config-file-path=/usr/local/php/etc

一点说明:

--prefix=/usr/local/php 指定把php-4.3.8安装到/usr/local/php目录中;
--with-mysql=/usr/local/mysql 指定mysql数据服务器安装的位置;
--with-apxs2=/usr/local/apache/bin/apxs 这是加入apache中为DSO模块的位置;
-enable-track-vars 为启动cookie的get/post等追踪功能
--with-config-file-path=/usr/local/php/etc 指定php的配制文件存放的目录是/usr/local/php/etc目录,我们安装完成后,也要把php.ini复制到这个目录中来。

make
make install
cp php.ini-dist /usr/local/php/etc/php.ini

更改apache的配制文件:得加几行,目的是让apache能解释php程序。
查找AddType application/x-tar .tgz  行,在下面添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php-source .phps

找到下面一行在后面加上index.php,这表示网站的默认页也能够为index.php

DirectoryIndex index.html index.html.var index.php

进行php.ini文件的配置工作
查找safe_mode=Off,更改为safe_mode=On
1)查找max_execution_time = 30,更改为max_execution_time = 600  
(2)查找max_input_time = 60,更改为max_input_time = 600
(3)查找memory_limit = 8M ,更改为memory_limit = 20M
(4)查找display_errors = On,更改为display_errors = Off
(5)查找register_globals = Off,更改为register_globals = On
(6)查找post_max_size = 8M,更改为post_max_size = 20M
(7)查找upload_max_filesize = 2M,更改为upload_max_filesize = 20M
(8)查找session.auto_start = 0,更改为session.auto_start = 1
执行:wq!命令保存后退出,从而完成了php.ini文件的配置工作。


C安装mmcache
Step 1. Compiling Turck MMCache

export PHP_PREFIX="/usr/local/php"
$PHP_PREFIX/bin/phpize
./configure --enable-mmcache=shared --with-php-config=$PHP_PREFIX/bin/php-config
make

提示:You must specify the real prefix where PHP is installed in the "export" command. It may be "/usr" "/usr/local", or something else.

Step 2. Installing Turck MMCache

  make install

Step 3. Configuring Turck MMCache
Turck MMCache can be installed both as Zend or PHP extension, so you need to edit your php.ini file (usually /etc/php.ini).
To install as Zend extension:

  zend_extension="/usr/lib/php4/mmcache.so"
  mmcache.shm_size="16"
  mmcache.cache_dir="/tmp/mmcache"
  mmcache.enable="1"
  mmcache.optimizer="1"
  mmcache.check_mtime="1"
  mmcache.debug="0"
  mmcache.filter=""
  mmcache.shm_max="0"
  mmcache.shm_ttl="0"
  mmcache.shm_prune_period="0"
  mmcache.shm_only="0"
  mmcache.compress="1"

If you use thread safe build of PHP you must use "zend_extension_ts" instead of "zend_extension".

To install as PHP extension:

  extension="mmcache.so"
  mmcache.shm_size="16"
  mmcache.cache_dir="/tmp/mmcache"
  mmcache.enable="1"
  mmcache.optimizer="1"
  mmcache.check_mtime="1"
  mmcache.debug="0"
  mmcache.filter=""
  mmcache.shm_max="0"
  mmcache.shm_ttl="0"
  mmcache.shm_prune_period="0"
  mmcache.shm_only="0"
  mmcache.compress="1"

Step 4. Creating cache directory

  mkdir /tmp/mmcache
  chmod 0777 /tmp/mmcache

4 安装Zend
解压后执行install.sh就可以了 


星期五, 二月 04, 2005

rpm安装总结

rpm安装总结

在RedHat Linux和Mandrake等兼容RedHat的发行版中,整个发行版都是利用RPM安装的。所以安装新软件的最好方法是从网络上下载rpm包。

1)用RPM安装软件包,最简单的命令如下:

# rpm -ivh foo-1.0-l.i386.rpm (这里讲的软件包是foo-1.0-l.i386.rpm,以下都是)

foo####################

下面rpm就会输出该软件包的名称,并显示一个状态条。安装很简单。

2)拆除已安装的软件包
要反安装软件包foo,只需输入以下这行命令:

# rpm -e foo

注意:软件包名是foo,而不是rpm文件名"foo-1.0-l.i386.rpm"。

3)升级软件包
升级软件类似于安装软件:

# rpm -Uvh foo-2.0-l.i386.rpm

foo####################

用户要注意的是:rpm会自动反安装相应软件包的老版本。如果老版本软件的配置文件通新版本的不兼容,rpm会自动将其保存为另外一个文件,用户会看到下面的信息:

saving /etc/foo.conf as /etc/foo.conf.rpmsave

这样用户就可以自己手工去更改相应的配置文件。
另外如果用户要安装老版本的软件,用户就会看到下面的出错信息:

# rpm -Uvh foo-1.0-l.i386.rpm

foo packag foo-2.0-l(which is newer) is already installed

error:foo-1.0-l.i386.rpm cannot be installed

如果用户要抢行安装就使用-oldpackage参数。

4)查询软件包
用户可以用rpm -q在rpm的数据库中查询相应的软件,rpm会给出软件包的名称,版本,发布版本号,例如:

# rpm -q foo

foo-2.0-l

下面是查询时可以使用的特定参数:
-a 查询目前系统安装的所有软件包。
-f 文件名查询包括嘎文件的软件包。
-F 同-f参数,只是输入是标准输入(例如 find /usr/bin | rpm -qF)
-q 软件包名 : 查询该软件包
-Q 同-p参数,只是输入是标准输入(例如 find /mnt/cdrom/RedHat/RPMS | rpm -qQ)
下面是输出时的格式选择:
-i 显示软件包的名称,描述,发行,大小,编译日期,安装日期,开发人员等信息。
-l 显示软件包包含的文件
-s 显示软件包包含的文件目前的状态,只有两种状态:normal和missing
-d 显示软件包中的文档(如man,info,README等)
-c 显示软件包中的配置文件,这些文件一般是安装后需要用户手工修改的,例如:sendmail.cf,passwd,inittab等
如果用-v参数就可以得到类似于ls -l的输出

5)用rpm校验软件包
用户可以用rpm来校验已经安装的软件包,rpm可以校验文件大小、MD5校验码、文件权限、类型和属主等信息。
下面是校验时的参数说明:
-a 简单校验软件包中的文件是否存在
-b 校验软件包中的单个文件
-c 校验安装的所有软件包
-d 比较一个源软件包和已经安装的软件包

如果检验通过就没有任何出错信息,如果有出错信息,它的格式如下:出错信息是一个8位的字符串,如果是一个".",就代表没有问题,下面是相应的字符的意义:
5 MD5校验错
S 文件大小错
L 符号连接
T 文件修改时间错
D 设备文件错
U 用户名错
G 组名错
M 属性(包括改写权和文件类型)错
如果用户看到这些信息,最好重新安装或者手工修复。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

rpm 实用技巧!
1)用户可以通过FTP来安装软件包。如果用户能够连上网络,想安装某个新的软件包时,可以直接用它的URL地址来安装:
比如:现在在ftp.linuxsir.com/pub/linux/redhat/RPMS/下有这个文件包:foo-1.0-1.i386.rpm,那就可以用这样的命令:

# rpm -i ftp.linuxsir.com/pub/linux/redhat/RPMS/foo-1.0-1.i386.rpm

来安装,也可以查询!

2)如果用户不小心巫山了几个文件,但不确定到底是那些文件,想对整个系统进行校验,以了解哪些部分可能已经损坏,可以用:

# rpm -Va

3)如果用户碰到一个人不出来的文件,想要知道它是属于那一个软件包的话,可以这样做:

# rpm -qf /usr/X11R6/bin/xjewel

结果会得到以下信息:
xjewel-1.6-1

4)如果用户得到一个新的RPM文件,却不清楚它的内容;或想了解某个文件包将会在系统里安装那些文件,可以这样做:

# rpm -qpi koules-1.2-2.i386.rpm

结果会获得很多信息!


Freebsd 下 升级至 perl5.6

Freebsd 下 升级至 perl5.6

引:
http://www.the7f.com/archives/43.html

计划安装awstats的Geo-IPfree插件,提示perl版本太低,唯有升级perl。

方法1:
cd /usr/ports/lang/perl5
make install
use.perl port

方法2:
安装portupgrade,升级perl
cd /usr/ports/sysutiles/protupgrade
make install
/usr/local/sbin/portupgrade -rf perl

如果安装protupgrade无法下载文件,可以从这里下载pkgtools-20040701.tar.bz2 ,http://www.artfiles.org/freebsd.org/ports/local-distfiles/knu/ ,拷贝到 /usr/ports/distfiles/ 再执行 make install

检查perl版本命令:
perl -v


LAMP 架构服务器性能优化建议(03/11/2004,R1版)

LAMP 架构服务器性能优化建议(03/11/2004,R1版)

  维护“手机之家”( http://www.imobile.com.cn )的服务器有快两年了,也有些经验心得,写在这里给大家分享。

  服务器配置如下:redhat linux 9.0、apache 1.3.29、php 4.3.4、mysql 3.23.58,以下建议均在以上平台上跑的很好,当然也跟你的应用有关系,具体实施要根据实际效果来进行。

  1、众所周知的方法就是使用 Zend Optimizer(简称 ZO,最新版本为 2.5.1) 或者 Zend Performance Suite(简称 ZPS,其中包含 ZO,最新版本为 3.6.0)对 PHP 进行加速。相关软件可到张微波的主页来下载哦,地址为:http://www.5ilinux.com/blog/archives/000093.html

  2、apache配置优化(httpd.conf)
1)修改“Timeout”的值为 30-60,如果你得程序没有执行时间需要很长的话,可以修改到 10-15;
2)修改“KeepAlive”的值为“Off”,这个很有效果,也很有争议,我自己的看法是很有效果,而且并没有影响速度,大家可以自行试验;
3)修改“MaxRequestsPerChild”的值为“2048”,这个还在试验中,一是因为怕有内存泄漏,二是因为 apache 进程会因为随着服务时间的延长,会变得越来越胖(我这里的实际情况是某些 apache 进程会狂吃内存到18MB,晕啊:),不过这设置有没有效果,还在试验中;
4)在不使用 .htaccess 的情况下,将其“<Files .htaccess>”部分设置为“None”方式,如果你使用 PHPMYADMIN 进行管理的话,可以使用 PHPMYADMIN 的 COOKIE 权限控制方式。

  3、卸载不必要的模块,不管是静态编译还是 DSO 模式,以便节省内存占用。具体模块可以参照 apache 的手册,这里就不多说了。PHP 也是同样,我基本上已经把不用的模块都卸载了:)

  4、使用 mod_gzip 进行加速,很简单,就不多说了。

  5、如果你的服务器还是负载很高的话,更极端的方式就是在 httpd.conf 里面将日志停掉了,不过一般要保留 errorlog 才好,以便排错,而且要记得,不是把“CustomLog”注释掉就行了,而要使用“CustomLog /dev/null common”这样的方式才好。

  6、如果你的 PHP 程序使用 Session 对话的话,可以在 php.ini 里面将“session.save_path”设置为“session.save_path = /dev/shm”,因为 /dev/shm 是 linux 系统独有的 TMPFS 文件系统,是以内存为主要存储方式的文件系统,比 RAMDISK 要好,因为可以使用 DISKSWAP 作为补充,而且是系统自带,不需要另行配置,想想吧,从磁盘IO操作到内存操作,速度会快多少?:)你也可以把你所需要的临时文件都写在 /dev/shm 下,只是别忘了,重启就没有啦,我是只存放目标文件的,呵呵。额外的说明资料请看“使用虚拟内存(virtual memory,VM)文件系统和绑定安装”(http://www-900.ibm.com/developer ... m/l-fs3/index.shtml)。

  7、MYSQL 的优化(/etc/my.cnf)
1)确认在“[mysqld]”部分加入了“skip-innodb”和“skip-bdb”参数;
2)确认在“[mysqld]”部分加入了“skip-name-resolve”和“skip-locking”参数;
3)如果不需要的话,可以将二进制日志(binlog)停掉,方法是将“log-bin”注释掉;
4)在内存允许的情况下,对一些参数进行重新配置,目标在于将大部分操作集中于内存中,尽量不进行磁盘操作,对于我的 MYSQL 服务器我是如下修改的,基于 2G 内存情况:

[mysqld]
set-variable = key_buffer=512M
set-variable = max_allowed_packet=4M
set-variable = table_cache=1024
set-variable = thread_cache=64
set-variable = join_buffer_size=32M
set-variable = sort_buffer=32M
set-variable = record_buffer=32M
set-variable = max_connections=512
set-variable = wait_timeout=120
set-variable = interactive_timeout=120
set-variable = max_connect_errors=30000
set-variable = long_query_time=1
set-variable = max_heap_table_size=256M
set-variable = tmp_table_size=128M
set-variable = thread_concurrency=8
set-variable = myisam_sort_buffer_size=128M

你可以根据“show status”命令返回的状态进行微调。我主要注意以下变量的数值,越小越好,最好为零:)
Created_tmp_disk_tables
Created_tmp_tables
Created_tmp_files
Slow_queries

  8、在启动脚本中使用“--log-slow-queries=/home/logs/mysql_slow.log”参数,以便进行 SQL 语句的优化工作,这个其实是很很重要的工作。记得一定要在 my.cnf 中设置“set-variable = long_query_time=1”才行。

  9、另外可以使用 4.0.xx 版本的 MYSQL,4.0.xx 版本除了一些性能提升以外,还有 QueryCache 方法,就是在 SQL 语句查询结果没有变动之前,将其结果进行缓存,下次再进行同样的 SQL 语句查询就可以直接反回结果,当然也是以牺牲内存为前提:)

  10、额外的,对于 LINUX EXT3 文件系统还有一个小技巧可用,就是在修改 /etc/fstab 中的参数,比如“/dev/sdb2 /home ext3 defaults 1 2”改为“/dev/sdb2 /home ext3 noatime 1 2”,“noatime”的意思就是不修改 accesstime,对于磁盘文件读写频繁的服务器也应该可以降低一些效果。不过最好不要远程操作,不然因为修改失误,服务器不能启动了,可别怪我:)

  好了,基本上我用过的方法已经说过一遍了,有些方法是取自于一些很好的文章,由于未作保留,所以无法写出出处,只能泛泛的表示感谢了。其中有些方法也适用于 Windows 平台,大家可以根据自己的服务器、应用情况去进行应用,大家也可一说说自己的办法,比如改用 ZEUS 来做 webserver,我也在找更多的办法来提升服务器性能,比如基于 LINUX KERNEL v2.4 以上内核的一些性能优化方法,从 network 到 swap(因为内核升级,所以一些老版本内核的方法已经不能再使用了:)。我也会进一步更新这篇文章,让大家能够更好的进行服务器的性能提升工作~

  另外欢迎来访问国内数一数二的手机网站,手机之家,地址见下,呵呵~

高春辉
mailto:paulgao@yeah.net
手机之家网站( http://www.imobile.com.cn )


plog安装及与vbb3统一认证

plog安装及与vbb3统一认证

这里的plog是使用的 bb的user表认证,plog无法注册用户,注册用户vbb,修改密码也是在vbb。

安装

1、使用安装脚本:wizard.php

2、安装数据库:install/plog.sql
修改文件夹权限:tmp,gallery 777
修改配制文件 config/config.properties.php

整合

1、需要安装vbb3,如果是vbb2,适当修改认证,2和3在认证的时候的加密方式不同,这里用到的是vbb3

2、修改plog
class/dao/users.class.php

在文件头增加这个函数

// by lendy
function getbbsuser($user, $pass){
$db = mysql_connect('localhost', 'xxxxxx', 'xxxxxx');
mysql_select_db('vbb3_xxxxxx',$db);
$query = "SELECT userid,username,password,email,salt FROM user WHERE username = '".addslashes($user)."'";
$result = mysql_query($query,$db);
$bbsuserinfo = mysql_fetch_array($result);
if($bbsuserinfo){
if($bbsuserinfo['password']==md5(md5($pass).$bbsuserinfo['salt'])){
return $bbsuserinfo;
}
}
}
// by lendy

修改函数 authenticateUser

function authenticateUser( $user, $pass )
{
// by lendy
$bbsuser = getbbsuser($user, $pass);
$bbsusername = $bbsuser['username'];
$bbsuserid = $bbsuser['userid'];
$bbsemail = $bbsuser['email'];
$query = "SELECT * FROM ".$this->getPrefix()."users WHERE user = '".$bbsusername."'";

$result = $this->_db->Execute( $query );

if( $result == false )

return false;

if( $result->RecordCount() == 1 )
return true;
else
if($bbsusername!=''){
$query = "INSERT INTO ".$this->getPrefix()."users(id,user,password,email,about) values($bbsuserid,'" . $bbsusername . "','" . md5('12345678') . "','$bbsemail','')";
$this->_db->Execute( $query );
//$owner_id = $this->_db->_insertid();
$owner_id = $bbsuserid;
$query = "INSERT INTO ".$this->getPrefix()."blogs(id,blog,owner_id,about,settings) values($bbsuserid,'" . $bbsusername . "'s WeBlogs',$owner_id,'',
'xxxxxxxxxxxxxx'
)";
$this->_db->Execute( $query );
$query = "INSERT INTO ".$this->getPrefix()."users_permissions(id,user_id,blog_id,permission_id) values($bbsuserid,$bbsuserid,$bbsuserid,1)";
$this->_db->Execute( $query );
$query = "INSERT INTO ".$this->getPrefix()."bayesian_filter_info(blog_id,total_spam,total_nonspam) values($bbsuserid,0,0)";
$this->_db->Execute( $query );
return true;
}
return false;
// by lendy
}

修改函数 getUserInfo

function getUserInfo( $user, $pass )
{
// by lendy
$bbsuser = getbbsuser($user, $pass);
$bbsusername = $bbsuser['username'];
$query = "SELECT * FROM ".$this->getPrefix()."users WHERE user = '".$bbsusername."'";
// by lendy
$userInfo = $this->_getUserInfoFromQuery( $query );

return $userInfo;
}

禁用注册
修改 register.php
在文件头增加 exit();

summary.php页面乱码修正

summary.php中的中文乱码问题出在模版的smarty變數修飾子(Variable Modifier--escape)
在plog安装根目录的templates/summary目录下,修改如下:
index.template及bloglist.template两个文件中删除掉|escape:"htmlall"紅色部份的代码即可。

完毕!


Turck MMCache 2.4.6 for PHP 4.3.10

Turck MMCache 2.4.6 for PHP 4.3.10

在 FreeBSD php4.3.10 上安装 turck-mmcache-2.4.6(适合目前php4.x任何版本的安装)

http://turck-mmcache.sourceforge.net/

http://sourceforge.net/project/showfiles.php?group_id=69426

我的安装笔记(FreeBSD4.9)

参考文章:http://blog.gmane.org/gmane.comp.web.midgard.user/month=20040101/page=2

1)tar zxvf turck-mmcache-2.4.6.tar.gz
2)cd turck-mmcache-2.4.6
3)/usr/local/bin/phpizecd
4)./configure --enable-mmcache=shared --with-php-config=/usr/local/bin/php-config
出错,提示 "Try `ltconfig --help' for more information." 原信息记不清了。
5)ee configure
Added "lt_target=$ac_cv_build" inbetween

*) lt_target="$target" ;;
esac

and

# Check for any special flags to pass to ltconfig.
libtool_flags="--cache-file=$cache_file"
test "$enable_shared" = no && libtool_flags="$libtool_flags
--disable-shared"

重新 configure
5)./configure --enable-mmcache=shared --with-php-config=/usr/local/bin/php-config
6)make
7)make install


星期三, 二月 02, 2005

SQL数据库数据处理说明

SQL数据库数据处理说明 
一、备份数据库

1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server
2、SQL Server组-->双击打开你的服务器-->双击打开数据库目录
3、选择你的数据库名称(如论坛数据库Forum)-->然后点上面菜单中的工具-->选择备份数据库
4、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份

二、还原数据库

1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server
2、SQL Server组-->双击打开你的服务器-->点图标栏的新建数据库图标,新建数据库的名字自行取
3、点击新建好的数据库名称(如论坛数据库Forum)-->然后点上面菜单中的工具-->选择恢复数据库
4、在弹出来的窗口中的还原选项中选择从设备-->点选择设备-->点添加-->然后选择你的备份文件名-->添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择最新的一次备份后点确定)-->然后点击上方常规旁边的选项按钮
5、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如您的SQL数据库装在D:Program FilesMicrosoft SQL ServerMSSQLData,那么就按照您恢复机器的目录进行相关改动改动,并且最后的文件名最好改成您当前的数据库名(如原来是bbs_data.mdf,现在的数据库是forum,就改成forum_data.mdf),日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是*_log.ldf结尾的),这里的恢复目录您可以自由设置,前提是该目录必须存在(如您可以指定d:sqldatabbs_data.mdf或者d:sqldatabbs_log.ldf),否则恢复将报错
6、修改完成后,点击下面的确定进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功,如中间提示报错,请记录下相关的错误内容并询问对SQL操作比较熟悉的人员,一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误,数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作,如果还提示正在使用的错误可以将SQL服务停止然后重起看看,至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复

三、收缩数据库

一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存
2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定
3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据

四、设定每日自动备份数据库

强烈建议有条件的用户进行此操作!
1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器
2、然后点上面菜单中的工具-->选择数据库维护计划器
3、下一步选择要进行自动备份的数据-->下一步更新数据优化信息,这里一般不用做选择-->下一步检查数据完整性,也一般不选择
4、下一步指定数据库维护计划,默认的是1周备份一次,点击更改选择每天备份后点确定
5、下一步指定备份的磁盘目录,选择指定目录,如您可以在D盘新建一个目录如:d:databak,然后在这里选择使用此目录,如果您的数据库比较多最好选择为每个数据库建立子目录,然后选择删除早于多少天前的备份,一般设定4-7天,这看您的具体备份要求,备份文件扩展名一般都是bak就用默认的
6、下一步指定事务日志备份计划,看您的需要做选择-->下一步要生成的报表,一般不做选择-->下一步维护计划历史记录,最好用默认的选项-->下一步完成
7、完成后系统很可能会提示Sql Server Agent服务未启动,先点确定完成计划设定,然后找到桌面最右边状态栏中的SQL绿色图标,双击点开,在服务中选择Sql Server Agent,然后点击运行箭头,选上下方的当启动OS时自动启动服务
8、这个时候数据库计划已经成功的运行了,他将按照您上面的设置进行自动备份

修改计划:
1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->管理-->数据库维护计划-->打开后可看到你设定的计划,可以进行修改或者删除操作

五、数据的转移(新建数据库或转移服务器)

一般情况下,最好使用备份和还原操作来进行转移数据,在特殊情况下,可以用导入导出的方式进行转移,这里介绍的就是导入导出方式,导入导出方式转移数据一个作用就是可以在收缩数据库无效的情况下用来减小(收缩)数据库的大小,本操作默认为您对SQL的操作有一定的了解,如果对其中的部分操作不理解,可以咨询动网相关人员或者查询网上资料
1、将原数据库的所有表、存储过程导出成一个SQL文件,导出的时候注意在选项中选择编写索引脚本和编写主键、外键、默认值和检查约束脚本选项
2、新建数据库,对新建数据库执行第一步中所建立的SQL文件
3、用SQL的导入导出方式,对新数据库导入原数据库中的所有表内容


星期二, 二月 01, 2005

MySQL 从 3.23 升级到 4.0 四部曲

MySQL 从 3.23 升级到 4.0 四部曲   

MySQL 4.0 已经成为生产版本,也就是说可以在生产环境中使用了。一个速度更快,更加稳定,更加安全的 MySQL 值得众多 DBA 的青睐。 新版本支持查询缓冲,全文搜索,UNION 等等,并为升级到 4.1 甚至 5.0 打好了基础。

从 3.23 升级到 4.0 只需要简单的 4 个步骤:

1、运行脚本 mysql_fix_privilege_tables ,增加新的权限配置
2、修改启动脚本,去掉那些不再使用的选项
3、用命令: mysql_convert_table_format database 把老的 ISAM 文件转化为 MyISAM 格式,如果并非所有的表为 ISAM,或全部转换为 MyISAM,需要用 ALTER TABLE table_name TYPE=MyISAM 来转换所有的 ISAM 格式的表。
4、确保所有客户端软件没有使用共享库,例如:Perl DBD-mysql。否则需要重新编译,因为 libmysqlclient.so 的结构有变。对 Python MySQLdb 也一样。

即使不对以上步骤不闻不问,MySQL 4.0 依旧可以正常工作,但是将不能用到 4.0 中的新的安全特色,在升级到更新版本的 MySQL 4.1 的时候会碰到问题。ISAM 格式的文件依旧能在 4.0 中工作,但是在 5.0 中将不再采用。老的客户端软件能继续和 4.0 版本的服务器正常工作。

当在 4.0 中遇到问题时,就算作了上述工作,还可以降低到 3.23.52 或更新版本。在这种情况下,需要对那些有全文索引的表用 mysqldump 备份,然后在 3.23 中恢复数据,因为 4.0 采用了新的全文索引格式。


星期二, 五月 18, 2004

Congratulations, it worked!

Welcome to pLog! If you can read this, it means that your pLog installation is ready and that you can start blogging.