Install

  • Linux 一键搭建 Lnmp 环境

    1
    2
    
    # 教程
    https://github.com/licess/lnmp OR https://lnmp.org
    
  • MacOs 一键搭建 Lnmp 环境

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    
    # 教程
    https://github.com/yeszao/dnmp
    
    # 常用命令
    $ cd ~/dnmp
    $ docker-compose build # 镜像构建
    $ docker-compose up -d                      # 创建并且后台运行方式启动所有容器
    $ docker-compose up -d nginx php  mysql     # 创建并且已后台运行的方式启动nginx、php、mysql容器
    
    $ docker-compose start php                  # 启动服务
    $ docker-compose stop php                   # 停止服务
    $ docker-compose restart php                # 重启服务
    $ docker-compose build php                  # 构建或者重新构建服务
    
    $ docker-compose rm php                     # 删除并且停止php容器
    $ docker-compose down                       # 停止并删除容器,网络,图像和挂载卷
    

配置文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
nginx 配置文件路径:
cd /usr/local/nginx/conf/vhost

mysql 安装路径
cd /etc/mysql/

php配置文件路径:php --ini [disable_functions: 禁用函数配置]

php-fpm配置文件:/usr/local/php/etc/php-fpm.conf

Redis 配置文件:/usr/local/redis/etc/redis.conf

LNMP 日志文件

  1. Nginx

    • access log -> 记录用户、IP、访问页面以及其他信息
    • error log -> 记录服务器错误信息
  2. PHP

    错误日志:/usr/local/error.log

  3. MySQL

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    # 记录Mysql运行过程中的Error、Warning、Note等信息,系统出错或者某条记录出问题可以查看Error日志。
    > show variables like "log_error";
    
    # 记录mysql的日常日志,包括查询、修改、更新等的每条sql。
    > show global variables like "%genera%"
    
    # Binary Log:每一条会修改数据的sql都会记录到master的binlog中,slave在复制的时候sql进程会解析成和原来master端执行多相同的sql再执行。
    > show variables like "%log_bin%";
    
    # Mysql 慢查询日志
    > show variables like "%slow%";
    

Other

  1. linux下apache获取root权限方法:

    1
    2
    3
    4
    5
    6
    7
    
    php中的exec函数可以执行很多命令(脚本)使用比较方便,但是在linux下需要给与权限。修改/etc/sudoers文件,做两处改动:
    
    <1>在文件中添加apache的用户,我用的apache2的用户名是www-data,有的是daemon、httpd等(查看一下自己的apache的配置文件即可)。添加的格式:
    www-data  ALL=(ALL)  NOPASSWD:  ALL(格式在/etc/sudoer文件中有)。
    
    <2>在exec()等系统命令调用函数中加入“sudo“(不需要密码)
    exec('sudo chmod 777 -R /var/spool/cron/crontabs/www-data');
    
  2. nginx 只能处理静态页面,fastcgi 是 nginx 用来处理动态页面的,fpm 是处理 php 进程的。

  3. php 操作命令

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    
    查看php进程: ps aux | grep php
    启动命令:nohup /usr/local/php/sbin/php-fpm &
    php-fpm 关闭:
    方案一: kill -INT `cat /usr/local/php/var/run/php-fpm.pid`  [php-fpm.pid路径在php-fpm.conf配置文件中查看]
    方案二: killall php-fpm
    php-fpm 重启:
    kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
    
    # 查找配置文件路径
    locate php.ini
    
    # 查找 php 扩展
    php -m | grep swoole
    
    # 查看 php 扩展版本
    php --ri swoole
    
  4. nginx 操作命令

    1
    2
    3
    4
    5
    6
    7
    8
    
    启动命令:
    /usr/local/nginx/sbin/nginx
    关闭命令:
    /usr/local/nginx/sbin/nginx -s stop
    
    重启命令:
    /usr/local/nginx/sbin/nginx -t -- 检查修改后的配置是否正常运行
    /usr/local/nginx/sbin/nginx -s reload  -- 平滑重启
    

    Nginx 是一款非常高性能的 HTTP 代理/反向代理服务器,服务开发中也经常使用它来做负载均衡。

    Nginx 实现负载均衡的方式主要有三种(Nginx 通过 Upstream 模块实现负载均衡)

    • 轮询
    • 加权轮询
    • IP Hash 轮询
  5. mysql 操作命令

    1
    2
    
    启动:service mysql start 或 /etc/init.d/mysql start
    关闭:service mysql stop