CentOS 6.5下LNMP环境的搭建

OS 6.5
1. 关闭 SELinux, 关闭防火墙
原因: 1.SELinux 确实可以提高服务器的安全性,但是对于服务器的性能存在一定的影响,同时它的复杂规则对于管理人员来说非常头疼,所以暂时关掉吧,非要开启也是可以的;
    2. 关闭防火墙是为了让初学者学习更加方便,对防火墙技术好的人可以开启防火墙。在企业环境中,只有配置了外网 IP 的服务器再会开启防火墙,但是即使是外网 IP ,一般情况下也不轻易的开启防火墙,高并发、高流量的业务服务器仍然不能开启防火墙,防火墙对性能存在一定的损耗,集群环境下的服务器防火墙一般都是关闭的,安全性可以借助硬件防火墙等设备进行提高,而且,现在机房的网络整体架构都依托于物理防火墙。
2.安装完成系统后进行软件升级
#service iptables stop
#chkconfig iptables off
#sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’/etc/selinux/config
此步骤是快速修改的方法,也可以通过 vi 进行修改, SELINUX 修改完成后我们需要重启服务器,但是我们暂时不重启服务器,对服务器软件进行升级完成和启动项做了优化后再重启服务器;
#yum update -y    // 更新软件包,这个选项根据个人喜好吧
2. 精简系统开机启动项:
一般情况下,服务器刚装完系统后有必要保留的开机自启动服务只有 5 个,具体如下:
1.sshd : 远程连接 ssh ,不多说;
2.rsyslog: 日志相关文件,这是操作系统提供的一种机制
3.network: 服务器要联网,必须开启这个服务啊
4.crond: 这个服务主要用来执行系统及用户配置的任务计划,有周期性执行的任务的时候必须开启,生产环境下必须开启这个服务
5.sysstat: 服务器性能检测工具,收集服务器运行数据,判断运行是否正常
操作命令如下:
[root@localhost ~]# LANG=en
[root@localhost ~]# for root in `chkconfig --list|grep 3:on|awk '{print 1}'`;do chkconfig --level 3 1}'`;do chkconfig --level 3 root off;done
[root@localhost ~]# for root in crond network rsyslog sshd sysstat;do chkconfig --level 3 $root on;done  //sysstat 服务在服务器中很可能没有,如果系统提示,我们只需把这个服务在这条命令中去掉就可以了
[root@localhost ~]# chkconfig --list|grep 3:on
crond              0:off    1:off    2:on    3:on    4:on    5:on    6:off
network            0:off    1:off    2:on    3:on    4:on    5:on    6:off
rsyslog            0:off    1:off    2:on    3:on    4:on    5:on    6:off
sshd              0:off    1:off    2:on    3:on    4:on    5:on    6:off
sysstat            0:off    1:on     2:on    3:on    4:on    5:on    6:off

接下来我们重启服务器就可以了,重启的过程中,你会发现速度非常快;

安装配置

.Nginx 的安装部署
由于 CentOS6.5 默认是没有 Nginx 源的,我们需要手动安装 nginx yum
1. 先执行下条命令进行nginx源的安装:
2. 查看 yum nginx 信息
[root@LNAP /]# yum info nginx
已加载插件:fastestmirror
Determining fastest mirrors
 * base:
mirrors.yun-idc.com
 * extras: mirrors.neusoft.edu.cn
 * updates: mirrors.neusoft.edu.cn
base                     | 3.7 kB     00:00    
extras                  | 3.4 kB     00:00    
extras/primary_db     |  37 kB     00:00    
nginx                    | 2.9 kB     00:00    
nginx/primary_db        |  22 kB     00:00    
updates                 | 3.4 kB     00:00    
updates/primary_db      | 4.3 MB     00:05    

