zoukankan      html  css  js  c++  java
  • ⑦nginx+php+mysql

    1.安装LNMP架构

    yum安装 nginx1.12 php7.2 Mriadb5.7
    1.安装Nginx

    //1.使用Nginx官方提供的rpm包
    [root@nginx ~]# cat /etc/yum.repos.d/nginx.repo 
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    
    //2.执行yum安装
    [root@nginx ~]# yum install nginx -y
    [root@nginx ~]# systemctl start nginx
    [root@nginx ~]# systemctl enable nginx
    

    2.使用第三方扩展epel源安装php7.2

    //移除旧版php
    [root@nginx ~]# yum remove php-mysql-5.4 php php-fpm php-common
    
    //安装扩展源
    [root@nginx ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    [root@nginx ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    
    //安装php72版本
    [root@nginx ~]# yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache
    
    //启动php
    [root@nginx ~]# systemctl start php-fpm
    [root@nginx ~]# systemctl enable php-fpm
    

    3.安装Mariadb

    //下载官方扩展源, 扩展源集成mysql5.6、5.7、8.0,仅5.7仓库是开启
    [root@nginx ~]# rpm -ivh http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm
    [root@nginx ~]# yum install mysql-community-server -y
    [root@nginx ~]# systemctl start mysqld
    [root@nginx ~]# systemctl enable mysqld
    
    //如果mysql登陆需要密码,请查看该文件
    [root@nginx ~]# grep 'temporary password' /var/log/mysqld.log
    
    //登陆mysql重新配置密码
    [root@nginx ~]# mysql -uroot -p'password'
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
    

    php配置文件修改

    vim /etc/php-fpm.d/www.conf
    user = www
    group = www
    

    启动 开机自启动

    systemctl start  php-fpm
    systemctl enable php-fpm
    

    写phpinfo信息

    vim /html/phpinfo.php
    
    <?
       phpinfo();
    ?>
    

    写php-->mysql代码

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

    nginx+php server

    cat /etc/nginx/conf.d/blog.conf

     server {
            listen       80;
            server_name  localhost;
            #charset koi8-r; #字符集
            access_log  /var/log/nginx/blog_access.log  main;  #登陆日志
            error_log   /var/log/nginx/blog_error.log;
            location / {
                root   /html;
                index  index.php index.html index.htm;
            }
            location ~ .php$ {
                root           /html;  #站点目录
                fastcgi_pass   127.0.0.1:9000;  #php的文件  通过fasecgi接口传给php解析器
                fastcgi_index  index.php;  #没有指定php文件是 解析index.php文件
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #document_root 为站点目录   fastcgi_script_name为请求的uri   通过fastcgi_param赋值给SCRIPT_FILENAME 传给127.0.0.1:9000
                include        fastcgi_params;
            }
        }
    

    准备数据库

    yum install mariadb-server -y
    grant all on blog.* to blog@'localhost' identified by '123456';
    

    php配置文件优化

    1. 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@nginx ~]# cat /etc/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
    
    3. PHP5-FPM配置详解释
    [global]
    #pid设置, 记录程序启动后pid
    pid = /var/run/php-fpm.pid
    #php-fpm程序启动错误日志路径
    error_log = /soft/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] = /soft/log/php/php-www_error.log
    php_admin_flag[log_errors] = on
    
    # 配置php慢查询, 以及慢查询记录日志位置
    request_slowlog_timeout = 5s
    slowlog = /soft/log/php/php-slow.log
    
  • 相关阅读:
    redis安装以及php扩展
    Linux下php安装Redis扩展
    正则验证邮箱
    常用方法
    PHPExcel说明
    冒泡排序
    CURL post请求
    PHP生成随机字符串
    PHP中的字符串函数
    PHP中的数组函数
  • 原文地址:https://www.cnblogs.com/yangtao416/p/14621060.html
Copyright © 2011-2022 走看看