2016-1-17 博客文章增加了markdown格式,由MD标记

2016-12-22 07:11:00

系统:centos


1.查看系统版本

cat /etc/redhat-release

结果:CentOS release 6.5 (Final)

 

2.关闭防火墙

先查看防火墙: service iptables status, 未开启则不予理会。

已开启,用service iptables stop停掉防火墙服务。

关闭防火墙的目的,只是为了更快速的判断nginx是否安装成功

 

3. Nginx安装

CentOS默认的标准源里没有nginx软件包

所以先配置atomic源(不同源包含不同软件包,atomic源含nginx软件包)

 wget http://www.atomicorp.com/installers/atomic 
 sh ./atomic
 yum check-update


(wget未安装,就yum install wget来安装 )

安装所需依赖包:

yum -y install gcc gcc-c++ autoconf cmake libjpeg libjpeg-devel libpng \
libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel \
glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel \
curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel \
openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients \
openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN


安装nginx:

yum install nginx
service nginx start

若报错::80 failed (97: Address family not supported by protocol


解决办法:

vim /etc/nginx/conf.d/default.conf

listen       80 default_server; (去掉default_server)
listen       [::]:80 default_server; (用#注释掉此行)

用服务器公网ip访问,nginx安装成功会有提示安装成功的页面。

Centos6.5如下:
lnmp-nginx1.png

4.安装mysql

yum install mysql mysql-server mysql-devel <br>service mysqld start

初始安装成功。Mysql用户root密码为空。

查看数据库用户情况:

>select user,host,password from mysql.user;

(host为%,表示任意ip的机器皆可访问)

修改root密码:

>update mysql.user set password = PASSWORD('*********') where user='root';

新增用户,用于远程连接:

>CREATE USER 'username'@'host' IDENTIFIED BY 
'password';
>grant all privileges on database_name.* to username@host; //分配database_name数据库的所有权限
>flush privileges //刷新系统权限表

(若只允许某一条电脑可以远程连接,host就填该电脑的固定ip)
()若不需要密码,直接去掉identified by 'password'即可。)

 5.PHP安装

yum install php lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap \
php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap

yum install  php-tidy php-common php-devel php-fpm php-mysql
service php-fpm start

php-fpm, fastcgi 是什么东东?

Fastcgi只是协议

Php-cgi:php解释器

Php-fpm:可以进行进程管理,调度php-cgi程序执行

这篇解释得较浅显易懂:http://blog.csdn.net/meegomeego/article/details/36180343


 

配置nginx支持php:

//将配置文件改为备份文件

mv /etc/nginx/nginx.conf /etc/nginx/nginx.confbak

//由于原配置文件要自己去写因此可以使用默认的配置文件作为配置文件

cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf


编辑 /etc/nginx/nginx.conf文件:

//加入index.php

index index.php index.html index.htm;
location ~ \.php$ {
            root      网站目录,例如/opt/drunkhero;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

($document_root指的就是网站目录)

再重新启动一下服务:

service nginx restart
service php-fpm restart


在网站目录下新建个测试文件test.php:

<?php
   phpinfo();
?>

查找测试页面里是否有mysql版块,没有就补上php-mysql。

(有一次俺把这个漏了,数据库可以访问,网站却总显示不了数据,找bug就找了好半天。装了这个,mysql_connect,mysql_select_db等函数才起作用)

本地浏览器输入:服务器ip/test.php

显示php界面  lnmp环境搭建成功。


参考链接:

Lnmp安装:https://my.oschina.net/ruiorz/blog/280289(编译式安装)

(centos6.4(64位)安装nginx1.7.1+php-5.5.13+mysql-5.5.25 )

Lnmp安装:http://www.cnblogs.com/xiaoit/p/3991037.html(centos6.5自动式安装)

FastCgi与php-fpm的关系:http://blog.csdn.net/meegomeego/article/details/36180343