可安装的软件包
Name        : nginx
Arch        : x86_64
Version     : 1.10.3
Release     : 1.el6.ngx
Size        : 861 k
Repo        : nginx
Summary     : High performance web server
URL         :
http://nginx.org/
License     : 2-clause BSD-like license
Description : nginx [engine x] is an HTTP and reverse proxy server, as well as
            : a mail proxy server.
3 ,安装并启动 nignx
[root@LNAP /] #yum install nginx -y
........
.......
.......
[root@LNAP /]# service nginx start
Starting nginx:                                            [  OK  ]
[root@LNAP /]# chkconfig nginx on    // 设置 nginx 开机自启动
4 ,然后进入浏览器,根据你的 Linux 服务器的 IP 输入  http://x.x.x.x  测试,如果看到一下内容,就说明 Nginx 已经安装成功了
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to  nginx.org .
Commercial support is available at  nginx.com .
Thank you for using nginx.
如果不能连接到 nginx ,原因很多,但是可以先检查  
  1,nginx 服务是否真的起来了
  2,linux 服务器防火墙是否打开
.Nginx 配置 SSL 支持的 HTTPS
默认情况下 ssl 模块并未被安装,如果要使用该模块则需要在编译时指定 –with-http_ssl_module 参数,安装模块依赖于 OpenSSL 库和一些引用文件,通常这些文件并不在同一个软件包中。通常这个文件名类似 libssl-dev
安装 opennssl
[root@LNAP /]# yum install openssl -y
生成证书
可以通过以下步骤生成一个简单的证书:
首先,进入你想创建证书和私钥的目录,
[root@LNAP /]# cd /etc/nginx/
创建服务器私钥,命令会让你输入一个口令:
[root@LNAP /]# openssl genrsa -des3 -out nginx.key 2048
创建签名请求的证书( CSR ):
[root@LNAP /]# openssl req -new -key nginx.key -out nginx.csr
在加载 SSL 支持的 Nginx 并使用上述私钥时除去必须的口令:
[root@LNAP /] # cp nginx.key  nginx.key.org
[root@LNAP /] # openssl rsa -in  nginx.key.org  -out nginx.key
最后标记证书使用上述私钥和 CSR
[root@LNAP /] # openssl x509 -req -days 365 -in nginx.csr -signkey nginx.key -out nginx.crt
配置 nginx
修改 Nginx 下你的 www 某一个网站的配置文件,让其包含新标记的证书和私钥:
#vim /etc/nginx/conf.d/default.conf  // 例如这个默认的
server {
    listen       443;
    server_name  localhost;
      ssl on;
      ssl_certificate       server.crt;
      ssl_certificate_key   server.key;
#     ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
#     ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
#     ssl_prefer_server_ciphers on;
# 这些内容根据自己的需求进行更改
 }
