Leo の Blog Where there is a will there is a way! Trust youself can do it!

4八/090

发布一个基于 Zend Framework 的开源项目 momoger.com

作开源工作很累。 这个项目是我在新公司给同事们介绍 Zend Framework 用的示例项目。 可惜效果不是很理想。具体的就不说了。

项目源码发布到 google code 上。 项目地址为: http://code.google.com/p/momoger/

喜欢学习 Zend Framework 的同学可以下载去看看, 这个例子还是比较全面的。 以后有时间可能把其他的方面也开发进来。

建议先看项目里的 documents/readme.txt , 关键的说明我都写在里面了。

有问题和已经可以和我交流。 呵呵!

1七/090

PHP5.3.0 正式发布, 超级爽!

今天晚上打开 php.net 一看, 5.3.0 的正式版已经发布。 刚刚手头有台机器刚装了 ubuntu, 编译了一下 LAMP 系统, PHP 5.3.0 改动比较大。 第一眼看到的 php.ini 文件里已经变动了。 感觉比一以前版本的舒服点了。 有了开发环境和生产环境的配置区分了。 详细的以后慢慢了解了。 貌似增强了很多功能。 从 phpinfo() 里看出来的。 放出一张刚测试出的phpinfo()截图, 后面张贴一下本次编译的命令记录。

php-5.3.0-info

php-5.3.0-info

看看编译的一堆命令。 有需要的朋友可以拿去参考一下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
sudo apt-get install build-essential gcc make autoconf automake1.9 libtool
 
sudo apt-get install zlib1g-dev libdb-dev
 
tar -jxf apr-1.3.5.tar.bz2 -C ../builds/
tar -jxf apr-util-1.3.7.tar.bz2 -C ../builds/
tar -zxf httpd-2.2.11.tar.gz -C ../builds/
 
cd ../builds/
cd apr-1.3.5/
./configure 
make
sudo make install
 
cd ../apr-util-1.3.7/
./configure --with-apr=/usr/local/apr --with-berkeley-db=/usr
make
sudo make install
 
cd ../httpd-2.2.11/
./configure --prefix=/usr/local/apache2 --enable-rewrite=shared --enable-dav=shared --enable-so --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config
make
sudo make install
 
 
sudo apt-get install libxml2 libxml2-dev
 
tar -zxf neon-0.28.4.tar.gz -C ../builds/
tar -zxf zlib-1.2.3.tar.gz -C ../builds/
tar -zxf expat-2.0.1.tar.gz -C ../builds/
tar -zxf subversion-1.6.2.tar.gz -C ../builds/
mkdir ../builds/subversion-1.6.2/sqlite-amalgamation
tar -zxf sqlite-amalgamation-3.6.13.tar.gz
cp sqlite-3.6.13/sqlite3.c ../builds/subversion-1.6.2/sqlite-amalgamation/
rm -rf sqlite-3.6.13
 
cd ../builds/neon-0.28.4/
./configure
make
sudo make install
 
cd ../zlib-1.2.3/
./configure --prefix=/usr/local/zlib
make
sudo make install
 
cd ../expat-2.0.1/
./configure
make
sudo make install
 
cd ../subversion-1.6.2/
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-neon=/usr/local --with-zlib=/usr/local/zlib --with-ssl
make
sudo make install
 
tar -zxf mysql-5.0.83-linux-i686-icc-glibc23.tar.gz
sudo mv mysql-5.0.83-linux-i686-icc-glibc23 /usr/local/mysql
cd /usr/local/mysql/
sudo groupadd mysql
sudo useradd -g mysql mysql
sudo scripts/mysql_install_db --user=mysql
sudo chown -R mysql .
sudo chgrp -R mysql .
sudo chown -R root .
sudo chown -R mysql data
cd support-files/
sudo cp my-medium.cnf /etc/my.cnf
sudo gedit /etc/my.cnf
sudo ./mysql.server start
cd ../bin
./mysqladmin -u root password 'mypassword'
./mysql -u root -p
cd ../support-files/
sudo ./mysql.server stop
 
sudo apt-get install flex libpng12-0 libpng12-dev libltdl3-dev
sudo ln -sf libpng12.so.0 libpng.so
 
tar -zxf curl-7.19.5.tar.gz -C ../builds/
tar -zxf jpegsrc.v6b.tar.gz -C ../builds/
tar -zxf freetype-2.3.9.tar.gz -C ../builds/
tar -zxf libmcrypt-2.5.8.tar.gz -C ../builds/
tar -zxf mhash-0.9.9.9.tar.gz -C ../builds/
tar -zxf php-5.3.0.tar.gz -C ../builds/
 
cd ../builds/curl-7.19.5/
sudo mkdir /usr/local/curl
./configure --prefix=/usr/local/curl --with-ssl
make
sudo make install
 
