Nginx系列教程六| 手把手教你搭建 LNMP 架构并部署天空网络电影系统

Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统

作者:JackTian
微信公众号:杰哥的IT之旅(ID:Jake_Internet)

LAMP 系列导读

  1. LAMP 系列教程(一)| 详解 Linux 环境下部署 HTTPD 服务
  2. LAMP 系列教程(二)| 如何在 Linux 环境下部署 AWStats 分析系统来监控 Web 站点?
  3. LAMP 系列教程(三)| 一文读懂 HTTPD 服务的访问控制
  4. LAMP 系列教程(四)| MySQL 数据库系统(一)
  5. LAMP 系列教程(五)| MySQL 数据库系统(二)- SQL语句的基本操作
  6. LAMP 系列教程(六)| MySQL 数据库系统(三)- 数据库的用户授权
  7. LAMP 系列教程(七)| MySQL 数据库系统(四)- 数据库的备份与恢复
  8. LAMP 系列教程(八)| 带你轻松玩转 LAMP 网站架构平台(一)
  9. LAMP 系列教程(九)| LAMP 架构应用案例 - 部署 PHPMyAdmin 系统(二)
    LNMP 系列导读
  10. Nginx 系列教程(一)| 手把手教你在 Linux 环境下搭建 Nginx 服务
  11. Nginx 系列教程(二)| 一文带你读懂 Nginx 的正向与反向代理
  12. Nginx 系列教程(三)| 一文带你读懂 Nginx 的负载均衡
  13. Nginx 系列教程(四)| 一文带你读懂 Nginx 的动静分离
  14. Nginx 系列教程(五)| 利用 Nginx+Keepalived 实现高可用技术
    在前面的LNMP 系列导读中,介绍了在 Linux 环境下搭建 Nginx 服务、正向代理与反向代理、负载均衡与动静分离、Nginx+Keepalived 高可用,今天手把手带大家搭建 LNMP 架构以及通过 LNMP 平台中部署天空网络电影 Web 应用系统;

1、安装 Nginx
首先,需准备一台Linux 服务器,然后安装Nginx 服务,这里就不过多的写安装Nginx步骤了,具体可以看这篇文章《手把手教你在 Linux 环境下搭建 Nginx 服务》若安装过程中,有遇到什么问题,欢迎大家与我交流。

2、安装 MySQL 数据库
准备工作,先检查系统中是否已经安装了MySQL数据库,如已安装,先卸载,以免发生端口或是程序冲突。

# rpm -q mysql-server mysql

注意:MySQL 5.5 以上的版本都需要 cmake 编译。而不是 ./configure

# tar xf  cmake-2.8.6.tar.gz
# cd cmake-2.8.6
# ./configure
# gmake && gmake install

或者

# yum -y install cmake 

创建 MySQL 用户

# groupadd mysql
# useradd -M  -s /sbin/nologin -g mysql mysql 

解压、编译、安装


# tar xf mysql-5.5.22.tar.gz 
# cd mysql-5.5.22
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all
# make && make install

上述参数含义:

-DCMAKE_INSTALL_PREFIX: 指定数据库安装目录

-DSYSCONFDIR=/etc :指定配置文件目录

-DDEFAULT_CHARSET:指定默认使用的字符集编码。如utf8

-DDEFAULT_COLLATION=utf8_general_ci:设定默认排序规则(utf8_general_ci快速/utf8_unicode_ci准确)

-DEXTRA_CHARSETS=all:启用额外的字符集类型(默认为all)

如下图表示编译完成

Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统

权限调整

# chown -R mysql:mysql /usr/local/mysql

建立配置文件

# rm -rf /etc/my.cnf
# cd mysql-5.5.22
# cp support-files/my-medium.cnf /etc/my.cnf

初始化数据库

# cd /usr/local/mysql
# scripts/mysql_install_db  --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

初始化数据库成功

Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统

设置软连接

为了在任何目录下都能使用 MySQL 命令,可以创建软连接。

# ln -s /usr/local/mysql/bin/* /usr/local/bin/

将 MySQL 添加为系统服务

# cd mysql-5.5.22/support-files
# cp mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# chkconfig --add mysqld

启动 MySQL 服务

# service mysqld start
# Starting  MySQL..          [  OK  ]
# netstat -anpt | grep mysqld
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      2849/mysqld 

登陆验证,查看 MySQL 数据库是否搭建完成

