首页 > 技术文章 > LNMP架构下的动态网站

lincso 2020-07-09 09:19 原文

Lintan的搭建就是基于lnmp架构,本文带大家了解lnmp的搭建以及什么是lnmp。当大家可以自己熟悉搭建lnmp后对于网站出现的各种问题也能又一定的解决方法,不再做小白先从基础开始。。。

LNMP的介绍及其工作原理

LNMP是指LNMP==Linux+Nginx+Mysql+PHP的结构体系。前端接收用户的请求,到达nginx后,nginx服务会先判断用户的请求是否可以处理,如果可以处理的先自己处理,如果处理不了的,nginx服务先通过fastcgi_pass指令与通过fastcgi接口将处理不了的请求抛送给PHP服务,php会通过php-fpm进程来接收到nginx抛送过来的请求,同时php服务会通过wrapper进程来识别这个请求,然后会交给php的解析器来进行识别,php解析器识别后会调取数据库资源,让数据库识别用户的请求,最终将要调取的数据识别出来,返还给php进程wrapper,再返还给php进程php-fpm,再返回给fastgci接口交给nginx客户端,nginx客户端接收到这个请求的结果响应给用户。

Nginx的安装

yum install -y wget
1.nginx依赖文件安装
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.12.1.tar.gz
2.下载好后进行源码安装三步骤
./configure --prefix=/usr/local/nginx
make && make install
/usr/local/nginx/sbin/nginx -t(验证配置文件是否正确)
3.创建及设置nginx运行
groupadd nginx
useradd -M -g nginx -s /sbin/nologin nginx
cd /usr/local/nginx/conf
vi nginx.conf(设置user参数---user nginx nginx)
chmod -R 755 /etc/init.d/nginx
chkconfig --add nginx(添加系统服务)
chkconfig nginx on(开启系统服务)
ps aux | grep nginx(查看是否启动成功)
网页打开http://localhost看看是否能成功访问
4.设置防火墙规则(图形界面推荐使用firewall-config)
firewall-cmd --zone=pulic --add-port=80/tcp --permanent
fire-cmd --reload
systemctl status firewalld

Mysql安装

1.安装编译mysql的依赖
yum install -y openssl* bison* libtool* libevent* autoconf* libstd* ncurse*
2.安装cmake
cd /usr/local/src
wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz
tar -zxvf cmake-2.8.12.1.tar.gz
cd cmake-2.8.12.1
3.同样三步骤
./configure
make && make install
4.下载mysql及编译
cd /usr/local/src
wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.38.tar.gz
tar -zxvf mysql-5.6.38.tar.gz
cd mysql-5.6.38
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make && make install(时间有点长可以稍作休息)
5.mysql配置
groupadd mysql
useradd -M -g mysql -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql
cd /usr/local/mysql/scripts
./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
chkconfig --add mysql
chkconfig mysql on
systemctl restart mysql
6.登录mysql设置密码
mysql -u root
set password=password('create your password');

PHP安装

1.php依赖安装
yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
如果有的包无法下载自行百度下载然后手动编译
./configure --prefix=/usr/local/包名
make && make install
2.下载php及编译
cd /usr/local/src
tar -zxvf php-7.2.1.tar.gz
cd php-7.2.1
./configure --prefix=/usr/local/php --disable-fileinfo --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --with-mcrypt=/usr/local/libmcrypt --enable-zip --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --without-pear  --enable-bcmath
make && make install(继续休息)
cp php.ini-development /etc/php.ini
3.创建及设置php-fpm运行
groupadd www-data
useradd -M -g www-data -s /sbin/nologin www-data
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
cd php-fpm.d
cp www.conf.default www.conf
vi www.conf(查找user并设置user=www-data,group=www-data)
4.配置nginx可以支持php(参考下图)

systemctl restart nginx
chkconfig --add php-fpm
chkconfig php-fpm on

这样你的LNMP架构就搭建完成了,本文如有不清楚的地方请大家回去研究研究或者评论告诉作者帮忙解决,嘻嘻。

推荐阅读