使用stenOS 7 搭建lnmp环境

安装完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环境就搭好了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容