• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

LNMP架构的源码编译

武飞扬头像
Au杨
帮助1

目录

一、安装 Nginx 服务

1.1安装依赖包

1.2创建运行用户

1.3编译安装

1.4优化路径

1.5添加 Nginx 系统服务

二、安装 MySQL 服务

2.1安装Mysql环境依赖包

2.2创建运行用户

2.3编译安装

2.4修改mysql 配置文件

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

2.6设置路径环境变量

2.7初始化数据库

2.8添加mysqld系统服务

2.9修改mysql 的登录密码

2.10授权远程登录

三、安装配置 PHP 解析环境

3.1安装环境依赖包

3.2编译安装

3.3路径优化

3.4调整PHP配置文件

3.5启动php-fpm

3.6配置 Nginx 支持 PHP 解析

3.7验证PHP 测试页

3.8验证数据库工作是否正常

四、部署 Discuz!社区论坛 Web 应用

五、fpm参数优化


一、安装 Nginx 服务

首先关闭防火墙

  1.  
    systemctl stop firewalld
  2.  
    systemctl disable firewalld
  3.  
    setenforce 0

1.1安装依赖包

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

1.2创建运行用户

useradd -M -s /sbin/nologin nginx

1.3编译安装

  1.  
    cd /opt
  2.  
    tar zxvf nginx-1.12.0.tar.gz -C /opt/
  3.  
     
  4.  
    cd nginx-1.12.0/
  5.  
    ./configure \
  6.  
    --prefix=/usr/local/nginx \
  7.  
    --user=nginx \
  8.  
    --group=nginx \
  9.  
    --with-http_stub_status_module
  10.  
     
  11.  
    make && make install

1.4优化路径

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

1.5添加 Nginx 系统服务

  1.  
    vim /lib/systemd/system/nginx.service
  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 -s HUP $MAINPID
  10.  
    ExecStop=/bin/kill -s QUIT $MAINPID
  11.  
    PrivateTmp=true
  12.  
    [Install]
  13.  
    WantedBy=multi-user.target
  14.  
     
  15.  
    chmod 754 /lib/systemd/system/nginx.service
  16.  
    systemctl start nginx.service
  17.  
    systemctl enable nginx.service
学新通

二、安装 MySQL 服务

2.1安装Mysql环境依赖包

  1.  
    yum -y install \
  2.  
    ncurses \
  3.  
    ncurses-devel \
  4.  
    bison \
  5.  
    cmake

2.2创建运行用户

useradd -M -s /sbin/nologin  mysql

2.3编译安装

  1.  
    cd /opt
  2.  
    tar zxvf mysql-boost-5.7.20.tar.gz
  3.  
     
  4.  
    cd /opt/mysql-5.7.20/
  5.  
    cmake \
  6.  
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  7.  
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
  8.  
    -DSYSCONFDIR=/etc \
  9.  
    -DSYSTEMD_PID_DIR=/usr/local/mysql \
  10.  
    -DDEFAULT_CHARSET=utf8 \
  11.  
    -DDEFAULT_COLLATION=utf8_general_ci \
  12.  
    -DWITH_EXTRA_CHARSETS=all \
  13.  
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  14.  
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  15.  
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  16.  
    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
  17.  
    -DMYSQL_DATADIR=/usr/local/mysql/data \
  18.  
    -DWITH_BOOST=boost \
  19.  
    -DWITH_SYSTEMD=1
  20.  
     
  21.  
    make && make install
学新通

2.4修改mysql 配置文件

  1.  
    [client]
  2.  
    port = 3306
  3.  
    socket=/usr/local/mysql/mysql.sock
  4.  
     
  5.  
    [mysql]
  6.  
    port = 3306
  7.  
    socket = /usr/local/mysql/mysql.sock
  8.  
    auto-rehash
  9.  
     
  10.  
    [mysqld]
  11.  
    user = mysql
  12.  
    basedir=/usr/local/mysql
  13.  
    datadir=/usr/local/mysql/data
  14.  
    port = 3306
  15.  
    character-set-server=utf8
  16.  
    pid-file = /usr/local/mysql/mysqld.pid
  17.  
    socket=/usr/local/mysql/mysql.sock
  18.  
    bind-address = 0.0.0.0
  19.  
    skip-name-resolve
  20.  
    max_connections=2048
  21.  
    default-storage-engine=INNODB
  22.  
    max_allowed_packet=16M
  23.  
    server-id = 1
  24.  
     
  25.  
    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
