zoukankan      html  css  js  c++  java
  • CentOS 7 架设LNMP动态网站

    1.安装Nginx

    1)使用Nginx官方的yum源

    [root@localhost ~]# vim /etc/yum.repos.d/nginx.repo 
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1

    2)安装并启动Nginx

    [root@localhost ~]# yum install nginx -y
    [root@localhost ~]# systemctl start nginx
    [root@localhost ~]# systemctl enable nginx

    2.使用第三方源安装php

    1)移除旧版php

    [root@localhost ~]# yum list installed | grep php
    [root@localhost ~]# yum remove php*

    2)安装php源

    [root@localhost ~]# yum install epel-release -y
    [root@localhost ~]# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y

    3)安装php及扩展

    [root@localhost ~]# yum install -y php74-php-fpm php74-php-cli php74-php-bcmath php74-php-gd php74-php-json php74-php-mbstring php74-php-mcrypt php74-php-mysqlnd php74-php-opcache php74-php-pdo php74-php-pecl-crypto php74-php-pecl-mcrypt php74-php-pecl-geoip php74-php-recode php74-php-snmp php74-php-soap php74-php-xml

    4)查询其他可安装的扩展

    [root@localhost ~]# yum search php74

    5)查看是否成功安装

    [root@localhost ~]# php74 -v #查看是否成功安装
    [root@localhost ~]# php74 -m #查看所有的扩展

    6)查询配置文件所在的位置

    [root@localhost ~]# rpm -ql php74-php-fpm
    [root@localhost ~]# rpm -ql php74-php-common

    7)启动php-fpm  

    [root@localhost ~]# systemctl start php74-php-fpm
    [root@localhost ~]# systemctl enable php74-php-fpm

    3.安装MariaDB

    1)使用MariaDB官方的yum源

    [root@localhost ~]# vim /etc/yum.repos.d/mariadb.repo
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.5.0/centos74-aarch64/ #这个链接换成你要的版本地址
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1

    2)安装并启动MariaDB

    [root@localhost ~]# yum install mariadb-server -y
    [root@localhost ~]# systemctl start mariadb
    [root@localhost ~]# systemctl enable mariadb

    4.配置LNMP架构

    1)配置Nginx实现动态请求转发至php

    [root@localhost ~]# vim /etc/nginx/conf.d/php.conf 
    server {
    listen 80;
    server_name localhost;
    root /usr/share/nginx/html;
    index index.php index.html;
    
    location ~ .php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
    include fastcgi_params;
    }
    }

    2)添加php测试页面

    测试phpinfo

    [root@localhost ~]# vim /usr/share/nginx/html/info.php
    <?php
    phpinfo();
    ?>

    使用mysqli模块测试连接mysql

    [root@localhost ~]# vim /usr/share/nginx/html/mysqli.php
    <?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    
    // 创建连接
    $conn = mysqli_connect($servername, $username, $password);
    
    // 检测连接
    if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
    }
    echo "连接成功";
    ?>

    使用pdo模块测试连接mysql

    [root@localhost ~]# vim /usr/share/nginx/html/mysqlpdo.php
    <?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    
    try {
    $conn = new PDO("mysql:host=$servername;dbname=test", $username, $password);
    echo "连接成功";
    }
    catch(PDOException $e)
    {
    echo $e->getMessage();
    }
    ?>
    

    5.PHP配置文件优化

    1)php-ini优化(/etc/opt/remi/php74/php.ini)

    //打开php的安全模式,控制php执行危险函数, 默认是Off,改为On
    sql.safe_mode = Off
    //关闭php头部信息, 隐藏版本号, 默认是On,该为Off
    expose_php = On
    //错误信息输出控制
    display_error = Off
    error_reporting = E_WARNING & E_ERROR
    //记录错误日志至后台, 方便追溯
    log_errors = On
    error_log = /var/log/php_error.log
    //每个脚本时间最大内存
    memory_limit = 128M
    //上传文件最大许可,默认2M, 建议调整为16,32M
    upload_max_filesize = 2M
    //禁止远程执行phpshell,默认On, 建议Off
    allow_url_fopen = On
    //时区调整,默认PRC, 建议调整为Asia/Shanghai
    date.timezone = PRC
    
    //整体优化后配置文件
    sql.safe_mode = Off
    expose_php = Off
    display_error = Off
    error_reporting = E_WARNING & E_ERROR
    log_errors = On
    error_log = /var/log/php_error.log
    upload_max_filesize = 50M
    allow_url_fopen = Off
    date.timezone = Asia/Shanghai

    2)php-fpm优化
    PHP-FPM配置文件 4核16G、8核16G

    [root@localhost ~]# vim /etc/opt/remi/php74/php-fpm.d/www.conf
    [global]
    pid = /var/run/php-fpm.pid
    #php-fpm程序错误日志
    error_log = /var/log/php/php-fpm.log
    log_level = warning
    rlimit_files = 655350
    events.mechanism = epoll
    
    [www]
    user = nginx
    group = nginx
    listen = 127.0.0.1:9000
    listen.owner = www
    listen.group = www
    listen.mode = 0660
    
    listen.allowed_clients = 127.0.0.1
    pm = dynamic
    pm.max_children = 512
    pm.start_servers = 10
    pm.min_spare_servers = 10
    pm.max_spare_servers = 30
    pm.process_idle_timeout = 15s;
    
    pm.max_requests = 2048
    
    #php-www模块错误日志
    php_flag[display_errors] = off
    php_admin_value[error_log] = /var/log/php/php-www.log
    php_admin_flag[log_errors] = on
    
    #php慢查询日志
    request_slowlog_timeout = 5s
    slowlog = /var/log/php/php-slow.log
    PHP5-FPM配置详解释
    
    [global]
    #pid设置, 记录程序启动后pid
    pid = /var/run/php-fpm.pid
    #php-fpm程序启动错误日志路径
    error_log = /var/log/php/php-fpm_error.log
    # 错误级别. 可用级别为: alert(必须立即处理),error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice.
    log_level = warning
    #设置文件打开描述符的rlimit限制.
    rlimit_files = 65535
    events.mechanism = epoll
    
    #启动进程的用户和组
    [www]
    user = www
    group = www
    
    # fpm监听端口
    listen = 127.0.0.1:9000
    # unix socket设置选项,如果使用tcp方式访问,这里注释即可。
    listen.owner = www
    listen.group = www
    # 允许访问FastCGI进程的IP,any不限制
    listen.allowed_clients = 127.0.0.1
    
    # pm设置动态调度
    pm = dynamic
    # 同一时刻最大的php-fpm子进程数量
    pm.max_children = 200
    # 动态方式下的起始php-fpm进程数量
    pm.start_servers = 20
    # 动态方式下服务器空闲时最小php-fpm进程数量
    pm.min_spare_servers = 10
    # 动态方式下服务器空闲时最大php-fpm进程数量
    pm.max_spare_servers = 30
    # 最大请求
    pm.max_requests = 1024
    pm.process_idle_timeout = 15s;
    
    # FPM状态页面,用于监控php-fpm状态使用
    pm.status_path = /status
    # 错误日志
    php_flag[display_errors] = off
    php_admin_value[error_log] = /var/log/php/php-www_error.log
    php_admin_flag[log_errors] = on
    
    # 配置php慢查询, 以及慢查询记录日志位置
    request_slowlog_timeout = 5s
    slowlog = /var/log/php/php-slow.log
  • 相关阅读:
    Navicat Premium 12连接Oracle时提示oracle library is not loaded的问题解决
    事务传播机制Propagation.REQUIRES_NEW
    @ApiImplicitParams、ApiImplicitParam的使用
    启动微服务项目的时候报redisInit错误---本地启动redis服务
    Swagger介绍及使用
    mybaitis框架-trim标签
    pgadmin怎样创建新的连接
    微服务项目启动
    管理中第一可怕之事(2) . 分类: 项目管理 2014-06-25 18:54 257人阅读 评论(0) 收藏
    管理中第一可怕之事(1) . 分类: 项目管理 2014-06-25 18:53 264人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/Wang-Hongwei/p/13255139.html
Copyright © 2011-2022 走看看