[转]lighttpd+PHP(FAST-CGI)+mysql的学习笔记

| November 10, 2008 19:23 | root | Via 本站原创


早就听说lighttpd加PHP的FAST-CGI方式性能不错,抽时间装了下.只是完成了环境的安装,还没具体看性能什么的!
以下是我装lighttpd+PHP(FAST-CGI)+mysql的,如有问题,请给我评论.


一、先安装mysql
安装mysql,你可以安装源码包,也可以用编译好的!直接解压拷贝也行.我用的是直接拷贝编译好的!
1.编译源码包
./configure  --prefix=/data2/ali --enable-assembler --enable-thread-safe-client --without-debug
make
make install
2.用编译好的压缩包!直接解压拷贝
tar zxf mysql-standard-5.0.27-linux-i686-glibc23.tar.gz
cd mysql-standard-5.0.27-linux-i686-glibc23
cp -rf mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/mysql

//以下是为了启动多个端口
mkdir -p /data2/ali/mysql3308
mkdir -p /data2/ali/mysql3309
./scripts/mysql_install_db --ldata=/data2/ali/mysql3308
cp support-files/my-medium.cnf /data2/ali/mysql3308/my.cnf
vi /data2/ali/mysql3308/my.cnf
修改内容如下:
#
[mysqld]
datadir         = /data2/ali/mysql3308/
port            = 3308
socket          = /tmp/mysql-3308.sock
#

cp /data2/ali/mysql3308/ /data2/ali/mysql3309/
vi /data2/ali/mysql3309/my.cnf
修改内容如下:
#
[mysqld]
datadir         = /data2/ali/mysql3309/
port            = 3309
socket          = /tmp/mysql-3309.sock
#
启动mysql
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data2/ali/mysql3308/my.cnf  --user=root &
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data2/ali/mysql3309/my.cnf  --user=root &

检查mysql是否启动成功。
ps -ax|grep mysql
20835 pts/3    S      0:00 /bin/sh ./mysqld_safe --defaults-file=/data2/ali/mysql3308/my.cnf --user=root
20862 pts/3    Sl     0:00 /usr/local/mysql/bin/mysqld --defaults-file=/data2/ali/mysql3308/my.cnf --basedir=/usr/local/mysql --datadir=/data2/ali/mysql3308/ --user=root --pid-file=/data2/ali/mysql3308//XD_Blog_Web_132_42.pid --skip-external-locking --port=3308 --socket=/tmp/mysql-3308.sock
20872 pts/3    S      0:00 /bin/sh ./mysqld_safe --defaults-file=/data2/ali/mysql3309/my.cnf --user=root
20903 pts/3    Sl     0:00 /usr/local/mysql/bin/mysqld --defaults-file=/data2/ali/mysql3309/my.cnf --basedir=/usr/local/mysql --datadir=/data2/ali/mysql3309/ --user=root --pid-file=/data2/ali/mysql3309//XD_Blog_Web_132_42.pid --skip-external-locking --port=3309 --socket=/tmp/mysql-3309.sock

连接mysql
mysql -S /tmp/mysql-3108.sock



二、接着安装php
tar zxf php-5.2.4.tar.gz
cd php-5.2.4
./configure \
    --prefix=/usr/local/php-fcgi \
    --enable-fastcgi \
    --enable-force-cgi-redirect \
    --without-iconv \
    --enable-mbstring \
    --with-mysql=/usr/local/mysql
make
make install

复制参数文件到目标目录:
cp php.ini-dist /usr/local/php-fcgi/lib/php.ini

检查fast-cgi是否安装成功可以运行如下命令
/usr/local/php-fcgi/bin/php-cgi -v
显示如下信息,内容里包含“PHP 5.2.4 (cgi-fcgi)"表示支持fast-cgi了
PHP 5.2.4 (cgi-fcgi) (built: Oct 28 2007 20:08:41)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies


三、最后安装lighttpd
1.安装配置lighttpd

1.1 首先创建运行lighttpd的用户和组

# groupadd lighttpd
# useradd -g lighttpd -s /sbin/nologin -d /dev/null lighttpd

1.2 开始安装lighttpd

# wget http://www.lighttpd.net/do...
# tar -zxvf lighttpd-1.4.8.tar.gz
# cd lighttpd-1.4.8
# ./configure --prefix=/usr/local/lighttpd

# make
# make install

# mkdir /usr/local/lighttpd/conf
# mkdir /usr/local/lighttpd/log

# mv ./doc/lighttpd.conf /usr/local/lighttpd/conf/
# cp ./doc/rc.lighttpd.redhat /etc/init.d/lighttpd



