LNMP:L指Linux,N指Nginx,M指MySQL,P指PHP。
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,图片,视频等)保存服务器上。
如果用户请求为静态html,Nginx可直接返回数据给用户。
如果用户请求为动态php,php脚本将通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序),PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。PHP解析器进程可以启动多个,进行并发执行。再将解析后的脚本返回到PHP-FPM,PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx。服务器再通过Http response的形式传送给浏览器。浏览器再进行解析与渲染然后进行呈现给用户。
虚拟机设置:推荐使用20G硬盘,4096Mb内存,2核CPU》
1.安装编译工具及依赖性
yum install cmke
yum install gcc
yum install gcc-c++
yum install ncurses-devel
yum install -y openssl-devel
yum install bison
2.解压软件包并编译
tar zxf mysql-boost-5.7.30.tar.gz
解压软件包
注意:编译前需要删除CMakeCache.text
[root@server1 mysql-5.7.30]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \
> -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \
> -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \
> -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\
> -DWITH_BOOST=boost/boost_1_59_0
1.建立mysql用户及data目录,使data目录对mysql用户有写的权限
mkdir /usr/local/lnmp/mysql/data
useradd -s /sbin/nologin -M mysql
建立mysql用户
chown -R root /usr/local/lnmp/mysql/data/*
chown -R mysql /usr/local/lnmp/mysql/data
2.做MySQL的软连接
ln -s /usr/local/lnmp/mysql/bin/* /usr/local/bin/
3.拷贝配置文件
mv /etc/my.cnf /etc/my.cnf.bak
备份mariadb配置文件
cp /usr/local/lnmp/mysql/mysql-test/include/default_my.cnf /etc/my.cnf
拷贝mysql配置文件
4.启动mysql脚本
cp -a /usr/local/lnmp/mysql/support-files/mysql.server /etc/init.d/mysqld
脚本的启动方式
chmod +x /etc/init.d/mysqld
给脚本执行权限
chkconfig mysqld on
设置开机启动
mysqld --user=mysql --initialize
初始化生成基本信息
systemctl start mysqld
mysql_secure_installation
解决依赖性:
yum install -y libxml2-devel
yum install -y sqlite-devel
yum install -y libpng-devel
yum install oniguruma-5.9.5-3.el7.x86_64.rpm
yum install oniguruma-devel-5.9.5-3.el7.x86_64.rpm
tar zxf php-7.4.1.tar.gz
cd php-7.4.1/
./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysqli=/usr/local/lnmp/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/lnmp/mysql --enable-gd --without-pear --enable-fpm
1.打开php管理进程
cd /usr/local/lnmp/php/etc/
cp php-fpm.conf.default php-fpm.conf
拷贝
vim php-fpm.conf
`
pid = run/php-fpm.pid ##打开php管理进程
2.编辑php扩展配置文件
cd /usr/local/lnmp/php/etc/php-fpm.d/
cp www.conf.default www.conf
vim www.conf
user = nginx
group = nginx
3.编辑php主配置文件
cp /soft/php-7.4.1/php.ini-production /usr/local/lnmp/php/etc/php.ini
拷贝
vim /usr/local/lnmp/php/etc/php.ini
4.设置php启动脚本
cp /soft/php-7.4.1/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
设置启动脚本
chmod +x /etc/init.d/php-fpm
给脚本执行权限
useradd -s /sbin/nologin -M nginx
建立用户
/etc/init.d/php-fpm start
脚本启动
4.设置php软链接
ln -s /usr/local/lnmp/php/bin/* /usr/local/bin/
tar zxf nginx-1.18.0.tar.gz
解压
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx
vim /soft/nginx-1.18.0/src/core/nginx.h
隐藏版本号
#define NGINX_VER "nginx/"
vim /soft/nginx-1.18.0/auto/cc/gcc
关闭debug
# debug
#CFLAGS="$CFLAGS -g"
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx
重新编译
make && make install
重新安装
vim /usr/local/lnmp/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
vim /usr/local/lnmp/nginx/html/index.php
编辑php发布页面
phpinfo()
?>