• linux系统-----------搭建LNMP 架构


    PHP(Hypertext Preprocessor 超文本预处理器)是通用服务器端脚本编程语言,主要用于web开发实现动态web页面,也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。同时,php还提供了一个命令行接口,因此,其也可以在大多数系统上作为一个独立的shell来使用

    LNMP 架构

    环境准备    lnmp    需要  安装  nginx    mysql    php  软件     

    准备工作   关闭防火墙,防护

    1. [root@localhost ~]#systemctl stop firewalld
    2. [root@localhost ~]#setenforce 0
    3. [root@localhost ~]#cd /opt
    4. [root@localhost opt]#ls
    5. [root@localhost opt]#rz -E
    6. rz waiting to receive.
    7. [root@localhost opt]#rz -E
    8. rz waiting to receive.
    9. [root@localhost opt]#rz -E
    10. rz waiting to receive.
    11. [root@localhost opt]#rz -E
    12. rz waiting to receive.
    13. [root@localhost opt]#ls
    14. Discuz_X3.4_SC_UTF8.zip mysql-boost-5.7.20.tar.gz nginx-1.22.0.tar.gz php-7.1.10.tar.bz2
    15. [root@localhost opt]#tar xf nginx-1.22.0.tar.gz
    16. [root@localhost opt]#cd nginx-1.22.0/
    17. [root@localhost nginx-1.22.0]#
    18. [root@localhost nginx-1.22.0]#
    19. [root@localhost nginx-1.22.0]#
    20. [root@localhost nginx-1.22.0]#
    21. [root@localhost nginx-1.22.0]#
    22. [root@localhost nginx-1.22.0]#ls
    23. auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
    24. [root@localhost nginx-1.22.0]#yum -y install pcre-devel zlib-devel gcc gcc-c++ make

    (一)编译安装nginx

    1、安装依赖包

    yum -y install pcre-devel zlib-devel gcc gcc-c++ make

    2、创建运行用户、组

    [root@localhost nginx-1.22.0]#useradd -M -s /sbin/nologin nginx

    (Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)  useradd -M -s /sbin/nologin nginx

    3、编译安装nginx

    1. ./configure \
    2. --prefix=/usr/local/nginx \
    3. --user=nginx \
    4. --group=nginx \
    5. --with-http_stub_status_module
    1. [root@localhost nginx-1.22.0]#make -j 2
    2. [root@localhost nginx-1.22.0]#make install
    [root@localhost nginx-1.22.0]#ln -s /usr/local/nginx/sbin/nginx  /usr/bin

    1. tee /lib/systemd/system/nginx.service <<eof
    2. [Unit]
    3. Description=nginx
    4. After=network.target
    5. [Service]
    6. Type=forking
    7. PIDFile=/usr/local/nginx/logs/nginx.pid
    8. ExecStart=/usr/local/nginx/sbin/nginx
    9. ExecReload=/bin/kill -1 $MAINPID
    10. ExecStop=/bin/kill -3 $MAINPID
    11. PrivateTmp=true
    12. [Install]
    13. WantedBy=multi-user.target
    14. eof
    1. [root@localhost nginx-1.22.0]#systemctl daemon-reload
    2. [root@localhost nginx-1.22.0]#systemctl enable --now nginx.service
    3. [root@localhost nginx-1.22.0]#systemctl status nginx.service

    (二)编译安mysql

    1、安装Mysql环境依赖包

    1. yum -y install \
    2. ncurses \
    3. ncurses-devel \
    4. bison \
    5. cmake
    6. yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

    2、创建运行用户

    1. [root@localhost nginx-1.22.0]#useradd -M -s /sbin/nologin mysql
    2. [root@localhost nginx-1.22.0]#cd /opt
    3. [root@localhost opt]#ls
    4. Discuz_X3.4_SC_UTF8.zip mysql-boost-5.7.20.tar.gz nginx-1.22.0 nginx-1.22.0.tar.gz php-7.1.10.tar.bz2
    5. [root@localhost opt]#tar xf mysql-boost-5.7.20.tar.gz
    6. [root@localhost opt]#cd mysql-5.7.20/
    7. [root@localhost mysql-5.7.20]#ls
    8. boost config.h.cmake extra libmysql mysys_ssl scripts testclients
    9. BUILD configure.cmake include libmysqld packaging sql unittest
    10. client COPYING INSTALL libservices plugin sql-common VERSION
    11. cmake dbug libbinlogevents man rapid storage vio
    12. CMakeLists.txt Docs libbinlogstandalone mysql-test README strings win
    13. cmd-line-utils Doxyfile-perfschema libevent mysys regex support-files zlib
    14. [root@localhost mysql-5.7.20]#

    3、编译安装

    1. cmake \
    2. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    3. -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
    4. -DSYSCONFDIR=/etc \
    5. -DSYSTEMD_PID_DIR=/usr/local/mysql \
    6. -DDEFAULT_CHARSET=utf8 \
    7. -DDEFAULT_COLLATION=utf8_general_ci \
    8. -DWITH_EXTRA_CHARSETS=all \
    9. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    10. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    11. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    12. -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
    13. -DMYSQL_DATADIR=/usr/local/mysql/data \
    14. -DWITH_BOOST=boost \
    15. -DWITH_SYSTEMD=1
    1. [root@localhost mysql-5.7.20]#make -j 2
    2. [root@localhost mysql-5.7.20]#make install

    4、修改mysql 配置文件

    [root@localhost mysql-5.7.20]#vim /etc/my.cnf
    1. [client]
    2. port = 3306
    3. socket=/usr/local/mysql/mysql.sock
    4. [mysqld]
    5. user = mysql
    6. basedir=/usr/local/mysql
    7. datadir=/usr/local/mysql/data
    8. port = 3306
    9. character-set-server=utf8
    10. pid-file = /usr/local/mysql/mysqld.pid
    11. socket=/usr/local/mysql/mysql.sock
    12. bind-address = 0.0.0.0
    13. skip-name-resolve
    14. max_connections=2048
    15. default-storage-engine=INNODB
    16. max_allowed_packet=16M
    17. server-id = 1
    18. 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

    5、更改mysql安装目录和配置文件的属主属组

    1. [root@localhost mysql-5.7.20]#chown -R mysql:mysql /usr/local/mysql/
    2. [root@localhost mysql-5.7.20]#chown mysql:mysql /etc/my.cnf

    6、设置路径环境变量

    1. [root@localhost mysql-5.7.20]#echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
    2. [root@localhost mysql-5.7.20]#source /etc/profile

    7、初始化数据库

    [root@localhost mysql-5.7.20]#cd /usr/local/mysql/bin/
    
    1. ./mysqld \
    2. --initialize-insecure \
    3. --user=mysql \
    4. --basedir=/usr/local/mysql \
    5. --datadir=/usr/local/mysql/data

    8、添加mysqld系统服务

    1. [root@localhost bin]#cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
    2. [root@localhost bin]#systemctl daemon-reload
    3. [root@localhost bin]#systemctl start mysqld.service
    4. [root@localhost bin]#systemctl status mysqld.service
    [root@localhost bin]#systemctl enable mysqld.service

    9、修改mysql 的登录密码

    [root@localhost bin]#mysqladmin -u root -p password "abc123"

    mysqladmin -u root -p password "abc123"     
    给root账号设置密码为abc123,提示输入的是原始密码(为空)要求输入的是原密码直接回车即可

    10、授权远程登录 

    [root@localhost bin]#mysql -uroot -pabc123

    (三)编译安装php软件

    1、安装环境依赖包

    1. yum -y install gd \
    2. libjpeg libjpeg-devel \
    3. libpng libpng-devel \
    4. freetype freetype-devel \
    5. libxml2 libxml2-devel \
    6. zlib zlib-devel \
    7. curl curl-devel \
    8. openssl openssl-devel

    2、编译安装

    1. ./configure \
    2. --prefix=/usr/local/php \
    3. --with-mysql-sock=/usr/local/mysql/mysql.sock \
    4. --with-mysqli \
    5. --with-zlib \
    6. --with-curl \
    7. --with-gd \
    8. --with-jpeg-dir \
    9. --with-png-dir \
    10. --with-freetype-dir \
    11. --with-openssl \
    12. --enable-fpm \
    13. --enable-mbstring \
    14. --enable-xml \
    15. --enable-session \
    16. --enable-ftp \
    17. --enable-pdo \
    18. --enable-tokenizer \
    19. --enable-zip
    1. [root@localhost php-7.1.10]#make -j 2
    2. [root@localhost php-7.1.10]#make install

    3、调整PHP配置文件

    1. [root@localhost php-7.1.10]#ls php.ini-development
    2. php.ini-development
    3. [root@localhost php-7.1.10]#cp php.ini-development /usr/local/php/lib/php.ini
    4. [root@localhost php-7.1.10]#vim /usr/local/php/lib/php.ini
    1. 修改内容
    2. date.timezone = Asia/Shanghai
    3. mysqli.default_socket = /usr/local/mysql/mysql.sock
    调整主配置文件:

    1. [root@localhost php-7.1.10]#cd /usr/local/php/lib/
    2. [root@localhost lib]#ls
    3. php php.ini
    4. [root@localhost lib]#cd php/
    5. [root@localhost php]#ls
    6. Archive Console doc OS pearcmd.php peclcmd.php System.php XML
    7. build data extensions PEAR PEAR.php Structures test
    8. [root@localhost php]#cd ..
    9. [root@localhost lib]#ls
    10. php php.ini
    11. [root@localhost lib]#cd ..
    12. [root@localhost php]#ls
    13. bin etc include lib php sbin var
    14. [root@localhost php]#pwd
    15. /usr/local/php
    16. [root@localhost php]#cd etc/
    17. [root@localhost etc]#ls
    18. pear.conf php-fpm.conf.default php-fpm.d
    19. [root@localhost etc]#pwd
    20. /usr/local/php/etc
    21. [root@localhost etc]#cp php-fpm.conf.default php-fpm.conf
    22. [root@localhost etc]#ls
    23. pear.conf php-fpm.conf php-fpm.conf.default php-fpm.d
    24. [root@localhost etc]#vim php-fpm.conf
    调整进程服务配置文件:

    调整扩展配置文件:
    1. [root@localhost etc]#cd php-fpm.d/
    2. [root@localhost php-fpm.d]#ls
    3. www.conf.default
    4. [root@localhost php-fpm.d]#cp www.conf.default www.conf
    5. [root@localhost php-fpm.d]#ls
    6. www.conf www.conf.default
    7. [root@localhost php-fpm.d]#

    php有三个配置文件: 
    php.ini            主配置文件  
    php-fpm.conf    进程服务配置文件 
    www.conf        扩展配置文件

    #调整主配置文件:
    cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini    
    vim /usr/local/php/lib/php.ini
    --1170行--修改
    mysqli.default_socket = /usr/local/mysql/mysql.sock
    --939行--取消注释,修改
    date.timezone = Asia/Shanghai

    #调整进程服务配置文件:
    cd /usr/local/php/etc/
    cp  php-fpm.conf.default php-fpm.conf
    vim php-fpm.conf
    --17行--去掉";"注释
    pid = run/php-fpm.pid

    #调整扩展配置文件:
    cd /usr/local/php/etc/php-fpm.d/
    cp www.conf.default www.conf

    4、路径优化

    1. [root@localhost php-fpm.d]#ln -s /usr/local/php/bin/* /usr/local/bin/
    2. [root@localhost php-fpm.d]#ln -s /usr/local/php/sbin/* /usr/local/sbin/

    5、启动php-fpm

    1. [root@localhost php-fpm.d]#cd /opt/php-7.1.10/sapi/fpm/
    2. [root@localhost fpm]#ls
    3. config.m4 init.d.php-fpm Makefile.frag php-fpm.8.in php-fpm.service status.html.in www.conf.in
    4. CREDITS init.d.php-fpm.in php-fpm php-fpm.conf php-fpm.service.in tests
    5. fpm LICENSE php-fpm.8 php-fpm.conf.in status.html www.conf
    6. [root@localhost fpm]#pwd
    7. /opt/php-7.1.10/sapi/fpm
    8. [root@localhost fpm]#cp /opt/php-7.1.10/sapi/fpm/php-fpm.service /usr/lib/systemd/system/
    9. [root@localhost fpm]#
    10. [root@localhost fpm]#systemctl daemon-reload
    11. [root@localhost fpm]#systemctl start php-fpm.service
    12. [root@localhost fpm]#systemctl status php-fpm.service
    13. ● php-fpm.service - The PHP FastCGI Process Manager
    14. Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
    15. Active: active (running) since 三 2024-02-28 15:47:25 CST; 17s ago
    16. Main PID: 42918 (php-fpm)
    17. CGroup: /system.slice/php-fpm.service
    18. ├─42918 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
    19. ├─42919 php-fpm: pool www
    20. └─42920 php-fpm: pool www
    21. 228 15:47:25 localhost.localdomain systemd[1]: Started The PHP FastCGI Process Manager.
    22. 228 15:47:25 localhost.localdomain systemd[1]: Starting The PHP FastCGI Process Manager...
    23. [root@localhost fpm]#ss -natp |grep 9000
    24. LISTEN 0 128 127.0.0.1:9000 *:* users:(("php-fpm",pid=42920,fd=0),("php-fpm",pid=42919,fd=0),("php-fpm",pid=42918,fd=6))
    25. [root@localhost fpm]#

    (四)配置 Nginx支持PHP解析

    [root@localhost fpm]#vim /usr/local/nginx/conf/nginx.conf
    1. [root@localhost fpm]#nginx -s reload
    2. [root@localhost fpm]#systemctl restart nginx.service

    1、修改配置文件

    2、写php测试页面

    1. [root@localhost html]#vim /usr/local/nginx/html/index.php
    2. phpinfo();
    3. ?>
    4. [root@localhost html]#

    3、去浏览器验证

    4、验证数据库工作是否正常

    1. CREATE DATABASE bbs;
    2. GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
    3. GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
    4. flush privileges;
    重新编辑测试页:

    1. $link=mysqli_connect('192.168.246.7','bbsuser','admin123');
    2. if($link) echo "

      Success!!

      "
      ;
    3. else echo "Fail!!";
    4. ?>
    浏览器访问

    (五)安装论坛

    1. [root@localhost ~]#cd /opt
    2. [root@localhost opt]#ls
    3. dir_SC_UTF8 mysql-5.7.20 nginx-1.22.0 php-7.1.10 说明.htm
    4. Discuz_X3.4_SC_UTF8.zip mysql-boost-5.7.20.tar.gz nginx-1.22.0.tar.gz php-7.1.10.tar.bz2
    5. [root@localhost opt]#unzip Discuz_X3.4_SC_UTF8.zip
    1. [root@localhost opt]#cd dir_SC_UTF8/
    2. [root@localhost dir_SC_UTF8]#ls
    3. readme upload utility
    4. [root@localhost dir_SC_UTF8]#cp -r upload/ /usr/local/nginx/html/bbs/
    5. [root@localhost dir_SC_UTF8]#cd /usr/local/nginx/html/bbs/
    6. [root@localhost bbs]#ls
    7. admin.php archiver crossdomain.xml forum.php index.php member.php portal.php source uc_client
    8. api config data group.php install misc.php robots.txt static uc_server
    9. api.php connect.php favicon.ico home.php m plugin.php search.php template
    10. [root@localhost bbs]#chmod -R 777 ./config/
    11. [root@localhost bbs]#chmod -R 777 ./data/
    12. [root@localhost bbs]#chmod -R 777 ./uc_client/
    13. [root@localhost bbs]#chmod -R 777 ./uc_server/

    1、部署 Discuz

    2、调整论坛目录的权限:

    调整论坛目录的权限:

    cd /usr/local/nginx/html/bbs/

    chown -R nginx.nginx ./config/
    chown -R nginx.nginx  ./data/
    chown -R nginx.nginx ./uc_client/
    chown -R nginx.nginx ./uc_server/

    都要处理
    chmod -R 777 ./config/
    chmod -R 777 ./data/
    chmod -R 777 ./uc_client/
    chmod -R 777 ./uc_server/

    3、论坛页面访问

    数据库默认端口号3306

    (六)安装博客

    1. [root@zzcentos1 opt]#cp -r wordpress /usr/local/nginx/html/
    2. [root@zzcentos1 opt]#cd /usr/local/nginx/html/
    3. [root@zzcentos1 html]#ls
    4. 50x.html bbs index.html index.php wordpress
    5. [root@zzcentos1 html]#chmod -R 777 wordpress/
    6. [root@zzcentos1 html]#ls
    7. 50x.html bbs index.html index.php wordpress
    8. [root@zzcentos1 html]#

    建数据库名

    1. CREATE DATABASE blog;
    2. GRANT all ON blog.* TO 'bloguser'@'%' IDENTIFIED BY 'admin123';
    3. GRANT all ON blog.* TO 'bloguser'@'localhost' IDENTIFIED BY 'admin123';
    4. flush privileges;
    5. wordpress/wp-admin

    去浏览器访问

  • 相关阅读:
    Delegate介绍
    LVDS转换芯片,GM8284C数据手册!!!!
    满目星河、转身、皆是背影
    [NOIP2011 提高组] Mayan 游戏
    【算法】反悔贪心
    SpringMVC工作原理
    Go语言程序编译注入版本信息,提升Debug速度!
    【WAF绕过】姿势总结(一)
    编程-设计模式 2:抽象工厂模式
    linux安装mysql
  • 原文地址:https://blog.csdn.net/zzzxxx520369/article/details/136342026