之前有一篇博客写的是LAMP的环境搭建,今天来详细介绍一下另外一个模式——LNMP=Linux+Nginx+MySQL+PHP。
一、在Linux系统下nginx的安装过程,先到http://nginx.org/download/这个网站找到自己需要下载的版本,复制下载的链接地址,这里以nginx-1.6.2为例,在命令行输入命令:
cd /usr/local/src //将安装包下载到/usr/local/src目录下
wget http://nginx.org/download/nginx-1.6.2.tar.gz
tar zxvf nginx-1.6.2.tar.gz //解压缩
cd nginx-1.6.2 //切换到解压后的nginx目录
./configure --prefix=/usr/local/nginx //安装到/usr/local目录下
在执行上述命令的时候我的服务器报了一个错误:
上述错误说找不到C编译器,那就给你装个编译器,输入命令:
yum -y install gcc gcc-c++ autoconf automake make
执行完后再使用安装命令 ./configure --prefix=/usr/local/nginx 已经不报上述错误啦,但是又提示了一个新的错误:
HTTP重写模块需要PCRE库,这就要安装PCRE库啦:
yum install pcre
输入命令居然又提示我已经安装了pcre库,Nothing to do...
这时候就要检查一下pcre-devel是否已安装了,同样输入命令:
yum install pcre-devel
执行命令,果然是没有devel,输入y继续安装完成,完成以后再次执行安装命令:
./configure --prefix=/usr/local/nginx
结果事与愿违又报了一个错:
HTTP GZIP模块需要ZLIB库,又是缺少库,按照上面那个套路再走一遍吧,命令:
yum install zlib
提示我Nothing to do...,呵呵哒,继续命令:
yum install zlib-devel
果然又是缺少devel,安装完成后再再次执行安装命令:
./configure --prefix=/usr/local/nginx
这次终于安装完成了,简直一波三折:
最后执行编译命令:
make && make install
nginx的体积比apache小的多,所以编译所需时间也很短.编译完成后切换到/usr/local/nginx目录将看到四个目录:
conf 主要放置配置文件
html 主要放置网页文件
logs 主要放置日志文件
sbin 主要放二进制程序
想启动nginx的话只需要输入命令:
./sbin/nginx
注意:如果你在前面已经安装了apache的话,这时候可能会报一个错误,
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) //这是因为你的80端口已经被占用,启动nginx的时候冲突
netstat -tunlp //查看正在运行的服务或软件
找到占用80端口的软件或者服务将其关闭即可,之后再输入./sbin/nginx 命令,如果人品正常的话应该已经正常启动了.
二、yum安装MySQL:
yum install mysql mysql-devel mysql-server
这个没啥好说的,一路y安装下来即可
三、安装PHP:
先到PHP官网找到需要的版本,以php-5.6版本为例输入命令:
cd /usr/local/src
wget https://www.php.net/distributions/php-5.6.36.tar.gz
tar zxvf php-5.6.36.tar.gz
cd php-5.6.3
切换到解压好的目录进行编译,编译的时候需要加上一些支持,如mysqlnd、ttf、gd等(ps:Apache+PHP的编译安装和nginx+PHP的安装是不同的,
apache一般是把php当做自己的一个模块来启动的,而nginx则是把http请求变量转发给php进程,即将php当做一个独立进程与nginx进行通信,称为 fastcgi运行方式):
./configure --prefix=/usr/local/php --with-mysql=mysqlnd --enable-mysqlnd --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --enable-fpm
编译时需要注意可能会提示错误,如缺少某些包,这时候像上面安装nginx一样的套路,比如我遇到未找到libxml2的错误,直接命令:
yum install libxml2 libxml2-devel
果然又是缺少包,安装完成后再次编译,此时又提示我:
configure: error: png.h not found.
这是因为安装GD模块缺少libpng 与 libpng-devel:
yum install libpng libpng-devel
在编译顺利完成,完成后别忘记:
make && make install
编译完成后还要做一些PHP的配置操作:
cp /usr/local/src/php-5.6.36/php.ini-development php.ini-production
cp /usr/local/src/php-5.6.36/php.ini-development ./lib/php.ini
cp etc/php-fpm.conf.default etc/php-fpm.conf
到这里就已经完成了LNMP的搭建,别忘了cd /usr/local/php目录启动PHP:
./sbin/php-fpm
netstat -tunlp //查看正在运行的服务或软件