Linux运维之搭建Lnmp架构(1)——Mysql、PHP、Nginx源码安装

本文详细介绍了Linux环境下如何源码安装Mysql、PHP和Nginx,构建高效的Lnmp架构。从 Lnmp 的概念、工作原理到其优势,再到每个组件的安装步骤,提供了一套完整的搭建流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Lnmp指什么?

LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux ,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

    Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
    Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
    Mysql是一个小型关系型数据库管理系统。
    PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

二、Lnmp的工作原理?

首先,浏览器发送http request请求到服务器(Nginx),服务器响应并处理web请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序),PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。PHP解析器进程可以启动多个,进行并发执行。然后将解析后的脚本返回到PHP-FPM,PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx.服务器再通过Http response的形式传送给浏览器。浏览器再进行解析与渲染然后进行呈现。

三、Lnmp架构的优点?

    作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。
    作为负载均衡服务器:Nginx 既可以在内部直接支持Rails和PHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。
    作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。
    Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级。

四、Mysql源码安装

部署环境:

最好修改为CPU双核,硬盘大于20G。

4.1、在官网下载Mysql的源码包

Mysql下载地址

4.2、创建lnmp架构的部署目录,解压缩软件包。

tar zxf mysql-boost-5.7.17.tar.gz

4.3、下载编译时需要的软件包

yum install gcc gcc-c++ ncurses-devel bison -y
yum install cmake-2.8.12.2-4.el6.x86_64.rpm  -y

 

4.4、编译

cd mysql-5.7.17/

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/

4.5、安装

make && make install

 

 

4.6、添加mysql用户及用户组

groupadd -g 27 mysql
useradd -u 27 -g 27 mysql -s /sbin/nologin
id mysql
chown mysql.mysql /usr/local/lnmp/mysql/ -R

4.7、配置mysql环境变量 

vim ~/.bash_profile  

# User specific environment and startup programs 
PATH=$PATH:$HOME/bin 
改为:
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin 

source ~/.bash_profile

4.8修改mysql配置文件

cd support-files/ 
cp my-default.cnf /etc/my.cnf 
vim /etc/my.cnf 
basedir = /usr/local/lnmp/mysql 
datadir = /usr/local/lnmp/mysql/data 
# port = ..... 
# server_id = ..... 
socket = /usr/local/lnmp/mysql/data/mysql.sock 



4.9制作mysql服务的启动脚本

cd mysql-5.7.17/support-files
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
ll /etc/init.d/mysqld

4.10 mysql初始化

mysqld --user=mysql --initialize		#初始化后最后会给出初始的root密码
chown root /usr/local/lnmp/mysql -R
chown mysql.mysql /usr/local/lnmp/mysql/data/ -R
/etc/init.d/mysqld start

4.11 mysql安全初始化

mysql_secure_installation
先输入初始化给的初始密码
#两次n,四次y

4.12 测试:

成功安装mysql服务!

五 PHP 源码安装

5.1获取php源码包

5.2解压安装包

5.3载安装PHP源码包的依赖性

 

需要解决的依赖: 
gmp-devel-4.3.1-7.el6_2.2.x86_64 
gmp-devel-4.3.1-7.el6_2.2.x86_64 
libmcrypt- 
gmp-devel-4.3.1-7.el6_2.2.x86_64 
freetype-devel libpng-devel-1.2.49-1.el6_2.x86_64 
libjpeg-turbo-devel-1.2.1-1.el6.x86_64 
libcurl-devel 
openssl-devel 
libxml2-devel

5.4编译

cd cd php-5.6.35

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

5.5安装

make && make install

5.6复制并配置php配置文件,添加nginx用户

5.7复制文件,修改时区

cp ~/php-5.6.35/php.ini-production /usr/local/lnmp/php/etc/php.ini
vim /usr/local/lnmp/php/etc/php.ini


5.8配置php服务启动脚本

[root@server1 php-5.6.35]# cd ~/php-5.6.35/sapi/fpm/
[root@server1 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
[root@server1 fpm]# chmod +x /etc/init.d/php-fpm
useradd nginx

测试启动:
/etc/init.d/php-fpm start

六 Nginx编译安装

具体安装步骤参考:Nginx编译与安装

1.获取Nginx源码包,解压
tar zxf nginx-1.16.0.tar.gz

2.进入目录,删除版本号信息
cd nginx-1.16.0

vim src/core/nginx.h 
#define NGINX_VER          "nginx/"

3.关闭debug日志
vim auto/cc/gcc

171 # debug
172 #CFLAGS="$CFLAGS -g"

4.安装软件包—用pcre来解决C语言中使用正则表达式的问题
yum install pcre-devel -y

5.编译
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx 

6.安装
make && make install

7.修改配置文件
vim /usr/local/lnmp/nginx/conf/nginx.conf

1 
2 user nginx nginx; 
3 worker_processes auto; 

43 location / { 
44 root html; 
45 index index.php index.html index.htm; 
46 } 

65 location ~ \.php$ { 
66 root html; 
67 fastcgi_pass 127.0.0.1:9000; 
68 fastcgi_index index.php; 
69 #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 
70 include fastcgi.conf; 
71 }

8.检查是否出错
cd /usr/local/lnmp/nginx/sbin
./nginx -t
./nginx -v  ##查看nginx的信息

9.制作软链接及启动、查看端口
ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/


10.启动nginx,查看端口
nginx 				#启动

netstat -tnlp

server1 IP:172.25.60.10

浏览器输入IP 测试成功

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值