美文网首页
使用stenOS 7 搭建lnmp环境

使用stenOS 7 搭建lnmp环境

作者: 笑看滔滔潮 | 来源:发表于2018-05-07 15:14 被阅读0次

    安装完Linux系统时,切记一定要记住关闭自带的防火墙系统。

     1关闭自带的防火墙:

    systemctl stop firewalld.service #停止firewall

    systemctl

    disable firewalld.service#

    禁止firewall开机启动

    systemctl stop firewalld  //也可以

    systemctl mask firewalld  //也可以

    2关闭selinux

    修改selinux配置文件,在etc/selinux/config

    SELINUX=enforcing改为SELINUX=disabled,保存后退出

    执行”setenforce 0″不用重启地生效关闭selinux的配置

    3修改etc/sysconfig/iptables  防火墙配置文件,如果没有找到iptables文件,需要yum安装

    添加如下:

    -A INPUT -p tcp --dport 80 -j ACCEPT   开放80端口

    -A INPUT -p tcp --dport 22 -j ACCEPT  开放22端口

    -A INPUT -p tcp --dport 3306 -j ACCEPT  开放3306端口

    重启iptables

    service iptables restart

    如果没有iptables文件 ,需要yum安装

    检查是否安装了iptables 

    service iptables status 

    安装iptables 

    yum -y install iptables

    yum -y install iptables-service

    systemctl enable iptables #解除禁止iptables 

    systemctl start iptables #

    开启服务

    以下是常用命令

    systemctl disable iptables #禁止iptables服务 

    systemctl stop iptables #暂停服务 

    systemctl enable iptables #开机启动iptables 

    systemctl start iptables #开启服务

    4安装MYSQL

    第一步:下载mysql开放的源的prm文件

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

    第二步:用rpm命令安装mysql的rpm程序

    rpm -ivh mysql-community-release-el7-5.noarch.rpm

    第三部:更新一下系统的所有安装的程序

    yum update

    第四步:用yum安装mysql的服务程序

    yum install mysql-server

    第五步:启动mysql 的操作

    systemctl start mysqld      # 启动 MySQL

    systemctl enable mysqld     # 开机启动ySMySQL

    完成后,MySQL默认安装到/var/lib/mysql目录下。

    默认用户名是root,密码为空。

    使用下面的命令修改root密码:mysql_secure_installation

    如果无法远程连接mysql,可以参考如下方法:

    mysql账户是否不允许远程连接。如果无法连接可以尝试以下方法:

        mysql -u root -p    //登录MySQL

        mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;     //任何远程主机都可以访问数据库

        mysql> FLUSH PRIVILEGES;    //需要输入次命令使修改生效

        mysql> EXIT    //退出

    5安装NGINX服务器

    第一,安装第三方的epel的yum源,应为软件比较丰富

    yum install epel-release

    第二,安装nginx

    yum -y installnginx

    第三,启动nginx

    Systemctl start nginx

    第四步,开机启动nginx

    Systemctl  enable nginx

    Nginx 默认的HTML根目录是:/usr/share/nginx/html,可以修改其下的 index.html 的内容再看看效果。

    默认的根目录在html文件夹下,由于太长需要更改,注意更改目录的权限,也需要做出相应的修改

    还要注意关闭selinux

    修改selinux配置文件,在etc/selinux/config

    SELINUX=enforcing改为SELINUX=disabled,保存后退出

     

    如果不能访问修改的根目录,要考录权限问题

    用Chmod  命令

    为让web应用能读写HTML根目录下的目录和文件,需将其拥有者改为 nginx 用户:

    Chown是Linux命令,用来改变文件的拥有者的

    chown-R nginx:nginxhtml/  需要进入到html的同级目录中执行命令

    6安装php-FPM

    PHP 通过 PHP-FPM(FastCGI进程管理器)可以很好地与 Nginx 协同工作。

    PHP-FPM 针对不同规模的网站功能和性能都非常优良,尤其是高并发大型网站。

    如下,安装PHP5或PHP7都可以,两者安装其一即可。

    PHP5安装步骤:

    yuminstall phpphp-mysql php-fpm

    PHP7安装步骤:

    rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 

     # 安装 EPEL 源,如果此地址不能用,请到官网获取最新地址,是rpm文件所以需要rpm来安装

    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm                      # 安装 Webstatic 源

    yum install php70w php70w-commonphp70w-fpm php70w-opcache php70w-mysqlnd php70w-gd php70w-mbstring  # PHP 5.3.0以上推荐使用mysqlnd驱动,而不是mysql

    这里,我们用webstatic来安装PHP7。

    webstatic还有很多PHP7.0扩展,地址:https://webtatic.com/packages/php70/

    7配置php.ini文件

    然后是配置。打开文件 /etc/php.ini,删除cgi.fix_pathinfo前面的;注释符,再赋值为0,如下:原因是考录安全问题

    [...]

    cgi.fix_pathinfo=0

    [...]

    再配置PHP-FPM。打开文件 /etc/php-fpm.d/www.conf,

    将 127.0.0.1:9000 改为 php-fpm.sock 文件   

    取消 listen.owner和listen.group前面的注释

    将user和group的值由apache改为nginx

    如下:

    [...]

    listen = /var/run/php-fpm/php-fpm.sock

    [...]

    listen.owner = nobody

    listen.group= nobody

    [...]

    user = nginx

    group= nginx

    [...]

    启动 PHP-FPM,并设置为开机启动:

    systemctl startphp-fpm

    systemctl enablephp-fpm

    PHP-FPM 启动之后,会生成 socket 文件 /var/run/php-fpm/php-fpm.sock作为守护进程运行 FastCGI 服务。

    接下来配置 Nginx 的时候会用到这个 socket 文件。

    8 配置 Nginx

    Nginx 的配置文件是:/etc/nginx/nginx.conf,使用 vi 打开:

    vi/etc/nginx/nginx.conf

    配置项非常简单,如果需要了解详细内容,可看:https://www.nginx.com/resources/wiki/start/topics/examples/full/

    下面介绍基本的配置。

    首先,根据情况调整worker_processes和keepalive_timeout(可选):

    [...]

    worker_processes4;

    [...]

    keepalive_timeout2;

    [...]

    虚拟主机定义在 server{} 容器中,修改为如下内容:

    [...]

        server {

            listen80;

            listen[::]:80default_server;

           server_name_;

            root /usr/share/nginx/html;

            # 设置默认主页

            indexindex.php index.html index.htm;

            location / {

                # First attempt to serve request as file, then

                # as directory, then fall back to displaying a 404.

                try_files $uri $uri/ =404;

            }

            # PHP脚本转发至PHP-FPM解析

            location ~ \.php$ {

                try_files $uri =404;

                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

                fastcgi_index index.php;

                include fastcgi_params;

            }

        }

    [...]

    关于配置的一些说明:

    首先,我们打开两个listen,让    Nginx 同时侦听    IPv4 和    IPv6 的80端口。

    server_name _; 绑定所有的域名(可以指定主机名,如 www.example.com)。

    脚本根目录    root 不变,依然是 /usr/share/nginx/html 。

    索引首页文件    index 添加上 index.php。

    其中针对 PHP

        很重要的部分在location ~\.php$ {} 中。为防止零日攻击(详见:http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP andhttp://forum.nginx.org/read.php?2,88845,page=3),该部分开头设置了try_files $uri =404;。

    保存配置文件后,检查配置文件的语法,再重新加载Nginx:

    nginx-t                       # 检查配置文件语法

    systemctl reload nginx         # 重新加载nginx

    在 /usr/share/nginx/html 目录下创建文件 index.php,内容为:

        phpinfo();

    可以看到,PHP5 已经工作,根据 Server API 行看出,是通过 FPM/FastCGI 方式工作的,往下拉会看到 PHP5 加载的其他模块,如MySQL、cURL、sqlite模块的支持。

    6 PHP-FPM 使用 TCP 连接

    默认情况下,PHP-FPM 通过 /var/run/php-fpm/php-fpm.sock 文件侦听 socket。

    当然,也可以设置 PHP-FPM 使用 TCP 连接。

    打开文件 /etc/php-fpm.d/www.conf,设置 listen 值如下:

    [...]

    ;listen = /var/run/php-fpm/php-fpm.sock

    listen=127.0.0.1:9000

    [...]

    这样 PHP-FPM 会侦听地址 127.0.0.1(localhost)和端口9000,确保这个端口没有被其他程序占用。

    然后重新加载 PHP-FPM:

    systemctlreload php-fpm

    接下来,编辑 /etc/nginx/nginx.conf 文件,修改如下一行:

    [...]

    #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

    fastcgi_pass 127.0.0.1:9000;

    [...]

    然后,重载 nginx 就可以了:

    sytemctlreload nginx

    这样,整个LNMP环境就搭好了。

    相关文章

      网友评论

          本文标题:使用stenOS 7 搭建lnmp环境

          本文链接:https://www.haomeiwen.com/subject/obtvrftx.html