一,Nginx安装部署
安装Nginx前也有一些库需要下载,分别是pcre,zlib以及openssl。这里要说明的是下载这3个库的压缩包后,对其进行解压缩即可,无需安装。
yum -y install gcc automake autoconf libtool make gcc-c++ glibc
1,下载并解压pcre
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
tar -zxvf pcre-8.38.tar.gz
cd pcre-8.38
./configure
make
make install
2,下载并解压zlib
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install
3,下载并解压openssl
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar -zxvf openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
./configure
make
make install
问题1:WARNING! If you wish to build 64-bit library, then you have to invoke './Configure darwin64-x86_64-cc' *manually*. You have about 5 seconds to press Ctrl-C to abort.
解决方法:在 configure之前export KERNEL_BITS=64,如果还是不起作用,就要手到修改了:
进入nginx目录,
$ ./configure ./configure –prefix=/usr/locale/nginx –with-openssl=../openssl-1.0.1i –with-pcre=../pcre-8.33
手动修改 objs/Makefile:
./config –prefix=/Users/xxx/Downloads/openssl-1.0.1e/.openssl no-shared no-threads
改成
./Configure darwin64-x86_64-cc –prefix=/Users/xxx/Downloads/openssl-1.0.1e/.openssl no-shared no-threads
再make
4,必要的库已经下载好,现在就正式开始下载Nginx并安装。首先下载Nginx并解压缩:
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
预编译并指定安装路径:
(--prefix=path 定义一个目录,存放服务器上的文件,也就是nginx的安装目录。默认使用 /usr/local/nginx;详见附表(安装nginx配置说明列表))
./configure --prefix=/lnmp/nginx \ #指定nginx安装目录为/lnmp/nginx
--with-http_stub_status_module \ #安装可以查看nginx状态的程序
--with-http_ssl_module \ #使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的。
--with-pcre=/packages/pcre-8.38 \ #设置PCRE库的源码路径
--with-zlib=/packages/zlib-1.2.8 \ #设置zlib库的源码路径
--with-openssl=/packages/openssl-1.0.1g #设置openssl的源码路径
make && make install
为nginx的命令做一个软链接:
ln -s /usr/local/Cellar/nginx/sbin/nginx /usr/local/bin/
启动:nginx
关闭:nginx -s quit
二,MySQL安装
yum -y install cmake
输入命令添加名为「mysql」的用户和组,为后续步骤作准备
groupadd mysql
useradd -r -g mysql mysql
下载mysql:
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz
tar -zxvf mysql-5.6.22.tar.gz
cd mysql-5.6.22
cmake -DCMAKE_INSTALL_PREFIX=/lnmp/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/lnmp/mysql/run/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_SSL=yes
make && make install
cp support-files/my-default.cnf /etc/my.cnf # 复制配置文件
cp support-files/mysql.server /etc/init.d/mysqld # 复制启动脚本
chmod +x /etc/init.d/mysqld # 给启动脚本执行权限
cd /lnmp/mysql
chown -R mysql . #改变当前目录下的所有者为mysql用户
chgrp -R mysql . #改变当前目录下的mysql用户的文件为mysql组
然后我们初始化数据库:
./scripts/mysql_install_db --user=mysql —basedir=/lnmp/mysql
这个选项「--basedir」指定为你的MySQL安装目录。然后将目录的所有文件的所属用户改为「root」,接着将目录「data」的所属用户改为「mysql」(这一步很重要,否则数据库可能无法对这个目录进行操作):
chmod +x /etc/init.d/mysqld # 给启动脚本执行权限
cd /lnmp/mysql
chown -R mysql . #改变当前目录下的所有者为mysql用户
chgrp -R mysql . #改变当前目录下的mysql用户的文件为mysql组
然后我们初始化数据库:
./scripts/mysql_install_db --user=mysql —basedir=/lnmp/mysql
这个选项「--basedir」指定为你的MySQL安装目录。然后将目录的所有文件的所属用户改为「root」,接着将目录「data」的所属用户改为「mysql」(这一步很重要,否则数据库可能无法对这个目录进行操作):
chown -R root .
chown -R mysql data
这里的-R参数用来应用到所有子目录和文件
为了以后方便我们为所有的二进制可执行文件和动态链接库文件做一个软连接:
ln -s /lnmp/mysql/bin/* /usr/local/bin/ # 为可执行的二进制文件做软连接
ln -s /lnmp/mysql/lib* /usr/lib/ # 为动态链接库做一个软连接
配置完毕后我们启动mysql:
service mysqld start (或者/etc/init.d/mysqld start)
现在我们查看MySQL是否启动成功,MySQL占用TCP的3306端口,我们查看端口是否被占用:
netstat -antlp ¦ grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 32143/mysqld
然后我们通过mysql命令来连接mysql:
mysql -u root -p -b
三,PHP安装
首先来安装几个源码包依赖
libmcrypt mhash mcrypt
1,wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
# 这两个包安装完成后要把动态链接库做一个软连接到/usr/lib,以为接下来的mcrypt依赖于这两个包
ln -s /usr/local/lib/libmcrypt* /usr/lib
ln -s /usr/local/lib/libmhash.* /usr/lib
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
tar -zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure
这里有可能出现:configure: error: *** libmcrypt was not found;
解决方法是:export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH
make
make install
4,下载php
wget http://mirrors.sohu.com/php/php-5.6.2.tar.gz
在安装之前,我们需要安装php5.6编译时所依赖的软件包。
yum -y install gcc gcc-c++ libxml2 libxml2-devel
为了开启PHP的一些功能(例如对png格式的支持等),首先需要安装一些库,CentOS命令如下:
yum -y install libmcrypt-devel mhash-devel libxslt-devel libiconv libiconv-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel curl curl-devel openssl openssl-devel
tar zxvf php-5.6.2.tar.gz
cd php-5.6.2
./configure --prefix=/usr/local/Cellar/php --enable-fpm --with-config-file-path=/usr/local/Cellar/php/etc --with-mysql=/usr/local/Cellar/mysql --with-mysqli=/usr/local/Cellar/mysql/bin/mysql_config --with-mcrypt --enable-mbstring --enable-pdo --enable-inline-optimization --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex -with-mhash --disable-zip --with-pcre-regex --with-openssl --with-iconv=/usr/local/libiconv --with-gd --with-freetype-dir=/usr/local/Cellar/freetype --with-jpeg-dir=/usr/local/Cellar/libjpeg --with-png-dir=/usr/local/Cellar/libpng/1.6.21 --enable-opcache=no
(--with-openssl :安装OpenSSL库其它的「--with-xxx」即需要xxx库,「--enable-yyy」即开启yyy的支持,「--disable-zzz」即禁用zzz。)
make
make install
5,配置:
cp php.ini-production /usr/local/php/php.ini # 如果是开发就复制php.ini-development
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
ln -s /usr/local/php/bin/php /usr/bin/
修改/usr/local/php/etc/php-fpm.conf文件
# 将;pid = run/php-fpm.pid前的;去掉并修改为
pid = /usr/local/php/var/run/php-fpm.pid
启动php-fpm
/lnmp/php/sbin/php-fpm
修改vi /usr/local/nginx/conf/nginx.conf,支持php
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.php index.html index.htm; #添加index.php的首页文件
}
# 添加下面内容
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
include fastcgi.conf;
}
}
修改完毕后保存退出重启nginx:
pkill -9 nginx
/lnmp/nginx/sbin/nginx
然后在/usr/local/nginx/html下创建index.php,
vim /lnmp/nginx/html/index.php,保存,测试。
至此,LNMP环境搭建完毕。
四,PHP扩展安装
redis扩展安装:
wget https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz
tar zxvf phpredis-2.2.4.tar.gz #解压
cd phpredis-2.2.4 #进入安装目录
/lnmp/php/bin/phpize #用phpize生成configure配置文件
./configure --with-php-config=/lnmp/php/bin/php-config #配置
make #编译
make install #安装
安装完成之后,出现下面的安装路径:
Installing shared extensions: /lnmp/php/lib/php/extensions/no-debug-non-zts-20131226
配置php支持:
vi /usr/local/php/etc/php.ini #编辑配置文件,在最后一行添加以下内容
添加
extension="redis.so"
:wq! #保存退出
安装完成后,可通过phpinfo(),查看是否安装成功。