我们可以复制这个默认的配置文件到 conf.d 目录下面,因为在 nginx nginx.conf 中有这么一项
 include /etc/nginx/conf.d/*.conf;   这样才显得规整一点,容易控制调节,不建议在 nginx.conf 文件中直接进行修改。
也就是说,只要这个配置文件下所有的虚拟主机端口 IP 不冲突,所有运行的网站都是可访问的;所以默认的哪的 default.conf 仅仅是其中一个, nginx 给我们提供的一个模板,我们可以对它进行复制成自己想要的另外一个修改,用来使用。
重启 nginx
这样就可以通过以下方式访问: https://192.168.34.5
 
有时候我们还有这种需求,为了防止用户去访问80不安全的网页,我们在nginx中可以配置端口重定向,在用户访问http://192.168.34.8的时候服务器自动跳转到
https://192.168.34.8,如果我们还是存在php访问支持,则按照下面的方法进行设置
server {
        listen       80;
        server_name  www.cloud.com;
       rewrite ^(.*)https:// https:// host$1 permanent;
 
        location / {
            root   /data/html/phpwind/;
            index  index.html index.htm index.php;
          }
       location ~ \.php$ {
         root           /data/html/phpwind/;
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
         fastcgi_param  SCRIPT_FILENAME  /data/html/phpwind/$fastcgi_script_name;
         include        fastcgi_params;
          }
}
 
. 安装 PHP 环境,并配置 Nginx ,支持 PHP 环境
如果 yum 安装不存在问题,可以利用 yum 进行安装,本人曾经安装的时候遇到过问题:
1. 如果 yum install php* -y 这条命令没有问题,直接进行安装就可以,如果不行,依次执行下面的命令:
#yum install php -y
#yum install php-fpm -y
php 开机自启动的命令不是 chkconfig php on, 而是 chkconfig php-fpm on ; 在这里,我们将 php-fpm 设置未开机自启动;
配置 php-ngin 环境:
#vim /etc/nginx/conf.d/default.conf
server {
----------- 省略部分内容 -----------
location ~ \.php$ {
  root          html;
  fastcgi_pass  127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param  SCRIPT_FILENAME /data/html/phpwind/ document r oot documentroot fastcgi_script_name;
  include        fastcgi_params;
  }
----------- 省略部分内容 -----------
}
这里这个 SCRIPT_FILENAM 其实就是 index.php 所在的目录,因为 nginx 的所有网页文件都存放于 /usr/share/nginx/html/ 目录下,在这个目录下可以存放多个网站的网页文件,但都是以目录的形式存放的,比如在这个目录下存放了一个 www 目录,且 www 目录下面有 index.php ,这里的 SCRIPT_FILENAME 就写成
fastcgi_param   /user/share/nginx/html/www/ document r oot documentroot fastcgi_script_name;
如果把网页文件放在了别的目录,如 /data/nginx/html/www/ , 则改成
fastcgi_param  /data/nginx/html /www/ document r oot documentroot fastcgi_script_name;
所有的文件路径建议使用绝对路径
 
所以,一份正常的 www.conf 配置文件应该是这样的:
 
server {
    listen       443;
    server_name  www.tcloud.com;
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
    ######SSL#############
    ssl on;
    ssl_certificate       /etc/nginx/cert/discuz.crt;
    ssl_certificate_key   /etc/nginx/cert/discuz.key;
    ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;    
    ########SSL模块##########
    location / {
        root   /data/html/phpwind/;
        index  index.html index.htm index.php;
    }
     error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #location ~ \.php$ {
    # proxy_pass   http://127.0.0.1;
    #}
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
   ##########PHP模块###########  
   location ~ \.php$ {
         root           /data/html/phpwind/;
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
         fastcgi_param  SCRIPT_FILENAME  /data/html/phpwind/$fastcgi_script_name;
         include        fastcgi_params;
    }
    ##########PHP#############
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #location ~ /\.ht {
    #    deny  all;
    #}
}
 
. 安装 MySQL 数据库 :
#yum install mysql* -y
直接安装就可以了,
修改 mysql 默认密码 :
方法 1 SET PASSWORD 命令
   mysql -u root
   mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpasswd');
方法 2 :用 mysqladmin
   mysqladmin -u root password "newpasswd"
  如果 root 已经设置过密码,采用如下方法
   mysqladmin -u root password oldpass "newpasswd"
方法 3 UPDATE 直接编辑 user
   mysql -u root
   mysql> use mysql;
   mysql> UPDATE user SET Password = PASSWORD('newpasswd') WHERE user = 'root';
   mysql> FLUSH PRIVILEGES;
在丢失 root 密码的时候,可以这样
   mysqld_safe --skip-grant-tables&
   mysql -u root mysql
   mysql> UPDATE user SET password=PASSWORD("newpasswd") WHERE user='root';
   mysql> FLUSH PRIVILEGES;
登陆Mysql数据库:
mysql -u username -p
输入密码即可登录
mysql -u root -p
[root@LNAP ~]# mysql -u root -p
Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

猜你喜欢

转载自www.linuxidc.com/Linux/2017-03/141762.htm