LNMP架构介绍及其部署

释放双眼,带上耳机,听听看~!

LNMP架构介绍

LNMP:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

原理:浏览器发送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搭建

系统环境: RHEL6 x86-64 selinux and iptables disabled

本篇博客中涉及的所有软件包下载可参考此博客:https://blog.csdn.net/qq657886445/article/details/83662696

Mysql 编译安装
yum install -y cmake-2.8.12.2-4.el6.x86_64.rpm
  • 1

在这里插入图片描述

yum install -y gcc gcc-c++  ncurses-devel bison openssl-devel   #解决软件包依赖,不装这些依赖,等下cmake时会报错(这些依赖也可以根据报错一个一个解决,缺什么装什么即可)
  • 1

在这里插入图片描述

tar zxf mysql-boost-5.7.17.tar.gz     #此压缩包需自行下载
cd mysql-5.7.17/
cat CMakeLists.txt  #每次cmake都会缓存在此文件,要是cmake报错之后要先删除此文件,再cmake
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lamp/mysql -DMYSQL_DATADIR=/usr/local/lamp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lamp/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/
# 指定安装目录,数据存放目录,Unix socket 文件路径,安装 myisam 存储引擎,安装 innodb 存储引擎,使用 utf8 字符,校验字符,安装所有扩展字符集,安装boots库(要是压缩包中没有boots则需自行下载,一般xxx-boots这类压缩包中都带有boots)
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

make && make install
  • 1

在这里插入图片描述
注:重新编译时,需要清除旧的对象文件和缓存信息
make clean
rm -f CmakeCache.txt

cd /usr/local/lnmp/mysql/support-files
cp  my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysqld
vim /etc/my.cnf
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

groupadd -g 27 mysql
useradd -g 27 -u 27 -M -d /usr/local/lnmp/mysql/  -s /sbin/nologin mysql
  • 1
  • 2

在这里插入图片描述

vi ~/.bash_profile  
PATH=$PATH:/usr/local/lnmp/mysql/bin   #添加环境变量
source ~/.bash_profile    #使之生效
  • 1
  • 2
  • 3

在这里插入图片描述

mysqld --initialize --user=mysql    #数据库初始化,此时登陆数据库无法查看信息
mysql_secure_installation #按提示完成 mysql 安全设置,生产环境推荐使用
[root@server6 mysql]# mysql_secure_installation 

Enter password for user root:  #此处密码为上一条初始化命令生成的密码

New password:                  #设定新密码
Re-enter new password:         #再次输入新密码  

Press y|Y for Yes, any other key for No: # 只有y或Y表示yes其余全为NO
Change the password for root ? ((Press y|Y for Yes, any other key for No) : # 由于数据库密码设置要求过高,要是设定的密码较简单,此处直接回车,若是选择y则会重新设置密码

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
      # 是否移除匿名用户

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y    # 是否不让root用户远程登陆

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y      # 删除test库和对test库的访问权限

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y       # 刷新授权表使修改生效

cd /usr/local/lnmp/mysql/       #为安全起见修改权限
chown -R root .
chown -R mysql data
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

在这里插入图片描述

/etc/init.d/mysqld start    # 启动服务
  • 1

在这里插入图片描述

php编译及配置
yum install -y libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm net-snmp-devel curl-devel libxml2-devel openssl-devel gmp-devel   # 解决软件包依赖(和mysql一样,依赖可以根据编译报错一个一个解决,缺什么装什么即可)
  • 1

在这里插入图片描述

rpm -ivh re2c-0.13.5-1.el6.x86_64.rpm
  • 1

在这里插入图片描述

tar jxf php-5.6.35.tar.bz2
cd php-5.6.35
yum install libjpeg-devel -y
  • 1
  • 2
  • 3

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

yum install libpng-devel -y
  • 1

在这里插入图片描述

yum install freetype-devel -y
  • 1

在这里插入图片描述
./configure –prefix=/usr/local/lnmp/php –with-config-file-path=/usr/local/lnmp/php/etc –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-openssl –with-snmp –with-gd –with-zlib –with-curl –with-libxml-dir –with-png-dir –with-jpeg-dir –with-freetype-dir –with-pear –with-gettext –with-gmp –enable-inline-optimization –enable-soap –enable-ftp –enable-sockets –enable-mbstring –enable-fpm –with-fpm-user=nginx –with-fpm-group=nginx –with-libdir=lib64 –with-ldap –with-ldap-sasl –with-mcrypt –with-mhash
在这里插入图片描述

make && make install
cd /usr/local/lnmp/php/etc
cp php-fpm.conf.default php-fpm.conf
  • 1
  • 2
  • 3

在这里插入图片描述
在这里插入图片描述

vim php-fpm.conf
pid = run/php-fpm.pid     # 去掉此行注释
  • 1
  • 2

在这里插入图片描述

cp /mnt/php-5.6.35/php.ini-production /usr/local/lnmp/php/etc/php.ini    # 将配置文件复制到指定路径
  • 1

在这里插入图片描述

vim /usr/local/lnmp/php/etc/php.ini  #更改时区
  • 1

在这里插入图片描述

cp /mnt/php-5.6.35/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm  #将启动脚本复制到指定路径
chmod +x /etc/init.d/php-fpm   #给启动脚本加以执行权限
  • 1
  • 2

在这里插入图片描述

useradd -M -d /usr/local/lnmp/nginx/ -u 800 nginx
  • 1

在这里插入图片描述

/etc/init.d/php-fpm start   # 启动服务
  • 1

在这里插入图片描述

Nginx编译安装
tar zxf nginx-1.14.0.tar.gz
cd nginx-1.14.0
  • 1
  • 2

在这里插入图片描述

yum install -y gcc openssl-devel pcre-devel  # 解决软件包依赖,gcc openssl-devel 之前已经安装
  • 1

在这里插入图片描述

vim nginx-1.14.0/src/core/nginx.h   #删除nginx版本信息,为了安全,这样编译后外界无法获取程序的版本号
  • 1

在这里插入图片描述

vim auto/cc/gcc      #注释掉debug,编译以后程序只有几百 k
  • 1

在这里插入图片描述

./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx
  • 1

在这里插入图片描述

vim /usr/local/lnmp/nginx/conf/nginx.conf  #编辑配置文件
        location ~ \.php$ {    #以.php结尾的访问,让php-fpm去管理这些访问进程
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

        location / {  #将index.php置于默认发布页面最前面
            root   html;
            index  index.php index.html index.htm;
        }
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/    #为了方便调用,将nginx启动脚本链接到/usr/local/sbin/或者/sbin/下
  • 1

在这里插入图片描述

nginx -t  # 检查是否有语法错误
  • 1

在这里插入图片描述

vim /etc/security/limits.conf     # 修改允许服务最大打开文件数
  • 1

在这里插入图片描述

nginx     # 开启nginx
  • 1

在这里插入图片描述

vim /usr/local/lnmp/nginx/html/index.html
  • 1

在这里插入图片描述
打开浏览器访问ip测试:
在这里插入图片描述

论坛的搭建

将下载的论坛压缩包解压到nginx的默认发布目录下
在这里插入图片描述
浏览器访问ip/upload 安装论坛

人已赞赏
PHP

markdown文件的基本常用编写语法

2018-9-28 10:44:29

PHP技术Tech

Mac上非常好用的PHP集成环境MAMP

2020-5-6 11:37:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索