读者对以下的安装插件和说明文档,可在https://download.csdn.net/download/zhmy_006/11105967进行下载。
一、安装mysql
安装过程请参考:https://blog.csdn.net/zhmy_006/article/details/55046563
所需文件放在mysql安装文件中。
其中install_mysql.sh是执行安装命令。mysql-5.5.20.tar.gz为mysql源文件,mysql.sh为数据库自动完整备份。关于linux定时任务请读者上网自行查询。
在本部署中,定时备份可以不需要。
二、安装nginx
所需文件放在“nginx所需中”,安装步骤如下:
1 nginx安装环境
nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境。
n gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum -y install gcc-c++
n PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
n zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
n openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
2 编译安装
将nginx-1.8.0.tar.gz拷贝至linux服务器。
解压:
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
1、 configure
./configure --help查询详细参数(参考本教程附录部分:nginx编译参数)
参数设置如下:
注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录,
也需要先建立: mkdir -p /usr/local/nginx/
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
2、 编译安装
make
make install
/usr/local/nginx目录下,
安装成功查看安装目录 :
2 启动nginx
cd /usr/local/nginx/sbin/
./nginx
查询nginx进程:
7978是nginx主进程的进程id,7979是nginx工作进程的进程id
注意:执行./nginx启动nginx,这里可以-c指定加载的nginx配置文件,如下:
./nginx -c /usr/local/nginx/conf/nginx.conf
如果不指定-c,nginx在启动时默认加载conf/nginx.conf文件,此文件的地址也可以在编译安装nginx时指定./configure的参数(--conf-path= 指向配置文件(nginx.conf))
3 停止nginx
方式1,快速停止:
cd /usr/local/nginx/sbin
./nginx -s stop
此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
方式2,完整停止(建议使用):
cd /usr/local/nginx/sbin
./nginx -s quit
此方式停止步骤是待nginx进程处理任务完毕进行停止。
三、安装php
为了方便以后使用,选择将 GD 库也一起安装上。
3.1 安装 GD 库支持
3.1.1 安装 zlib
#tar -zxvf zlib-1.2.3.tar.gz
#cd zlib-1.2.3
#./configure
#make&&make install
3.1.2 安装 libpng
#tar -zxvf libpng-1.5.1.tar.gz
#cd libpng-1.5.1
#cd scripts/
#mv makefile.linux ../makefile
#cd ../
#./configure
#make&&make install
3.1.3 安装 freetype
#tar -zxvf freetype-2.4.4.tar.gz
#cd freetype-2.4.4
#./configure
#make&&make install
3.1.4 安装 jpeg
#mkdir /usr/local/jpeg
#mkdir /usr/local/jpeg/bin
#mkdir /usr/local/jpeg/lib
#mkdir /usr/local/jpeg/include
#mkdir /usr/local/jpeg/man
#mkdir /usr/local/jpeg/man/man1
#tar -zxvf jpegsrc.v6b.tar.gz
#cd jpeg-6b/
#./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
#make&&make install
3.1.5 安装 GD
#tar -zxvf gd-2.0.33.tar.gz
#cd gd-2.0.33
#./configure --prefix=/usr/local/gd --with-png --with-freetype --with-jpeg
#make&&make install
默认情况下 nginx 和 php 之间是没有直接联系的,apache+php 编译后生成的是模块文
件,而 nginx+php 需要 php 生成可执行文件才可以,所以还需要利用 fastcgi 技术来实现
nginx 与 PHP 的整合,在这里选择 php 官方网站推荐的 php-fpm 插件来管理 fastcgi,安装
php 时以补丁的形式将 php-fpm 安装进去并且必须保证 php-fpm 对应一致的 php 版本。这里
安装的 php 版本为 php-5.2.17 对应的 php-fpm 版本为 php-5.2.17-fpm-0.5.14。
3.1.6 安装curl
#tar -zxvf curl-7.17.1.tar.gz
#cd curl-7.17.1
#./configure --prefix=/usr/local/curl
#make&&make install
3.2 安装 php 及 php-fpm 插件
#tar -zxvf php-5.2.17.tar.gz
将 php-fpm 以补丁的形式加到 php-5.2.17 中
#gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
#cd php-5.2.17
#./configure --prefix=/usr/local/php --with-curl=/usr/local/curl --with-mysql=/usr/local/mysql --with-gd --with-jpeg-dir=/usr/local/jpeg --with-png-dir --with-zlib --enable-xml --enable-mbstring --enable-fastcgi --enable-fpm
看到 Thank you for using PHP.则可以进行下一步
#make&&make install
安装完成后将 php 的配置文件 php.ini 复制到/usr/local/php/etc 中
#cp php.ini-dist /usr/local/php/etc/php.ini
启动 php-fpm
#/usr/local/php/sbin/php-fpm start
会出现
Starting php_fpm Apr 01 23:25:30.027460 [ERROR] fpm_unix_conf_wp(), line 124:
please specify user and group other than root, pool 'default'
................................... failed
报错,是由于 php-fpm 不知道以哪个用户和组运行 php 造成的,所以修改 php-fpm 的
配置文件将 <!--<value name="user">nobody</value> -->Unix group of processes<!--
<value name="group">nobody</value>-->的注释去掉,使其默认使用nobody用户和组运行。
#vi /usr/local/php/etc/php-fpm.conf
修改完后保存重启,看到 Starting php_fpm done
3.3 安装 ZendOptimizer
#tar -zxvf ZendOptimizer-2.5.7-linux-glibc21-i386.tar.gz
#cd ZendOptimizer-2.5.7-linux-glibc21-i386
#./install.sh
然后一路回车默认即可,到 Specify the location where to install Zend Optimizer
这一步时提示输入安装路径,这里选择安装在/usr/local/Zend 目录下,到 Enter the
location of your php.ini file 这 一 步 提 示 输 入 php.ini 的 路 径 , 这 里 输 入
/usr/local/php/etc ,到 Are you using Apache Web server?这一步提示使用的 webserver
是否为 apache,这里选择< No >,然后全部选择默认即可,安装完重启 nginx 和 php-fpm。
四、整合 nginx 和 php
4.1 编辑 nginx 的配置文件
#vi /usr/local/nginx/conf/nginx.conf 找到
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME scripts$fastcgi_script_name;
# include fastcgi_params;
# }
将前面的#注释全部去掉,并在 fastcgi_param SCRIPT_FILENAME 添加 php 网站的放
置路径,这里设定为/usr/local/nginx/html 修改完成后为
location ~ \.php$ {
root /usr/local/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
这样 Nginx 就可以知道怎么把得到的请求传达给 PHP,Nginx 在得到*.php 请求时,会
把请求通过 9000 端口传给 PHP。而 php-fpm 默认的会在本机侦听 9000 端口,如果要修改为
其它端口,可以修改 nginx.conf 中 fastcgi_pass 127.0.0.1:9000;和 php-fpm 中的
<value name="listen_address">127.0.0.1:9000</value>。
4.2 编辑 php 配置文件 php.ini
#vi /usr/local/php/etc/php.ini 找到
;doc_root =
;cgi.fix_pathinfo=0 将前面的注释去掉并修改为
doc_root =
cgi.fix_pathinfo=1
4.3 测试安装的 php
在/usr/local/nginx/html 中新建 phpinfo.php 测试文件添加<?php phpinfo(); ?>。
重启 php-fpm 和 nginx
#/usr/local/php/sbin/php-fpm restart
#killall -HUP nginx
最后在浏览器中查看环境是否搭建成功,如有其它需要,更改 nginx 和 php 的配置文件
即可。