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

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