学新通

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

  1.  
    chown -R mysql:mysql /usr/local/mysql/
  2.  
    chown mysql:mysql /etc/my.cnf

2.6设置路径环境变量

  1.  
    echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
  2.  
    source /etc/profile

2.7初始化数据库

  1.  
    cd /usr/local/mysql/bin/
  2.  
    ./mysqld \
  3.  
    --initialize-insecure \
  4.  
    --user=mysql \
  5.  
    --basedir=/usr/local/mysql \
  6.  
    --datadir=/usr/local/mysql/data

2.8添加mysqld系统服务

  1.  
    cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
  2.  
    systemctl daemon-reload
  3.  
    systemctl start mysqld.service
  4.  
    systemctl enable mysqld

2.9修改mysql 的登录密码

mysqladmin -u root -p password "abc123"

2.10授权远程登录

mysql -u root -p

三、安装配置 PHP 解析环境

3.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

3.2编译安装

  1.  
    cd /opt
  2.  
    tar jxvf php-7.1.10.tar.bz2
  3.  
     
  4.  
    cd php-7.1.10
  5.  
    ./configure \
  6.  
    --prefix=/usr/local/php \
  7.  
    --with-mysql-sock=/usr/local/mysql/mysql.sock \
  8.  
    --with-mysqli \
  9.  
    --with-zlib \
  10.  
    --with-curl \
  11.  
    --with-gd \
  12.  
    --with-jpeg-dir \
  13.  
    --with-png-dir \
  14.  
    --with-freetype-dir \
  15.  
    --with-openssl \
  16.  
    --enable-fpm \
  17.  
    --enable-mbstring \
  18.  
    --enable-xml \
  19.  
    --enable-session \
  20.  
    --enable-ftp \
  21.  
    --enable-pdo \
  22.  
    --enable-tokenizer \
  23.  
    --enable-zip
  24.  
     
  25.  
    make && make install
学新通