vi conf/lighttpd.conf
将 #”mod_fastcgi”, 的#去掉
server.modules              = (
                               "mod_rewrite",
                               "mod_redirect",
#                               "mod_alias",
                                "mod_access",
#                               "mod_cml",
#                               "mod_trigger_b4_dl",
#                               "mod_auth",
#                               "mod_status",
#                               "mod_setenv",
                               "mod_fastcgi",

找到fastcgi的定义

#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/var/run/lighttpd/php-fastcgi.socket",
                                   "bin-path" => "/usr/local/php-fcgi/bin/php-cgi"
                                 )
                               )
                            )

一开始我把配置写"bin-path" => "/usr/local/php-fcgi/bin/php"这样,发现报错,后来改了下以上的配置,发现OK了!
启动lighttpd命令是这样的:
/usr/local/lighttpd/sbin/lighttpd -f conf/lighttpd.conf



最后可以在程序目录下建个test.php,检查一下是否正常!

[转]memcache安装

| November 10, 2008 19:14 | root | Via 本站原创
我在测试机上装了libevent和memcached,在启动memcached时会报找到不到libevent,建了个软链接"ln -s /usr/local/lib/libevent-1.2a.so.1 /usr/lib/"就OK了!


libevent-1.2a.tar.gz
memcached-1.1.13.tar.gz

ln -s /usr/local/lib/libevent-1.2a.so.1 /usr/lib/



装完后测试时命令行连接的方式是:

所有命令分为3种类型
存储命令(有3项:’set’、’add’、’repalce’)指示服务器储存一些由键值标识的数据。客户端发送一行命令,后面跟着数据区块;然后,客户端等待接收服务器回传的命令行,指示成功与否。
取回命令(只有一项:’get’)指示服务器返回与所给键值相符合的数据(一个请求中右一个或多个键值)。客户端发送一行命令,包括所有请求的键值;服务器每找到一项内容,都会发送回客户端一行关于这项内容的信息,紧跟着是对应的数据区块;直到服务器以一行“END”回应命令结束。
状态 命令"stats" 被用于查询服务器的运行状态和其他内部数据。有两种格式。不带参数的:

例子:
telnet 127.0.0.1 11211
Trying 127.0.0.1...
set kk 0 0 3
122
STORED



以下是我安装时看的文章


Linux下缓存服务器的应用

作者:tonyvicky
来自:LinuxSir.Org
摘要:由于数据库存储的数据量越来越大,查询速度也就变的越来越慢,因此就有了缓存服务器应用的必要,本文是介绍Memcached的安装以及简单的使用。

本文只介绍memcached的PHP的API,想查看其他关于Memcached的API文档案,请访问 http://www.danga.com/memca...

目录
一、环境需求
二、下载相关软件
三、安装和配置
1、安装Memcached
2、安装memcache PHP模块
3、测试脚本

四、关于本文


++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++

一、环境需求
安装Memcached需要libevent库的支持,所以请在安装Memcached之前检查有没有安装libevent。测试环境还需要PHP的支持,本文假设PHP已经安装到/usr/local/php目录下,也就是在编译PHP的时候使用perfix参数指定目录(--prefix=/usr /local/php)

二、下载相关软件

Memcached下载地址:http://www.danga.com/memca...
memcache PHP模块下载地址: http://pecl.php.net/packag... 推荐使用1.5版
libevent 下载地址: http://www.monkey.org/~pro...

本文不再讲述如何安装libevent

三、安装和配置

1、安装Memcached
root@tonyvicky:# tar vxzf memcached-1.1.12.tar.gz
root@tonyvicky:# cd memcached-1.1.12
root@tonyvicky:# ./configure --prefix=/usr/local/memcached
root@tonyvicky:# make
root@tonyvicky:# make install

安装完之后要启动服务
root@tonyvicky:# cd /usr/local/memcached/bin
root@tonyvicky:# ./memcached -d -m 50 -p 11211 -u root

参数说明 -m 指定使用多少兆的缓存空间;-p 指定要监听的端口; -u 指定以哪个用户来运行

2、安装memcache PHP模块
root@tonyvicky:# tar vxzf memcache-1.5.tgz
root@tonyvicky:# cd memcache-1.5
root@tonyvicky:# /usr/local/php/bin/phpize
root@tonyvicky:# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
root@tonyvicky:# make
root@tonyvicky:# make install

安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/

把这个记住,然后修改php.ini,把
extension_dir = "./"

修改为
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"

并添加一行
extension=memcache.so

3、测试脚本

自己写一个PHP程序测试一下吧
$memcache = new Memcache; //创建一个memcache对象
$memcache->connect('localhost', 11211) or die ("Could not connect"); //连接Memcached服务器
$memcache->set('key', 'test'); //设置一个变量到内存中,名称是key 值是test
$get_value = $memcache->get('key'); //从内存中取出key的值
echo $get_value;
?>