cd ../jpeg-6b/
sudo mkdir /usr/local/jpeg
sudo mkdir /usr/local/jpeg/bin
sudo mkdir /usr/local/jpeg/lib
sudo mkdir /usr/local/jpeg/include
sudo mkdir /usr/local/jpeg/man
sudo mkdir /usr/local/jpeg/man/man1
./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
make
sudo make install
 
cd ../freetype-2.3.9/
./configure --prefix=/usr/local/freetype2
make
sudo make install
 
cd ../libmcrypt-2.5.8/
./configure --prefix=/usr/local/libmcrypt
make
sudo make install
 
cd ../mhash-0.9.9.9/
./configure --prefix=/usr/local/libmhash
make
sudo make install
 
cd ../php-5.3.0/
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/php \
--with-openssl \
--with-zlib \
--with-zlib-dir=/usr/local/zlib \
--enable-bcmath \
--enable-calendar \
--with-curl=/usr/local/curl \
--with-curlwrappers \
--enable-ftp \
--with-gd \
--with-jpeg-dir=/usr/local/jpeg \
--with-png-dir=/usr \
--with-freetype-dir=/usr/local/freetype2 \
--enable-gd-native-ttf \
--with-gettext \
--with-mcrypt=/usr/local/libmcrypt \
--with-mhash=/usr/local/libmhash \
--enable-mbstring \
--enable-exif \
--with-mysql=/usr/local/mysql \
--with-pdo-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-xmlrpc \
--enable-soap \
--enable-sockets \
--enable-zip
 
sudo cp php.ini-development /usr/local/php/php.ini
sudo gedit /usr/local/apache2/conf/httpd.conf

OK, 玩过头了。 赶紧睡觉先!

标签: , 没有评论
27五/090

快速搭建Linux开发测试WEB服务器系列13-Nginx部署实例1-准备服务器

现在我们准备服务器. 使用 VMware 虚拟机软件创建个Linux虚拟机. 分配给256M 内存即可. 载入 ubuntu-8.04.2-altername.iso 映像文件. 启动虚拟机. 安装 base-system (command-line system). 安装方法参考前面的文章. 安装完成后修改源地址, 使用 cn99 的源, 不装任何window包. 也不用中文支持, 我们只需要命令行界面即可, 这样可以节省资源. 安装完成后的系统大概 在 700M 左右的样子. 内存占用在 100 M 以下. 我们只要安装一台基本的虚拟机即可. 后面的各个不同的系统都是基于这个基本系统然后再加上相关的软件包.

现在我们给这个基本系统安装一下编译经常用到的工具.

1
2
3
sudo apt-get install make gcc build-essential autoconf automake1.9 flex libtool
sudo apt-get autoclean
sudo apt-get  clean

基本系统已经准备OK, 这里还有点可以选择修改的. 那就是我们装的是E文系统. 默认是外国时区. 选择修改成中国上海时间. 执行 tzselect 后依次选择即可 , 大概选择的数字为: 5,9,1,1

1
2
3
tzselect
sudo cp /usr/share/zoneinfo/Asia/ShangHai /etc/localtime
sudo ntpdate cn.pool.ntp.org

另外个人觉得字符界面默认显示的分辨率太小了. 好像是 640 X 480 的. 可以改的大一点. 看起来舒服点. 看个人的屏幕了. 我这里是改成 800 X 600 的. 修改 /boot/grub/men.lst 文件. 需要管理员权限. 找到

kernel      /boot/vmlinux-xxxxxx 这一行, 最后面加上空格然后加: vga=788 这样就是 16位的 800 X 600 的分辨率了. 这里再给出几个其他分辨率值. 都是基于 16 位显示模式的. 785(640 * 480), 791(1024 * 768), 794(1280 * 1024), 834(1400 * 1050), 884(1600 * 1200). 其他的请参考: http://spblinux.de/2.0/grub.htm 不会改的这里建议不要修改, 否则小心系统启动出错. :)

现在可以关闭虚拟机了. 我们对这个虚拟机进行 克隆. 一下生成我们所需要的任意服务器. 这里说一下 克隆完虚拟机后必要的操作. 每个克隆完的虚拟机都要进行该操作. 因为克隆完后的虚拟机, VMware 已经对克隆的虚拟机的MAC地址进行了修改. 但是我们的系统还是认为是以前的MAC地址. 所以会出现无法联网的情况. 而且主机名也还没被该. 这里以数据库服务器虚拟机为例. 修改方法如下:

启动克隆后的虚拟机. 输入帐号和密码进入系统. 修改主机名,修改 /etc/hosts 文件. 把 127.0.0.1  BaseUbuntu 换成 127.0.0.1  MysqlHost 保存退出. 修改 /etc/hostname 文件, 删除所有内容, 然后输入 MysqlHost 保存退出.删除 /etc/udev/rules.d/70-persistent-net.rules 文件, 重启虚拟机系统会自动识别新网卡.

1
2
3
4
sudo vim /etc/hosts
sudo vim /etc/hostname
sudo rm /etc/udev/rules.d/70-persistent-net.rules
sudo reboot

再这之前虚拟机要重启! 接下来 IP 地址也修改成手动指定的. MYSQL 服务器设定为IP: 192.168.1. 25 备份 /etc/network/interface 文件, 然后修改内容成下面的内容:

1
2
sudo mv /etc/network/interface /etc/network/interface.backup
sudo vim /etc/network/interface

auto eth0
iface eth0 inet static
address 192.168.1.25
netmask 255.255.255.0
gateway 192.168.1.1

auto lo
iface lo inet loopback

再修改DNS服务器地址: 这里以上海的电信DNS为准了.

1
sudo vim /etc/resolv.conf

nameserver 124.74.213.68
nameserver 202.96.209.133

重启网络服务.

1
2
sudo /etc/init.d/networking stop
sudo /etc/init.d/networking start

到这里, 从克隆一个虚拟机到改装成一个全新的虚拟机就OK了.  剩下的就给不同的服务器分别装上不同的软件即可.

我们再给各个服务器设定一下IP:和安装的相关的软件包.

Nginx服务器: 192.168.1.188, 软件包: nginx, pcre

PhpApp1服务器: 192.168.1.51 软件包: php-5.2.9, php-fpm, php相关扩展

PhpApp2服务器: 192.168.1.52 软件包和PhpApp1 一样

MySQL服务器: 192.168.1.25 软件包: mysql-5.1.3

Varnish 服务器: 测试时不用.

Memcache服务器: 测试时不用.

准备好上面的虚拟机后. 下篇我们根据这个系统介绍一下 Nginx 的配置.

27五/090

快速搭建Linux开发测试WEB服务器系列12-Nginx部署实例

这篇我们利用虚拟机搭建一套测试服务器系统. 其实主要是测试 Linux + Nginx + PHP(FasgCGI) + MySQL 这套系统.前篇简单的说了下 Nginx 的配置. 这里我们根据实际的情况详细的介绍 Nginx 配置文件的设置.

我们打算用虚拟机搭建一套下面的图示系统. 见图:

services

大概意思图上应该已经表示的非常的清楚了.  其实稍加修改, 可以作为中小型的WEB服务器参考方案. 而且效果也会非常的不错.

接下来用虚拟机就可以实现上面的环境, 后续文章我们相继再介绍. 不过这个需要个比较好的电脑, 像我这个 赛扬1.4, 945的板子 另加 1.5G 的内存的古董本本可能模拟起来有点难度. 不过先试试看了.  下篇我们就开始创建这些虚拟服务器了.

26五/090

快速搭建Linux开发测试WEB服务器系列10-Nginx+PHP

前面我们介绍到是 Apache + PHP 模式到解决方案. 现在介绍一个目前很流行也是很高效到一套Web服务器构架模式: Nginx + FastCgi + PHP 这样到服务器方案. 由于我们前面再介绍 Apache + PHP 的时候已经把 安装 PHP 环境到相关软件包都已经安装好了. 这篇我们注意介绍安装 Nginx 和 PHP 方面到内容. 若有问题, 请参考前面到系列文章.

我们重新编译安装一个 PHP 环境, 先前我们编译安装到是 PHP 环境是和 Apache 集成在一起到. 不能用于 FastCgi 模式. 安装路径再 /usr/local/php , 这里我们重新编译PHP并且安装到 /usr/local/php-cgi 这样不至于混在一起. php-5.2.9.tar.gz 我们已经下载好了. 这里要下载一个补丁包 php-5.2.9-fpm-0.5.10.diff.gz , 网站地址为: http://php-fpm.anight.org/ PHP-FPM 是一个很不错到 fastCgi 进程管理器. 效果很不错, 现在应用也很广泛. 不过目前还不是官方认可到扩展. 所以得给PHP打补丁, 编译时 PHP 才能认识这个东西.

先给工作站安装一下邮件发送程序:

1
sudo apt-get install sendmail