3、安装 PHP
FPM(FastCGI Process Manager,FastCGI 进程管理器)模块,用来对 PHP 解析实例进行管理,优化解析效率。单台服务器的 LNMP 架构通常使用该方式,因此在配置 PHP 编译选项时需添加--enable-fpm以启用此模块。

解压

# tar xf php-5.3.28.tar.gz
# cd php-5.3.28
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --with-mysql=/usr/local/mysql/bin/mysql_config  --enable-xml  --with-config-file-path=/etc
# make && make install

php编译如果报以下错误


configure: error: Cannot find libmysqlclient under /usr.

解决办法:

# ln -s /usr/lib64/mysql/libmysqlclient.so.16 /usr/lib/libmysqlclient.so

配置 Nginx 支持 PHP 环境,启用 php-fpm 配置文件

Nginx 能够解析 PHP 网页,有两种方法:

  • 当中介:将访问 PHP 页面的 Web 请求转发给其他服务器处理;

  • 通过使用 PHP 的 FPM 模块来调用本机的 PHP 环境;

如果选用 FPM 方式,需先启动 php-fpm 进程,便于监听 PHP 解析请求,在 php-fpm.conf 配置文件中,pid 配置行指出了 PID 信息的存放位置,可根据实际情况进行修改。

# cd /usr/local/php/etc/
# cp php-fpm.conf.default php-fpm.conf
# useradd -M -s /sbin/nologin php
# vi php-fpm.conf
25 pid = run/php-fpm.pid          // 确认 PID 文件位置
140 user = nobody                 // 运行用户
141 group = nobody                // 运行组
188 pm.max_children = 50          // 最大空闲进程数
190 pm.start_servers = 20         // 启动时开启的进程数
191 pm.min_spare_servers = 5      // 最少空闲进程数
195 pm.max_spare_servers = 35

启动 fpm

# cd /usr/local/php/sbin/
# ./php-fpm

启动成功

# netstat -antp | grep php-fpm
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      3007/php-fpm        
tcp        1      0 192.168.1.11:40560          192.168.1.11:3306           CLOSE_WAIT  3008/php-fpm        
tcp        1      0 192.168.1.11:40562          192.168.1.11:3306           CLOSE_WAIT  3009/php-fpm  

结合 PHP 与 Nginx,并修改配置文件

无论是将 PHP 页面交给 LNMP 服务器去解析,都是会调用本机的 php-fpm 进程进行解析,需在server { }配置段中添加localtion配置,指定当访问.php网页时采取任何操作,在 conf/ 目录下的 fastcgi.conf 文件中已经包含必须的宏配置,可通过include语句添加。


