一、准备

1. 修改网络yum源

先将系统自带的yum配置文件重命名或删除,然后下载下面两个文件

阿里云:http://mirrors.aliyun.com/repo/Centos-7.repo

eprl扩展:http://mirrors.aliyun.com/repo/epel-7

下载完之后,需要使用命令清除原来的yum缓存,使用新的配置文件建立新的缓存

yum clean all                #清除原来的缓存
yum makecache #建立新的缓存列表
yum update #将所有可更新的软件更新

2. 安装编译工具和依赖软件

yum -y install gcc gcc-c++ pcre-devel openssl openssl-devel zlib-devel ncurses-devel cmake bison libxml2-devel libpng-devel

3. nginx,mysql,php软件源码包下载地址

  nginx:http://nginx.org/en/download.html

  mysql:https://dev.mysql.com/downloads/mysql/

  php:http://www.php.net/

  版本选用:

  nginx:  1.16.*  #选用软件的稳定版本即可

  mysql:  5.5.*  #5.5以上版本需要1G以上的内存,否则无法安装

  php:  7.3.*  #我使用的是php7

注:每次安装LNMP时,软件的小版本都不一样,官方会对其大版本下的小版本进行覆盖式更新,请按照下载版本进行安装。

二、源码软件包安装

1. nginx

nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。特点是占用内存少,并发能力强。

1.1 下载nginx源码包

[root@centos2 /lnmp]# wget http://nginx.org/download/nginx-1.16.1.tar.gz

1.2 创建用于运行nginx的用户

[root@centos2 /lnmp]# useradd -r -s /sbin/nologin nginx

1.3 解压缩nginx并安装

[root@centos2 /lnmp]# tar -zxf nginx-1.16..tar.gz
[root@centos2 /lnmp/nginx-1.16.]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
[root@centos2 /lnmp/nginx-1.16.]# make && make install

1.4 上传编写好的nginx启动脚本

注:先检查文件中是否有字符集问题

#################################Nginx启动管理脚本##################################
#!/bin/bash
#Author:nanshan
#chkconfig:
#description: nginx server control tools ngxc="/usr/local/nginx/sbin/nginx"
pidf="usr/local/nginx/logs/nginx.pid"
ngxc_fpm="/usr/local/php/sbin/php-fpm"
pidf_fpm="/usr/local/php/var/run/php-fpm.pid"
case "$1" in
start)
$ngxc -t &> /dev/null
if [ $? -eq ];then
$ngxc
$ngxc_fpm
echo "nginx service start success!"
else
$ngxc -t
fi
;;
stop)
kill -s QUIT $(cat $pidf)
kill -s QUIT $(cat $pidf_fpm)
echo "nginx service stop success!"
;;
restart)
$ stop
$ start
;;
reload)
$ngxc -t &> /dev/null
if [ $? -eq ];then
kill -s HUP $(cat $pidf)
kill -s HUP $(cat $pidf_fpm)
echo "reload nginx config success!"
else
$ngxc -t
fi
;;
*)
echo "please input stop|start|restart|reload."
exit
esac

2. MySQL

下载:https://dev.mysql.com/downloads/mysql/

选择:Looking for previous GA versions?

选择:Select Version:按照自己要求选择

   Select Operating System: Source Code

   Select OS Version: Generic Linux

格式:mysql-N.N.NN.tar.gz

[root@centos2 /lnmp/nginx-1.16.]# wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62.tar.gz

2.1 创建运行mysql的用户

[root@centos2 /lnmp]# useradd -r -s /sbin/nologin mysql

2.2 解压缩mysql并安装

