Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统
作者:JackTian
微信公众号:杰哥的IT之旅(ID:Jake_Internet)
LAMP 系列导读
01. LAMP 系列教程(一)| 详解 Linux 环境下部署 HTTPD 服务
02. LAMP 系列教程(二)| 如何在 Linux 环境下部署 AWStats 分析系统来监控 Web 站点?
03. LAMP 系列教程(三)| 一文读懂 HTTPD 服务的访问控制
04. LAMP 系列教程(四)| MySQL 数据库系统(一)
05. LAMP 系列教程(五)| MySQL 数据库系统(二)- SQL语句的基本操作
06. LAMP 系列教程(六)| MySQL 数据库系统(三)- 数据库的用户授权
07. LAMP 系列教程(七)| MySQL 数据库系统(四)- 数据库的备份与恢复
08. LAMP 系列教程(八)| 带你轻松玩转 LAMP 网站架构平台(一)
09. LAMP 系列教程(九)| LAMP 架构应用案例 - 部署 PHPMyAdmin 系统(二)
LNMP 系列导读
01. Nginx 系列教程(一)| 手把手教你在 Linux 环境下搭建 Nginx 服务
02. Nginx 系列教程(二)| 一文带你读懂 Nginx 的正向与反向代理
03. Nginx 系列教程(三)| 一文带你读懂 Nginx 的负载均衡
04. Nginx 系列教程(四)| 一文带你读懂 Nginx 的动静分离
04. 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)
如下图表示编译完成
权限调整
# 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/
初始化数据库成功
设置软连接
为了在任何目录下都能使用 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.conf35 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结合成功。
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';
登录验证
安装 Web 应用
本地访问http://192.168.1.11/skyuc/install/index.php
,将会打开SKYUC
的安装程序,根据页面提示要求,只需三步即可安装成功。
确保系统环境、目录权限、缓存可写性等检测通过,否则将无法继续安装。
下一步的配置系统中,除了应正确配置数据库连接,还有一点需要跟大家强调的,类型要选:MySQL
,还应设置好管理账号、密码等信息,完成安装后,可删除install
目录,降低安全风险。
配置完SKYuc
系统页面后,可返回到Web
应用系统站点首页或管理后台,这时恰巧,系统显示了Nginx 403 forbidden (13: Permission denied)报错
,如下是我的解决方法:
第一步: 将nginx.conf
的user
改为和启动用户一致
# vim /usr/local/nginx/conf/nginx.conf2 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/config7 SELINUX=disabled
第四步: 重启Nginx
服务。
# cd /usr/local/nginx/sbin/
# ./nginx -s stop
# ./nginx
访问 Web 应用系统
通过本地访问http://192.168.1.11/skyuc/
,可以看到天空网络
电影系统网站首页。
通过本地访问http://192.168.1.11/skyuc/admincp/
,输入刚才所配置的管理员账号密码即可登录至后台管理界面。
今天的推荐不知道大家喜欢吗?如果你喜欢,请在文章底部留言和点赞,以表示对我的支持,你们的留言
和点赞
是我持续更新的动力哦,感谢大家!
1、点个赞,让更多的人看到这篇文章,顺便激励下我,嘻嘻。
2、关注我的原创微信公众号「杰哥的IT之旅」
,专注于IT技术干货文章,以及不定期的分享学习资料,实用工具,面试经验
等,当然了还有内推机会
哦,期待你的关注!
Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统相关推荐
- 保姆级教程:手把手教你搭建个人网站
保姆级教程:手把手教你搭建个人网站 前言 准备与搭建 1.Git管理工具的下载与安装 2.nodejs环境安装 3.hexo博客框架下载 npm换国内源 使用npm下载hexo博客框架 初始化mybl ...
- 【CCS仿真系列教程】手把手教你纯软件仿真实现音频滤波
[CCS仿真系列教程]手把手教你纯软件仿真实现音频滤波 事先说明 示例项目下载 示例使用说明 首先用Matlab生成加了噪声的音频 将我的项目弄你的CCS的WorkSpace中 把Matlab生成后的 ...
- Python学习教程:手把手教你搭建自己的量化分析数据库
Python学习教程:手把手教你搭建自己的量化分析数据库 引言: 数据是金融量化分析的重要基础,包括股票历史交易数据.上市公司基本面数据.宏观和行业数据等.随着信息流量的日益膨胀,学会获取.查询和加工 ...
- 云服务器架设网站教程_手把手教你搭建腾讯云服务器入门(图文教程)
本文由博主 威威喵 原创 博客主页:https://blog.csdn.net/smile_running 背景 暑假期间,愁着无聊但也不能荒废学业吧,毕竟以后想靠技术混口饭吃!为了实施自己的计划,特 ...
- python numpy安装教程_手把手教你搭建机器学习开发环境—Python与NumPy的超简安装教程...
手把手教你搭建机器学习开发环境Python语言是机器学习的基础,所以,想要入门机器学习,配置好Python的开发环境是第一步.本文就手把手的教你配置好基于Python的机器学习开发环境.超简单!第一步 ...
- 手机端创新体验——手把手教你搭建VRAR架构
声明:本文阿里巴巴技术论坛整理文章,首发于CSDN,未经许可,禁止任何形式的转载. 作者:袁岳峰,阿里移动平台虚拟&互动实验室负责人,GM Lab技术负责人. 责编:钱曙光,关注架构和算法领域 ...
- 程序之家系列教程之手把手教你写熊猫烧香病毒专杀工具
(作者:chenhui530,论坛 http://chenhui530.com ) 前言 经过去年和熊猫烧香.威金等病毒的"斗争",我也累了,"程序之家病毒专 ...
- 大数据系列教程003-hadoop伪分布式环境搭建步骤02-设置vmware虚拟网络编辑器
声明:大数据系列教程文章由Java潘老师辛苦原创,免费公开供java爱好者学习.如需转载请获得潘老师授权并保留原文链接,如有疑问或建议,可以联系潘老师: Q:1562691348 V:A1562691 ...
- APPserver安装教程(手把手教你搭建)
前提提醒: 如果你为纯小白直接按照操作步骤进行即可(忽略进阶教程),如果你知道进阶教程是什么可参照教程中的非小白步骤. 使用前请关闭其他本地环境软件,否则会出现冲突 该教程为本地环境搭建,只有在你电脑 ...
最新文章
- FPGA的设计艺术(3)静态时序分析
- centos mysql压缩文件直接恢复_Centos下mysql数据库备份与恢复的方法
- C语言文件读写(4)-判断文件是否结束
- boost::geometry模块实现自定义点示例
- php yii框架源码,yii 源码解读
- vue eslint报错Expected linebreaks to be ‘LF‘ but found ‘CRLF‘
- 毕业十年|我的嵌入式AI学习路线(笔记、代码)
- DOMJavaScript示例练习
- AutoHotKey在魔兽中显示文字或图片
- 走进我的交易室06_交易
- springboot07多环境切换
- kubernetes英语怎么读_小学三年级英语怎么学
- c51单片机渐变流水灯汇编语言,单片机闪烁灯流水灯汇编代码大全
- 论文参考文献尾注引用方法
- CocosCreator Shader Editor 2D/3D 特效编辑器
- 声纹识别技术简介——化繁为简的艺术
- Presenting view controllers on detached view controllers is discouraged
- 一文掌握常见常用Java集合框架
- 一篇文章教会你使用Python网络爬虫下载酷狗音乐
- 分享个免费的图文识别orc接口
热门文章
- 制作淘宝客微信公众号(二)
- win10更新之后搜狗输入法、QQ拼音输入法不可用
- 2013新春奉送 Android摄像头开发完美demo--- 循环聚焦 缩放大小 旋转picture 查询支持的pict
- 什么是 Kubernetes HPA
- Corel VideoStudio会声会影2020免费版+汉化包+序列号PC端电脑下载
- 前端、vue、Vue3弹幕实现;前端CSS实现弹幕
- 一起摇摆html5游戏,和 transformjs 一起摇摆
- 众多OA办公协同系统,企业应如何选择?
- latex范数和|| d ||
- mysql值locate()、position()、instr() 函数