3.3路径优化

  1.  
    ln -s /usr/local/php/bin/* /usr/local/bin/
  2.  
    ln -s /usr/local/php/sbin/* /usr/local/sbin/

3.4调整PHP配置文件

  1.  
    php有三个配置文件:
  2.  
    php.ini 主配置文件
  3.  
    php-fpm.conf 进程服务配置文件
  4.  
    www.conf 扩展配置文件
  5.  
     
  6.  
    #调整主配置文件:
  7.  
    cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
  8.  
    vim /usr/local/php/lib/php.ini
  9.  
    --1170行--修改
  10.  
    mysqli.default_socket = /usr/local/mysql/mysql.sock
  11.  
    --939行--取消注释,修改
  12.  
    date.timezone = Asia/Shanghai
  13.  
     
  14.  
    php -m #验证安装的模块
  15.  
     
  16.  
    #调整进程服务配置文件:
  17.  
    cd /usr/local/php/etc/
  18.  
    cp php-fpm.conf.default php-fpm.conf
  19.  
    vim php-fpm.conf
  20.  
    --17行--去掉";"注释
  21.  
    pid = run/php-fpm.pid
  22.  
     
  23.  
    #调整扩展配置文件:
  24.  
    cd /usr/local/php/etc/php-fpm.d/
  25.  
    cp www.conf.default www.conf
学新通

3.5启动php-fpm

  1.  
    /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
  2.  
    netstat -anpt | grep 9000
  3.  
     
  4.  
    #PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。
  5.  
     
  6.  
    cd /opt/php-7.1.10/sapi/fpm
  7.  
    cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
  8.  
    systemctl restart php-fpm.service

3.6配置 Nginx 支持 PHP 解析

  1.  
    vim /usr/local/nginx/conf/nginx.conf
  2.  
    --65行--取消注释,修改
  3.  
    location ~ \.php$ {
  4.  
    root html;
  5.  
    fastcgi_pass 127.0.0.1:9000;
  6.  
    fastcgi_index index.php;
  7.  
    fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #将 /scripts 修改为nginx的工作目录
  8.  
    #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #$document_root 代表当前请求在root指令中指定的值
  9.  
    include fastcgi_params;
  10.  
    }
  11.  
     
  12.  
    systemctl restart nginx.service

3.7验证PHP 测试页

  1.  
    vim /usr/local/nginx/html/index.php
  2.  
    <?php
  3.  
    phpinfo();
  4.  
    ?>
  5.  
     
  6.  
    浏览器访问
  7.  
    http://192.168.130.10/index.php

学新通

3.8验证数据库工作是否正常

  1.  
    mysql -u root -p
  2.  
    CREATE DATABASE bbs;
  3.  
    GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
  4.  
    GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
  5.  
    flush privileges;
  6.  
     
  7.  
    vim /usr/local/nginx/html/index.php #替换原来的测试页内容
  8.  
    <?php
  9.  
    $link=mysqli_connect('192.168.130.10','bbsuser','admin123');
  10.  
    if($link) echo "<h1>Success!!</h1>";
  11.  
    else echo "Fail!!";
  12.  
    ?>
  13.  
     
  14.  
    浏览器访问
  15.  
    http://192.168.130.10/index.php
学新通

四、部署 Discuz!社区论坛 Web 应用

  1.  
    cd /opt
  2.  
    unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis
  3.  
    cd /opt/dis/dir_SC_UTF8/
  4.  
    cp -r upload/ /usr/local/nginx/html/bbs/
  5.  
     
  6.  
    调整论坛目录的权限:
  7.  
    cd /usr/local/nginx/html/bbs/
  8.  
    chown -R nginx ./config/
  9.  
    chown -R nginx ./data/
  10.  
    chown -R nginx ./uc_client/
  11.  
    chown -R nginx ./uc_server/
  12.  
  13.  
    chmod -R 777 ./config/
  14.  
    chmod -R 777 ./data/
  15.  
    chmod -R 777 ./uc_client/
  16.  
    chmod -R 777 ./uc_server/
  17.  
     
  18.  
    论坛页面访问
  19.  
    http://192.168.130.10/bbs/install/index.php
  20.  
    ----------------------------------------------------------------------------------------------------------
  21.  
    数据库服务器:localhost ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
  22.  
    数据库名字:bbs
  23.  
    数据库用户名:bbsuser
  24.  
    数据库密码:admin123
  25.  
    管理员账号:admin
  26.  
    管理员密码:admin123
  27.  
    ----------------------------------------------------------------------------------------------------------
  28.  
    访问论坛页面:
  29.  
    http://192.168.130.10/bbs/index.php
  30.  
    http://192.168.130.10/bbs/admin.php
学新通

学新通

五、fpm参数优化

Nginx的PHP解析功能实现如果是交由FPM处理的,为了提高PHP的处理速度,可对FPM模块进行参数的调整
根据服务器的内存与服务负载,调整FPM模块参数

  1.  
    vim /usr/local/php/etc/php-fpm.conf
  2.  
    pid = run/php-fpm.pid
  3.  
     
  4.  
    vim /usr/local/php/etc/php-fpm.d/www.conf
  5.  
    --96行--
  6.  
    pm = dynamic #fpm进程启动方式,动态的
  7.  
    --107行--
  8.  
    pm.max_children=20 #fpm进程启动的最大进程数
  9.  
    --112行--
  10.  
    pm.start_servers = 5 #动态方式下启动时默认开启的进程数,在最小和最大之间
  11.  
    --117行--
  12.  
    pm.min_spare_servers = 2 #动态方式下最小空闲进程数
  13.  
    --122行--
  14.  
    pm.max_spare_servers = 8 #动态方式下最大空闲进程数
  15.  
     
  16.  
     
  17.  
    kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` #重启php-fpm
  18.  
    netstat -anpt | grep 9000
  19.  
    ps -elf | grep php-fpm
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfejkg
系列文章
更多 icon
同类精品
更多 icon
继续加载