vim /usr/local/nginx/conf/nginx.conf
 35     server {
 36         listen       80;
 37         server_name  www.jacktian.com;
 38 
 39         #charset koi8-r;
 40 
 41         #access_log  logs/host.access.log  main;
 42 
 43         location / {
 44             root   html;                              // php 网页文档根目录
 45             index  index.html index.htm index.php;
 46             location ~ \.php$ {                       // 访问.php网页的配置段
 47             fastcgi_pass   127.0.0.1:9000;            // php-fpm 的监听地址
 48             fastcgi_index  index.php;                 // PHP 首页文件
 49             fastcgi_param  SCRIPT_FILENAME  /$document_root$fastcgi_script_name;
 50             include        fastcgi_params;            // 包括 fastcgi.conf 样本配置
 51          }
 52 
 53         }

创建 PHP 文件

以调用 php-fpm 解析为例,在 PHP 文档根目录下创建一个测试网页文件。

# cd /usr/local/nginx/html/
v# im index.php
<?php
phpinfo();
?>

重启 Nginx 服务

# ./nginx -s stop
# ./nginx

验证

在本地浏览器地址栏中输入http://192.168.1.11/index.php进行测试,到此 PHP和 Nginx结合成功。

Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统

4、在 LNMP 平台上部署 Web 应用系统
LNMP 与 LAMP 平台是非常相似的,主要在于所用的 Web 服务软件的不同,而这与使用 PHP 开发的 Web 应用程序并无太大关系,PHP 应用的部署方法也类似,以部署SKYUC 天空网络电影系统为例。

SKYUC 是一套 PHP 视频点播系统,支持各种 P2P 流媒体软件,适合电影门户站、多媒体中心、网吧、酒店、教育等多种行业使用。

下载并部署程序代码

将下载的SKYUC程序文件解压,找到其中的wwwroot文件夹并将其放置到LNMP服务器的网站根目录下,然后调整权限,允许Nginx、php-fpm程序拥有必要的写入权限。

# yum -y install unzip
# unzip SKYUC.v3.4.2.SOURCE.zip 
# cd SKYUC.v3.4.2.SOURCE
# mv wwwroot /usr/local/nginx/html/skyuc
# chmod -R 777 skyuc

创建数据库

为降低 Web 应用程序对数据库的风险,可设置专用的数据库及授权用户。


mysql> create database skyucdb;
mysql> grant all on skyucdb.* to 'runskyuc'@'%' identified by '123.com';

登录验证

Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统

安装 Web 应用

本地访问http://192.168.1.11/skyuc/install/index.php,将会打开SKYUC的安装程序,根据页面提示要求,只需三步即可安装成功。

Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统

确保系统环境、目录权限、缓存可写性等检测通过,否则将无法继续安装。

Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统

下一步的配置系统中,除了应正确配置数据库连接,还有一点需要跟大家强调的,类型要选:MySQL,还应设置好管理账号、密码等信息,完成安装后,可删除install目录,降低安全风险。

Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统


Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统

配置完SKYuc系统页面后,可返回到Web应用系统站点首页或管理后台,这时恰巧,系统显示了Nginx 403 forbidden (13: Permission denied)报错,如下是我的解决方法:
第一步: 将nginx.conf的user改为和启动用户一致

# vim /usr/local/nginx/conf/nginx.conf
  2 user  root;
  3 worker_processes  1;

第二步: 缺少index.html或index.php文件,就是配置文件中第45行 index index.html index.htm 中缺少指定的index.php文件。


 43         location / {
 44             root   html;
 45             index  index.html index.htm index.php;
 46             location ~ \.php$ {
 47             fastcgi_pass   127.0.0.1:9000;
 48             fastcgi_index  index.php;
 49             fastcgi_param  SCRIPT_FILENAME  /$document_root$fastcgi_script_name;
 50             include        fastcgi_params;
 51          }

第三步: SELinux 设置为开启状态(enabled)的原因,需将enabled改为disabled。

# vi /etc/selinux/config
  7 SELINUX=disabled

第四步: 重启Nginx服务。

cd /usr/local/nginx/sbin/

./nginx -s stop

./nginx

访问 Web 应用系统

通过本地访问http://192.168.1.11/skyuc/,可以看到天空网络电影系统网站首页。

Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统

通过本地访问http://192.168.1.11/skyuc/admincp/,输入刚才所配置的管理员账号密码即可登录至后台管理界面。

Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统


环境包下载
公众号内回复:LNMP即可获取文章中的安装包。

原文地址:https://blog.51cto.com/15067236/2605066

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


本篇内容介绍了“LNMP服务器环境配置实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情...
本篇内容主要讲解“OneinStack如何一键安装LNMP”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“OneinStack如何...
小编给大家分享一下如何解决LNMP安装composer install时出现Warning: putenv()问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅...
1.源码安装mysql鉴于前边的文章已经详细说过mysql的源码安装可以点击基于LAMP的Discuz论坛的实现(源码安装)自行查看这里为了节省时间用一个shell脚本进行mysql的源码安装用到的mysql依然是5.6.46没有源码包的同学可以点击【mysql-5.6.46.tar.gz提取码:nli5】进行下载
Linux是非常热门的技术,也是当下非常受欢迎的操作系统,具有独特的优势所在,广受大家的喜欢和追捧,今天为大家分享一下几款常用的Linux系统面板,希望对你有所帮助。1、宝塔面板:是一款使用方便、功能强大而且终身免费的服务器管理软件,支持Linux以及Windows系统,一键配置LAMP/LNMP
██【電:131.乀.1418.乀.6667】【薇q:9788.乀.9181】██柬埔寨东方明珠开户目录LAMP1.安装Mariadb2.安装PHP3.测试php和apache的协同4.修改MariaDB数据库配置5.测试数据库连接LNMP(未完待续)LAMP1.安装Mariadb在RaspberryPi中,MySQL无法安装,会自动建议安装Maria
关闭防火墙安装依赖包上传源码包解压源码包,安装nginx启动nginx安装mysql和PHP相关服务修改nginx配置文件,nginx和PHP进行整合重新加载nginx服务启动php-fpm书写PHP测试页测试网页 
一.lnmp的搭建1.准备一台纯净版的虚拟机2.下载Lnmp一键安装包命令:wget http://soft.vpser.net/lnmp/lnmp1.5-full.tar.gz【安装完整版的-推荐1.5版本】也可以本地下载好,通过rz上传:http://soft.vpser.net/lnmp/lnmp1.5-full.tar.gz3.开始安装命令:cdlnmp1.5-full 
1.LNMP理论fastcgi的主要优点:把动态语言和http服务器分离开来,使nginx可以处理静态请求和向后转发动态请求,而php/php-fpm服务器转移解析PHP动态请求使用fastcgi的原因:Nginx不支持对外部动态程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。
keepalived高可用keepalived注意:任何软件都可以使用keepalived来做高可用keepalived如何实现高可用VRRP:虚拟路由冗余协议比如公司的网络是通过网关进行上网的,那么如果该路由器故障了,网关无法转发报文了,此时所有人都无法上网了,怎么办?通常做法是给路由器增加一台备节点,但是问
通过阿里云的服务器搭建lnmp架构以及部署wordpress个人博客,连接上域名所遇到的问题及解决办法注释:操作系统centos7.9第一步:购买阿里云ecs服务器,选择系统及其他硬件,下面是我自己购买的配置,可以参考(注意操作系统我购买的时候选错了,后来换成了centos7.9)然后在阿里云“云服
文章目录1.首先了解编译安装和yum安装的区别。2.yum安装准备工作---切换阿里云yum源3.编译安装lnmp**很不建议使用编译安装,麻烦且容易报错。**4.yum安装lnmp**可以先执行一下yumupdate**5.lnmp一键安装[参考网站](https://lnmp.org/)**不喜欢这种方式,所以没测试
电影院系统解压登录mysql创建电影院系统使用的数据库授权账户skyuc访问数据库讲系统部署到www.benet.com网站根目录下mv/usr/src/SKYUC.v3.4.2.SOURCE/wwwroot/*/var/www/benetcom/设置网站根目录所有者和权限客户机测试论坛系统部署解压复制文件到网站根目
下载:​ https://www.php.net/downloads​ https://www.php.net/distributions/php-8.0.6.tar.gz编译安装php:①安装依赖:yum-yinstalllibxml2-develsqlite-develbzip2-devellibcurl-devellibpng-devellibjpeg-develfreetype-devellibicu-develoniguruma-devellibxs
树莓派LNMP关键词:raspberrywebphpdnsmysq1LNMP、LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写,分别指Linux、Nginx/Apache、MySQL和PHP。这里演示如何在树莓派上搭建LNMP环境并配置多个站点。主要内容:树莓派安装nginx树莓派安装ph
官网:http://kodcloud.com/1、准备MySQL数据库 [root@cent8_yzl_20~]#yuminstall-ymysql-server[root@cent8_yzl_20~]#systemctlenable--nowmysqld[root@cent8_yzl_20~]#mysqlmysql>createdatabasekodbox;mysql>createuserkodbox@'10.0.0.
环境应用IP操作系统nginx192.168.122.131centos8mysql192.168.122.132centos8php192.168.122.133centos8准备工作//关闭防火墙#systemctldisable--nowfirewalld#setenforce0#vim/etc/selinux/configSELINUX=disabled安装nginx//安装依
1.购买vps或者外国云主机2.搭建ss服务端3.客户端配置服务端信息,即可。不废话,开始教程:ss-panel-v3简介ss-panel是一套功能齐全的shadowsocks用户管理面板,它可以实现用户注册、用户管理、流量控制、签到、添加多节点、充值购买、邀请返利等诸多功能,是目前网络上使用最广泛的一
LNMP架构数据迁移至NFS第一步:先将原有目录中数据移出数据存储到本地什么位置,获取方法1.通过网站页面右键点击,获取资源地址信息2.find命令利用-mmin53.利用inotify服务监控目录数据变化[root@web01wp-content]#cd/applicationginx/html/blog/wp-content/uploads[root@we
一 点睛业务上线之前最关键的一项任务便是环境部署,往往一个业务涉及多种应用环境,比如Web、DB、PROXY、CACHE等,本示例通过env.roledefs定义不同主机角色,再使用“@roles('webservers')”修饰符绑定到对应的任务函数,实现不同角色主机的部署差异。二 代码#coding=utf-8#!/usr