[root@centos2 /lnmp]# tar -zxvf mysql-5.5..tar.gz
[root@centos2 ~]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
[root@centos2 ~]# make && make install
[root@centos2 ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/

2.3 修改安装后的目录权限

[root@centos2 ~]# cd /usr/local/mysql
[root@centos2 ~]# chown -R root .
[root@centos2 ~]# chown -R mysql data

2.4 生成mysql配置文件

[root@centos2 ~]# cp -a /lnmp/mysql--5.62/support-files/my-medium.cnf /etc/my.cnf

2.5 初始化,生成授权表

[root@centos2 ~]# cd /usr/local/mysql
[root@centos2 ~]# ./scripts/mysql_install_db --user=mysql
#初始化成功标志:两个OK

2.6 生成mysql的启动和自启动脚本

[root@centos2 ~]# cd /lnmp/mysql-5.5./support-files/

[root@centos2 /lnmp/mysql-5.5./support-files]# cp -a mysql.server /etc/init.d/mysqld

[root@centos2 /etc/init.d]# chmod +x mysqld 

[root@centos2 /etc/init.d]# chkconfig --add mysqld
[root@centos2 /etc/init.d]# chkconfig mysqld on [root@centos2 /etc/init.d]# systemctl start mysqld
[root@centos2 /etc/init.d]# systemctl status mysqld

2.7 给mysql的root用户设置密码

[root@centos2 /usr/local/mysql]# mysqladmin -uroot password
[root@centos2 /usr/local/mysql]# mysql -uroot -p
Enter password:

3. PHP

下载:https://www.php.net/

http://mirrors.sohu.com/php/

[root@centos2 /lnmp]# wget https://www.php.net/distributions/php-7.3.12.tar.gz

3.1 解压缩并安装

[root@centos2 /lnmp/php-7.3.]# tar -zxf php-7.3..tar.gz
[root@centos2 /lnmp/php-7.3.]# ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql --with-gd --without-pear --enable-fpm
[root@centos2 /lnmp/php-7.3.]# make
[root@centos2 /lnmp/php-7.3.]# make install

3.2 生成php配置文件

[root@centos2 ~]# cp -a /lnmp/php-7.3./php.ini-production  /usr/local/php/etc/php.ini
#复制源码包内的配置文件到安装目录下,并改名即可

3.3 创建软连接,使用php相关命令更方便

[root@centos2 ~]# ln -s /usr/local/php/bin/* /usr/local/bin/
[root@centos2 ~]# ln -s /usr/local/php/sbin/* /usr/local/sbin/

4. 配置nginx连接php

4.1 nginx连接php需启动php-fpm服务

[root@centos2 ~]# cd /usr/local/php/etc/
[root@centos2 /usr/local/php/etc]# cp php-fpm.conf.default php-fpm.conf
[root@centos2 /usr/local/php/etc]# vim php-fpm.conf
#修改指定参数
pid = run/php-fpm.pid
[root@centos2 /usr/local/php/etc]# cd /usr/local/php/etc/php-fpm.d/
[root@centos2 /usr/local/php/etc/php-fpm.d]# cp -a www.conf.default www.conf
[root@centos2 /usr/local/php/etc/php-fpm.d]# vim www.conf
#修改用户和组的指定用户
user = nginx
group = nginx 修改nginx启动脚本;将php-fpm的注释取消即可

4.2 修改nginx的配置文件,使其能识别.php后缀的文件

[root@centos2 /usr/local/php/etc/php-fpm.d]# cd ../../../nginx/conf/
[root@centos2 /usr/local/nginx/conf]# vim nginx.conf
#取消下列行的注释,并修改include 选项后的后缀为fastcgi.conf,并注意每一行结尾的分号和大括号 location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;    #修改为fastcgi.conf
}

测试:

重启nginx,创建php测试文件,访问并查看是否解析

4.3 修改nginx配置文件,使其默认自动加载php文件

location / {
root html;                #nginx默认的网页路径:prefix/html
index index.html index.php index.htm; #设置默认加载的页面,以及优先级
}