我们解压下载的PHP包, 并且打上补丁. 然后移动到我们编译源码存放到目录里. 之后编译安装 PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
tar -zxf php-5.2.9.tar.gz
gzip -cd php-5.2.9-fpm-0.5.10.diff.gz | patch -d php-5.2.9 -p1
mv php-5.2.9 ~/sources/php-5.2.9-fpm-patch
cd ~/sources/php-5.2.9-fpm-patch
./configure \
--prefix=/usr/local/php-cgi \
--enable-fpm \
--enable-fastcgi \
--enable-force-cgi-redirect \
--with-config-file-path=/usr/local/php-cgi \
--with-openssl \
--with-zlib \
--with-zlib-dir=/usr/local/zlib \
--enable-bcmath \
--enable-calendar \
--with-curl=/usr/local/curl \
--with-curlwrappers \
--enable-ftp \
--with-gd \
--with-jpeg-dir=/usr/local/jpeg \
--with-png-dir=/usr/local \
--with-freetype-dir=/usr/local/freetype2 \
--enable-gd-native-ttf \
--with-gettext \
--with-mcrypt=/usr/local/libmcrypt \
--with-mhash=/usr/local/libmhash \
--enable-mbstring \
--enable-exif \
--with-mysql=/usr/local/mysql \
--with-pdo-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-xmlrpc \
--enable-soap \
--enable-sockets \
--enable-zip
make
sudo make install

同样, 如果想直接 COPY 上面到 configure 代码到话, 请COPY下面到这行. 上面到由于回车符 WIN 和 LINUX 到不能. configure 参数不一定能是上面指定到效果. 后面到 make , sudo make install 一样.

1
./configure --prefix=/usr/local/php-cgi --enable-fpm --enable-fastcgi --enable-force-cgi-redirect --with-config-file-path=/usr/local/php-cgi --with-openssl --with-zlib --with-zlib-dir=/usr/local/zlib --enable-bcmath --enable-calendar --with-curl=/usr/local/curl --with-curlwrappers --enable-ftp --with-gd --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local --with-freetype-dir=/usr/local/freetype2 --enable-gd-native-ttf --with-gettext --with-mcrypt=/usr/local/libmcrypt --with-mhash=/usr/local/libmhash --enable-mbstring --enable-exif --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-xmlrpc --enable-soap --enable-sockets --enable-zip

这里 PHP 就算安装完毕了. 我们再把配置文件COPY到指定到位置, 按照自己到需求修改即可.

1
2
sudo cp php.ini-recommended /usr/local/php-cgi/php.ini
sudo gedit /usr/local/php-cgi/php.ini

同样的, 我们给它也装上 memcache 和 imagick 扩展.使用我们前面已经下载好到包.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cd ~/downs
tar -zxf memcache-2.2.5.tgz
rm package.xml
tar -zxf imagick-2.2.2.tgz
rm package.xml
mv memcache-2.2.5 ~/sources/memcache-2.2.5-cgi
mv imagick-2.2.2 ~/sources/imagick-2.2.2-cgi
cd ~/sources/memcache-2.2.5-cgi
/usr/local/php-cgi/bin/phpize
./configure --with-php-config=/usr/local/php-cgi/bin/php-config
make
sudo make install
cd ~/sources/imagick-2.2.2-cgi
/usr/local/php-cgi/bin/phpize
./configure --with-php-config=/usr/local/php-cgi/bin/php-config
make
sudo make install

/usr/local/php-cgi/php.ini 到文件修改设置和前面到文章里介绍到的一样. 这里不再说明.

由于我们是测试工作站. 有些服务专用账号我们就默认使用自己的登录账号了. 现在我们在自己到主目录下建立一个文件夹专门存放日志使用. 另外再建立一个文件夹作为网站项目到根目录.

1
2
3
4
cd ~
mkdir www
mkdir logs
mkdir logs/nginx

这里我们修改一下 php-fpm.conf 配置文件信息.

1
sudo gedit /usr/local/php-cgi/etc/php-fpm.conf

去掉所有被注释掉到代码. 其实就三行被注释掉了 :)

修改: <value name="display_errors">1</value>

修改: <value name="user">你到登录名</value>

修改: <value name="group">你所属到用户组, 不知道就写成你到登录名</value>

保存推出. 现在启动 php-fpm

1
sudo /usr/local/php-cgi/sbin/php-fpm start

再安装 Nginx 前, 先安装一个 Nginx 依赖到库 PCRE 可以到 http://www.pcre.org/ 上下载. 然后解压安装.

1
2
3
4
5
6
7
8
9
10
11
tar -zxf pcre-7.9.tar.gz -C ~/sources
cd ~/sources/pcre-7.9
./configure
make
sudo make install
cd ~/downs
tar -zxf nginx-0.7.59.tar.gz -C ~/sources
cd ~/sources/nginx-0.7.59
./configure --user=mm --group=mm --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
sudo make install

OK, Nginx 安装完成了. 接下来我们来配置这个服务器, 让它能正常到运行. 配置我们到下一篇讲. 比较麻烦. 这篇先到这里吧. 太累了. 睡觉先!

   下一页