vmware用NAT方式实现FreeBSD上网

| November 10, 2008 10:40 | root | Via 本站原创
如有不懂请参考:http://blog.csdn.net/crack...
我用的是VMware版本是 5.5.3,host机器运行的是windows Xp professional 。

1、安装VMware workstation

2、安装guest系统,这里我安装的Red Hat Linux9,安装过程中确保网络连接选择的是NAT方式,当然可以在安装完后进行修改。

3、到windows XP 中,查看所有的网络连接,你应该发现除了原有的网卡之外,又多了Vmnet1和Vmnet8。vmnet1是hostonly的接口,而Vmnet8是就是我们要使用的NAT的网络接口。

4、在win主机上用ipconfig查看VMnet8的IP地址,
一般是192.168.X.1/255.255.255.0,
此时VMnet8的设置应该是自动获取IP,现在改成静态IP,并把此IP直接填入VMnet8里,不设网关。

5、同时在VM网络设置里的NAT项中查看VMnet8,一般是192.168.X.2/255.255.255.0
这个地址就是VMnet8,NAT的网关

6、现在在LINUX下把网卡IP设置成和VMnet8一个网段的IP(192.168.X.Z/255.255.255.0)

7、网关设置成刚才查看的那个IP192.168.X.2即可

8、DNS和你host主机的一样就可以。

9、设置完成后,重新启动linux的网络服务。

10、测试一下,
ping 网关:ping 192.168.X.2
ping DNS:ping 你的DNS。

如果能ping通就ok了

在discuz的home center里看到的用法

| November 7, 2008 21:47 | root | Via 本站原创

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>



<?php
class myclass {
   function say_hello()
   {
       echo "Hello!\n";
   }
}

$classname = "myclass";

call_user_func(array($classname, 'say_hello'));
?>

[主辅同步]教你在MySQL 5.0以上版本中配置主从库

| November 7, 2008 17:28 | root | Via 本站原创
下面直接记录下配置主从库的操作:(本文用的是mysql5.0以上)

1.在主库建立要同步的数据库,建立主库的帐号和修改主库配置

首先连接上数据库


mysql -S /tmp/mysql-3108.sock


创建测试同步的数据库,"
create database sinatest;
"

然后建立负责同步的用户!


grant all on *.* to ali@"%" Identified by "abc111";








然后修改/data2/ali/mysql3308/my.cnf主库的配置,增加


binlog-do-db=sinatest


应该这样写:


server-id = 101
log-bin = bin_log
binlog-do-db=sinatest

否则出现:

Error reading packet from server: Binary log is not open ( server_errno=1236)//就是log-bin = bin_log需要配置一下



The slave I/O thread stops because master and slave have equal MySQL server ids;//server-id = 101需要配置,且和slave机器的server-id=2不同喔,否则出错。。。



2.修改从库配置

然后修改/data2/ali/mysql3309/my.cnf从库的配置,增加


master-host=127.0.0.1

master-user=ali

master-password=abc111

master-port=3308

server-id=2

master-connect-retry=60

replicate-do-db=sinatest

log-slave-updates


3.重启mysql



先杀死mysql进程,然后再启动


/usr/local/mysql/bin/mysqld_safe --defaults-file=/data2/ali/mysql3308/my.cnf --user=root &

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data2/ali/mysql3309/my.cnf --user=root &



4.在主库创建数据表,检查从库是否同步正确

进入主库,创建数据表


mysql -S /tmp/mysql-3108.sock

CREATE TABLE if not exists ali_test_00 (

`id` int(11) unsigned NOT NULL auto_increment,

`my_id` varchar(16) binary NOT NULL default '',

`my_title` varchar(96) binary NOT NULL default '',

`status` int(11) unsigned NOT NULL default '1',

PRIMARY KEY (`id`),

KEY `my_id` (`my_id`)

) TYPE=MyISAM;




insert into ali_test_00 values (null,32,"aliwwww",1);

insert into ali_test_00 values (null,32,"aliwwww",1);


然后检查从库是否有该表和表中是否有数据

5.检查主从库常用命令
SHOW SLAVE STATUS;

SHOW MASTER STATUS;

slave stop;

slave start;


CHANGE MASTER TO

MASTER_HOST='127.0.0.1',

MASTER_USER='ali',

MASTER_PASSWORD='abc111',

MASTER_LOG_FILE='mysql-bin.000003',

MASTER_LOG_POS=0;


load data from master//马上同步的命令

mysqladmin shutdown: 这样停掉mysql靠谱点,比起用kill -9 好!
6.  测试
在  database:  sinatest体验一下
分页: 6/259 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]