centos7搭建lnmp的更多相关文章

  1. CentOS7——搭建LNMP环境(WordPress案例)

    CentOS7--搭建LNMP环境(WordPress案例) LNMP组成介绍 LNMP(Linux-Nginx-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统 ...

  2. Centos7 搭建lnmp环境 (centos7+nginx+MySQL5.7.9+PHP7)

    阿里云一台服务器出现问题! 我估计是一键安装包环境的原因,所以打算重新搭建下环境! 首先,当然是先做好快照!安全第一! 对系统盘做更换系统操作,装上纯净版的centos. 装好后,进入系统 一.挂载数 ...

  3. linux中Centos7搭建lnmp环境

    1.安装yum yum update 2.安装nginx源: yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx ...

  4. CentOS7 搭建LNMP

    一.        安装依赖文件 1.  sudo yum install gcc gcc-c++ zlib zlib-devel libxml2 libxml2-devel openssl open ...

  5. CentOS7搭建LNMP环境

    以前写的过时了,重新发一篇新的. 安装PHP 下载官网:https://www.php.net/downloads.php 为了方便,我存了现成的 百度网盘:https://pan.baidu.com ...

  6. Vmware搭建LNMP环境(Centos7+Nginx+Mysql+PHP7.1.8)

    参考:1.Linux学习之CentOS(一)----在VMware虚拟机中安装CentOS 7(图文教程) 2.Centos7搭建LNMP环境 3.MySQL5.7修改默认root密码 4.CentO ...

  7. 在Linux CentOS7系统中搭建LNMP

    LNMP就是Linux+Nginx+MySQL+PHP,既然是在Linux CentOS7那么Linux就是已经安装好了.所以接下百度一下接下来的教程,整理测试如下: 教程是centos6.2的有点老 ...

  8. centos7 yum搭建lnmp环境及配置wordpress超详细教程

    yum安装lnmp环境是最方便,最快捷的一种方法.源码编译安装需要花费大量的人类时间,当然源码编译可以个性化配置一些其它功能.目前来说,yum安装基本满足我们搭建web服务器的需求. 本文是我根据近期 ...

  9. 小白简单快速搭建lnmp环境(centos7)

    本来想着自己搭建lnmp,由于php包下载不下来因此这次本人使用的lnmp一键包搭建的环境(很遗憾还没有php7.3.5)很详细并且方便快捷网址https://lnmp.org/install.htm ...

随机推荐

  1. json for modern c++(nlohmann json)使用小计

    前言 一开始使用jsoncpp,但是jsoncpp已经不更新了,nlohmann还在更新,并且jsoncpp做过一次大的版本升级,导致api不兼容,以前使用过的工程代码不能很好的升级到新的版本,并且j ...

  2. java dump 内存分析 elasticsearch Bulk异常引发的Elasticsearch内存泄漏

    Bulk异常引发的Elasticsearch内存泄漏 2018年8月24日更新: 今天放出的6.4版修复了这个问题. 前天公司度假部门一个线上ElasticSearch集群发出报警,有Data Nod ...

  3. python入门之函数对象

    目录 函数是第一类对象 1.函数名可以被引用 2.函数名可以当做参数传递 3.函数名可以当做返回值使用 4.函数名可以被当做容器类型的元素 函数是第一类对象 First-Class Object : ...

  4. C#实现ActiveMQ消息队列

    本文使用C#实现ActiveMQ消息队列功能. 一.首先需要导入两个包,分别是:Apache.NMS 和 Apache.NMS.ActiveMQ 二.创建Winform程序实现生产者功能. 三.Pro ...

  5. redux本来是同步的为什么它能执行异步代码(chunk)实现原理是什么 中间件的实现原理是什么

    我们用redux执行同步的时候,都是先发起一个dispatch(actionCreator()) 1.先在actionCreator()中生成一个action对象. 2.由dispatch方法将act ...

  6. Dubbo快速入门 二

    2.dubbo核心概念 2.1).简介 Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能.轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调 ...

  7. linux 判断一个用户是否存在

    #!/bin/bash read -p "please input a username:" username >&; then echo "user ex ...

  8. BZOJ3277 串(后缀自动机)

    对多串建立SAM的一种方法是加分隔符.于是加完分隔符建出SAM. 考虑统计出每个节点被多少个串包含.让每个串各自在SAM上跑,跑到一个节点就标记(显然一定会完全匹配该节点,因为是对包含其的串建的SAM ...

  9. 使用docker部署titpetric/netdata

    netdata 是常用的Linux系统性能实时监控面板 官方docker netdata/netdata部署 docker run -d --name=netdata \ -p 19999:19999 ...

  10. .net Dapper 实践系列(6) ---事务删除(Layui+Ajax+Dapper+MySQL)

    目录 写在前面 实现步骤 写在最后 写在前面 上一小节,总结了事务多表更新的两种方法.一个是只更新原来的数据,一个是先删除原来的数据再往里面添加新的数据.而这一小节,说的是事务的多表删除. 实现步骤 ...