您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

LNMP环境编译安装,一学就会

时间:2020-03-16 12:55:56  来源:  作者:

LNMP是当下web最流行的架构之一,不管是初级运维还是php程序猿都需要掌握这门技能,对加深linux系统命令行、架构原理的理解非常有帮助。安装之前先说明以下几点:

  • Linux系统版本是64位centos7.2
  • php版本是php-7.2.28
  • MySQL版本是mysql-5.7.28
  • Nginx版本是nginx-1.16.1
  • 软件包、解压目录都在/usr/local/src下,安装目录都在/usr/local/下,如:/usr/local/php、/usr/local/git

下面就让我们开始编译安装之旅吧!

安装Nginx

1、安装nginx的依赖库

yum -y install gcc gcc-c++ autoconf automake make openssl openssl-devel pcre pcre-devel zlib zlib-devel libxml2 libxml2-devel glibc glibc-devel curl curl-devel cyrus-sasl-md5

2、添加nginx运行用户、组,用户不能直接登录系统

groupadd www
useradd www -s /sbin/nologin -g www

3、下载安装包,解压安装包,进入解压后的目录

cd /usr/local/src
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1

4、配置安装选项,编译并安装

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module
make && make install

5、配置开机启动

vi /etc/rc.local
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf &

安装Mysql

1、安装依赖

yum install -y wget cmake make bison bison-devel libaio-devel gcc gcc-c++ git ncurses-devel
# mysql5.7之后需要依赖Boost的C++扩展,而且只能是1.59.0版本
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar -zxvf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost

2、创建用户组

/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql

3、下载安装包,从官网下载的话非常慢,选择国内镜像可以快很多。也下载mysql-boost-5.7.28.tar.gz包,上面安装Boost的C++扩展就可以免了。

wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.28.tar.gz

4、编译安装,mysql的安装过程非常慢,大概需要40分钟,耐心等待

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk,gb2312 -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 -DWITH_DEBUG=0 -DWITH_BOOST=/usr/local/boost
make && make install

5、修改配置

chown -R mysql:mysql /usr/local/mysql
chown mysql:mysql /etc/my.cnf

vi /etc/my.cnf
socket=/usr/local/mysql/mysql.sock
datadir=/data/mysql
port = 3306
server_id=1

6、开机启动

cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld

7、初始化库文件

/usr/local/mysql/bin/mysqld --initialize --user=mysql
#记下密码

#修改密码
service mysqld start
/usr/local/mysql/bin/mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

安装Php

1、安装依赖

yum install zlib libxml freetype libjpeg libpng gd gd-devel curl curl-devel libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel  openssl openssl-devel libxslt-devel
# 安装libiconv
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
tar -zxvf libiconv-1.16.tar.gz
cd libiconv-1.16
./configure --prefix=/usr/local/libiconv
make && make install

2、下载安装包,解压,进入解压的目录

cd /usr/local/src
wget https://www.php.net/distributions/php-7.2.28.tar.gz
tar -zxvf php-7.2.28.tar.gz
cd php-7.2.28

3、编译安装

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-iconv-dir=/usr/local/libiconv --with-pdo-mysql=mysqlnd --with-pdo-pgsql --with-pdo-sqlite --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-xmlreader --enable-xmlwriter --enable-soap --enable-calendar --with-curl --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock --enable-mysqlnd --with-jpeg-dir=/usr --with-png-dir=/usr --with-openssl --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www

make && make install

4、复制配置文件

cp php.ini-production /usr/local/php/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm

整合Nginx和Php

修改nginx配置文件,支持php。

vi /usr/local/nginx/conf/nginx.conf
去掉前面的#号,SCRIPT_FILENAME改成$document_root
LNMP环境编译安装,一学就会

修改nginx配置文件

在mytest目录下新建index.php文件,保存后就可以在浏览器看到效果啦!

vi /data/www/mytest/index.php
<?php
  phpinfo();
  ?>

以上就是整个的安装过程,如果顺利的情况下大概需要一个半小时到两个小时,学习的过程总是孤独、寂寞、漫长的,需要静心。

最后,小伙伴们一定要重复多次的练习,才能提高熟练度,加深理解。安装的过程中肯定都会碰到一些大大小小的问题,千万不要放弃,可以百度找找方案,大胆去尝试解决问题。



Tags:LNMP   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Linux有很多像这样的群集,比如说LAMP,LNMP,那LNMP和LAMP有什么区别呢?LNMP的是Nginx而LAMP的是Apache1)相比 Apache,用 Nginx 作为 Web 服务器:使用资源更少,支持更多并发连接,效率...【详细内容】
2020-08-17  Tags: LNMP  点击:(77)  评论:(0)  加入收藏
项目之五台服务器实战Linux+Nginx+PHP+MySQL主主+NFS文共享集群架构;1)部署1台Nginx WEB前端服务器(不能跟PHP-CGI公用); 2)部署2台PHP-CGI网站代码; 3)部署2台MYSQL主主同步架构(可...【详细内容】
2020-08-12  Tags: LNMP  点击:(78)  评论:(0)  加入收藏
主机规划 系统初始化:必要的系统初始化基础组件包括:zabbix监控,mariadb(用于存放zabbix监控信息)业务组件包括:MySQL、memcached、nginx、PHP、haproxy、keepalived添加用户账号...【详细内容】
2020-05-12  Tags: LNMP  点击:(54)  评论:(0)  加入收藏
操作系统:公共镜像CentOS 7.2 64位 Nginx版本:Nginx 1.16.1 MySQL版本:MySQL 5.7.28 PHP版本:PHP 7.0.33 一:准备编译环境 远程连接Linux实例。 关闭防火墙。运行systemctl stat...【详细内容】
2020-05-02  Tags: LNMP  点击:(65)  评论:(0)  加入收藏
LNMP是当下web最流行的架构之一,不管是初级运维还是php程序猿都需要掌握这门技能,对加深Linux系统命令行、架构原理的理解非常有帮助。安装之前先说明以下几点: Linux系统版本...【详细内容】
2020-03-16  Tags: LNMP  点击:(72)  评论:(0)  加入收藏
相关链接:Apache+WordPress部署SSL加密服务,全站开启https访问第一步、部署SSL加密服务准备工作1.在VPS已部署好LNMP一键安装包;2.申请SSL证书(百度免费SSL证书),我以阿里云提过...【详细内容】
2019-11-27  Tags: LNMP  点击:(127)  评论:(0)  加入收藏
本文介绍使用ezhttp一键安装配置lnmp lamp lnamp(apache nginx php mysql)环境,在开始之前,请先查看ezhttp介绍。这里以安装lnmp为例,其它的安装类似。交互安装:1.选择安装lnmp1...【详细内容】
2019-11-19  Tags: LNMP  点击:(75)  评论:(0)  加入收藏
从事PHP开发的都知道,LNMP一般是指Linux+Nginx+MySQL+PHP组合,也是日常开发和线上环境中最简单的Web服务器架构。为尽可能的提升服务器响应速度,LNMP的配置优化是十分关键的步...【详细内容】
2019-10-18  Tags: LNMP  点击:(199)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(14)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(22)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(25)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(40)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(28)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(19)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(29)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条