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


    在前面的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

    1. # tar xf  cmake-2.8.6.tar.gz
    2. # cd cmake-2.8.6
    3. # ./configure
    4. # gmake && gmake install
    5. 或者
    6. # yum -y install cmake 

    创建 MySQL 用户

    1. # groupadd mysql
    2. # useradd -M  -s /sbin/nologin -g mysql mysql 

    解压、编译、安装

    1. # tar xf mysql-5.5.22.tar.gz 
    2. # cd mysql-5.5.22
    3. # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all
    4. # 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
    

    建立配置文件

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

    初始化数据库

    1. # cd /usr/local/mysql
    2. # 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 添加为系统服务

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

    启动 MySQL 服务

    1. # service mysqld start
    2. # Starting  MySQL..          [  OK  ]
    3. # netstat -anpt | grep mysqld
    4. 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以启用此模块。

    解压

    1. # tar xf php-5.3.28.tar.gz
    2. # cd php-5.3.28
    3. # ./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
    4. # 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 信息的存放位置,可根据实际情况进行修改。

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

    启动 fpm

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

    启动成功

    1. # netstat -antp | grep php-fpm
    2. tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      3007/php-fpm        
    3. tcp        1      0 192.168.1.11:40560          192.168.1.11:3306           CLOSE_WAIT  3008/php-fpm        
    4. 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语句添加。

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

    创建 PHP 文件

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

    1. # cd /usr/local/nginx/html/
    2. v# im index.php
    3. <?php
    4. phpinfo();
    5. ?>

    重启 Nginx 服务

    1. # ./nginx -s stop
    2. # ./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服务器的网站根目录下,然后调整权限,允许Nginxphp-fpm程序拥有必要的写入权限。

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

    创建数据库

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

    1. mysql> create database skyucdb;
    2. 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.confuser改为和启动用户一致

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

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

    1.  43         location / {
    2.  44             root   html;
    3.  45             index  index.html index.htm index.php;
    4.  46             location ~ \.php{
    5.  47             fastcgi_pass   127.0.0.1:9000;
    6.  48             fastcgi_index  index.php;
    7.  49             fastcgi_param  SCRIPT_FILENAME  /$document_root$fastcgi_script_name;
    8.  50             include        fastcgi_params;
    9.  51          }

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

    1. # vi /etc/selinux/config
    2.   7 SELINUX=disabled

    第四步: 重启Nginx服务。

    1. # cd /usr/local/nginx/sbin/
    2. # ./nginx -s stop
    3. # ./nginx

    访问 Web 应用系统

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


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

    环境包下载

  • 相关阅读:
    YOLOv5,YOLOv8添加ASFF(自适应空间特征融合)
    ssh-keygen 常用命令与参数
    unity 前后左右 移动
    万物归宗系列01-html基本语法
    偏微分方程的人工智能
    GB/T 7134-2008 浇筑型工业有机玻璃板材检测
    2022-08-04 clickhouse的select子句
    Go:关于‘fresh‘ 不是内部或外部命令,也不是可运行的程序问题的解决方案
    ubuntu 18.04安装pycharm及编译环境配置
    python 碰到问题
  • 原文地址:https://blog.csdn.net/biyusr/article/details/125480253