• LNMP网站框架搭建(编译安装的方式)


     内容预知

     1. Nginx的工作原理

     2.Nginx编译安装安装

     3.mysql的编译安装

     4.php的编译安装

    验证PHP与nginx的是否连接 

    验证lnmp的是否搭建成功 

     5.部署 Discuz!社区论坛


     1. Nginx的工作原理

     php-fpm.conf  是控制php-fpm守护进程的

    php.ini是php解析器

    工作进程:

     1.客户端通过域名进行请求访问时,会找Nginx对应的虚拟主机

    2. Nginx对该请求进行判断,如果是静态请求,Nginx会自行处理,并将处理结果返回给用户浏览器

    3.  Nginx判断的请求如果为php请求,则调用FastCGI客户端,并且把请求也抛给FastCGI服务器,也就是php-fpm(扩展名是php的往后抛)

    注意:nginx.conf的php请求配置 

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;

    }

     4. wapper调用php解析器来解析请求,如果发现这个请求里要连接数据库,就会在数据库中找数据。如果不需要找数据就是正常的动态请求。处理完毕后将数据返回给Nginx即可。

     

     2.Nginx编译安装安装

     Nginx网站服务详解(第一部分:编译安装及系统服务添加)_站在这别动,我去给你买橘子的博客-CSDN博客https://blog.csdn.net/qq_62462797/article/details/127072140?spm=1001.2014.3001.5501

                将Nginx服务添加到系统服务中即完成。 

     3.mysql的编译安装

     准备好本次的安装包 :mysql-boost-5.7.20.tar.gz

    1. 1、安装Mysql环境依赖包
    2. yum -y install \
    3. ncurses \
    4. ncurses-devel \
    5. bison \
    6. cmake
    7. 2、创建运行用户
    8. useradd -M -s /sbin/nologin mysql
    9. 3、编译安装
    10. cd /opt
    11. tar zxvf mysql-boost-5.7.20.tar.gz
    12. cd /opt/mysql-5.7.20/
    13. cmake \
    14. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    15. -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
    16. -DSYSCONFDIR=/etc \
    17. -DSYSTEMD_PID_DIR=/usr/local/mysql \
    18. -DDEFAULT_CHARSET=utf8 \
    19. -DDEFAULT_COLLATION=utf8_general_ci \
    20. -DWITH_EXTRA_CHARSETS=all \
    21. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    22. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    23. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    24. -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
    25. -DMYSQL_DATADIR=/usr/local/mysql/data \
    26. -DWITH_BOOST=boost \
    27. -DWITH_SYSTEMD=1
    28. make && make install
    29. 4、修改mysql 配置文件
    30. vim /etc/my.cnf
    31. [client]
    32. port = 3306
    33. socket=/usr/local/mysql/mysql.sock
    34. [mysqld]
    35. user = mysql
    36. basedir=/usr/local/mysql
    37. datadir=/usr/local/mysql/data
    38. port = 3306
    39. character-set-server=utf8
    40. pid-file = /usr/local/mysql/mysqld.pid
    41. socket=/usr/local/mysql/mysql.sock
    42. bind-address = 0.0.0.0
    43. skip-name-resolve
    44. max_connections=2048
    45. default-storage-engine=INNODB
    46. max_allowed_packet=16M
    47. server-id = 1
    48. sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
    49. 5、更改mysql安装目录和配置文件的属主属组
    50. chown -R mysql:mysql /usr/local/mysql/
    51. chown mysql:mysql /etc/my.cnf
    52. 6、设置路径环境变量
    53. echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
    54. source /etc/profile
    55. 7、初始化数据库
    56. cd /usr/local/mysql/bin/
    57. ./mysqld \
    58. --initialize-insecure \
    59. --user=mysql \
    60. --basedir=/usr/local/mysql \
    61. --datadir=/usr/local/mysql/data
    62. 8、添加mysqld系统服务
    63. cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
    64. systemctl daemon-reload
    65. systemctl start mysqld.service
    66. systemctl enable mysqld
    67. 9、修改mysql 的登录密码
    68. mysqladmin -u root -p password "abc123"
    69. 10、授权远程登录
    70. mysql -u root -p

     4.php的编译安装

     本次使用的php软件包为:php-7.1.10.tar.bz2

    1. 1、安装环境依赖包
    2. yum -y install gd \
    3. libjpeg libjpeg-devel \
    4. libpng libpng-devel \
    5. freetype freetype-devel \
    6. libxml2 libxml2-devel \
    7. zlib zlib-devel \
    8. curl curl-devel \
    9. openssl openssl-devel
    10. 2、编译安装
    11. cd /opt
    12. tar jxvf php-7.1.10.tar.bz2
    13. cd php-7.1.10
    14. ./configure \
    15. --prefix=/usr/local/php \
    16. --with-mysql-sock=/usr/local/mysql/mysql.sock \
    17. --with-mysqli \
    18. --with-zlib \
    19. --with-curl \
    20. --with-gd \
    21. --with-jpeg-dir \
    22. --with-png-dir \
    23. --with-freetype-dir \
    24. --with-openssl \
    25. --enable-fpm \
    26. --enable-mbstring \
    27. --enable-xml \
    28. --enable-session \
    29. --enable-ftp \
    30. --enable-pdo \
    31. --enable-tokenizer \
    32. --enable-zip
    33. make && make install
    34. 3、路径优化
    35. ln -s /usr/local/php/bin/* /usr/local/bin/
    36. ln -s /usr/local/php/sbin/* /usr/local/sbin/
    37. 4、调整PHP配置文件
    38. php有三个配置文件:
    39. php.ini 主配置文件
    40. php-fpm.conf 进程服务配置文件
    41. www.conf 扩展配置文件
    42. #调整主配置文件:
    43. cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
    44. vim /usr/local/php/lib/php.ini
    45. --1170行--修改
    46. mysqli.default_socket = /usr/local/mysql/mysql.sock
    47. --939行--取消注释,修改
    48. date.timezone = Asia/Shanghai
    49. php -m #验证安装的模块
    50. #调整进程服务配置文件:
    51. cd /usr/local/php/etc/
    52. cp php-fpm.conf.default php-fpm.conf
    53. vim php-fpm.conf
    54. --17行--去掉";"注释
    55. pid = run/php-fpm.pid
    56. #调整扩展配置文件:
    57. cd /usr/local/php/etc/php-fpm.d/
    58. cp www.conf.default www.conf
    59. 5、启动php-fpm
    60. /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
    61. netstat -anpt | grep 9000
    62. #PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。
    63. cd /opt/php-7.1.10/sapi/fpm
    64. cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
    65. systemctl restart php-fpm.service
    66. 6、配置 Nginx 支持 PHP 解析
    67. vim /usr/local/nginx/conf/nginx.conf
    68. --65行--取消注释,修改
    69. location ~ \.php$ {
    70. root html;
    71. fastcgi_pass 127.0.0.1:9000;
    72. fastcgi_index index.php;
    73. fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #将 /scripts 修改为nginx的工作目录
    74. #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #$document_root 代表当前请求在root指令中指定的值
    75. include fastcgi_params;
    76. }
    77. systemctl restart nginx.service

     

    验证PHP与nginx的是否连接 

    1. 验证PHP 测试页
    2. vim /usr/local/nginx/html/index.php
    3. <?php
    4. phpinfo();
    5. ?>
    6. 浏览器访问
    7. http://192.168.73.105/index.php

    验证lnmp的是否搭建成功 

    1. 验证数据库工作是否正常
    2. mysql -u root -p
    3. CREATE DATABASE bbs;
    4. GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
    5. GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
    6. flush privileges;
    7. vim /usr/local/nginx/html/index.php #替换原来的测试页内容
    8. <?php
    9. $link=mysqli_connect('192.168.73.105','bbsuser','admin123');
    10. if($link) echo "

      Success!!

      "
      ;
    11. else echo "Fail!!";
    12. ?>
    13. 浏览器访问
    14. http://192.168.73.105/index.php

     5.部署 Discuz!社区论坛

    部署方式与lamp的安装方式完全相同。

     LAMP架构中的网站搭建_站在这别动,我去给你买橘子的博客-CSDN博客https://blog.csdn.net/qq_62462797/article/details/127025188?spm=1001.2014.3001.5501

  • 相关阅读:
    FFmpeg修复受损视频
    微服务6:通信之网关
    Spring5源码3-BeanDefinition
    Pytorch框架学习笔记-数据处理-菜鸟进阶艰难之路
    Vuex 笔记
    python爬虫入门学习
    USB转单串口、多串口芯片选型UART.TTL.RS-232等
    2022年下半年软件设计师上午真题及答案解析
    学生HTML个人网页作业作品:基于web在线汽车网站的设计与实现 (宝马轿车介绍)
    B_QuRT_User_Guide(28)
  • 原文地址:https://blog.csdn.net/qq_62462797/article/details/127088299