北风留影 发表于 2018-10-10 11:52:37

linux下apache服务器,mysql日常命令

  apache
  -t是检查配置文件,跟nginx一样,-k graceful或者reload平滑重启
  prefork模式和worker模式
  prefork 使用多个子进程,每个子进程有一个线程,每个进程在某个特定时间内只能维持一个连接
  worker 使用多个子进程,每个子进程有多个线程,每个线程在某个特定时间内只能维持一个连接
  配置文件:监听端口,发布目录,管理员邮箱,各个模块,目录权限,别名,日志级别,访问类型,日志切割,ServerName,虚拟主机引用
  先grep去掉注释和空行
  这个文件都是一个模块一个模块,跟html格式差不多
  ServerRoot "/usr/local/apache2" //apache服务的目录
  Listen 80//监听端口
  LoadModule php5_module      modules/libphp5.so
   //引用的模块,加!号是除这个之外
   //引用的模块
  User daemon
  Group daemon
  
  
  ServerAdmin you@example.com//服务管理员服务器出错了会发邮件,前提是服务器能发
  DocumentRoot "/usr/local/apache2/htdocs"//发布目录,配虚拟主机的话就不管用了
  
  Options FollowSymLinks /开启的话是显示目录,网站要禁止浏览,不然别人
  AllowOverride None
  Order deny,allow
  Deny from all
  
  
  Options Indexes FollowSymLinks
  AllowOverride None
  Order allow,deny
  Allow from all
  
  
  DirectoryIndex index.php index.html /默认引导页
  
  
  Order allow,deny
  Deny from all
  Satisfy All
  
  ErrorLog "logs/error_log"   //错误日志
  LogLevel warn    //错误级别,info debug error warn
  
  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  LogFormat "%h %l %u %t \"%r\" %>s %b" common
  
  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
  
  CustomLog "logs/access_log" common
  
     //别名访问,类似重定向,访问/cgi-bin就转到apache2/cgi-bin/
  ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
  
  
  
      //cgi目录的权限
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
  
  DefaultType text/plain
  
  RequestHeader unset Proxy early
  
  
  TypesConfig conf/mime.types
  AddType application/x-compress .Z
  AddType application/x-gzip .gz .tgz
  
  
  SSLRandomSeed startup builtin
  SSLRandomSeed connect builtin
  
  AddType   application/x-httpd-php .php
  然后访问主机网页 看有没有测试页
  hostname看主机名 vim /etc/sysconfig/network/ 永久修改
  虚拟主机在conf/extra/httpd-vhosts.conf
  NameVirtualHost 127.0.0.1:80   //访问80端口的都来找vhosts
  NameVirtualHost 10.154.9.199(内网IP):80
  
  ServerAdmin webmaster@dummy-host.example.com   //填自己邮箱
  DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"   //发布目录
  ServerName dummy-host.example.com   // 网站域名
  ServerAlias www.dummy-host.example.com//域名的别名,可以写泛域名
  ErrorLog "logs/dummy-host.example.com-error_log"
  CustomLog "logs/dummy-host.example.com-access_log" common
  rewrite/http://www.yinxingyouyou.cn/test.html
  
  AllowOverride All //设置为 None 时, .htaccess 文件将被完全忽略。指令设置为 All 时,所有具有 “.htaccess” 作用域将生效.
  Options -Indexes FollowSymLinks // 显示目录
  Order allow,deny //部分可以访问,余下都不能访问,默认是都不能访问
  Allow from all//允许所有访问
  
  
  
  然后在主配置文件里引用虚拟主机配置文件,加入
  InClude conf/extra/*.conf
  配置完了/usr/local/apache2/bin/apachectl -t 检查下
  然后graceful重启
  虚拟主机主要是为了多个公司的子域名放文件,或
  ServerAlias 跟两个网址 可以设置网址别名
  vim extra/httpd-pmp.conf
  编译时--with-mpm=worker或者prefork
  //预派生,提前生成进程
  StartServers          5//初始进程
  MinSpareServers       5//最小空闲进程
  MaxSpareServers      10 //最大空闲进程
  MaxClients          4096 //最大连接数,4000已经很高了,跟带宽有直接关联的,就一千兆,而且一个公司每秒4千一天都多少了
  MaxRequestsPerChild   10000 请求达到最大就光荣牺牲,换下个进程
  ServerLimit 1000    //最大并发,终极限制,Maxclient只能比这个小
  
  
  ThreadsPerChild      25多了个每个进程最多线程,不能超过最大连接数
  MaxRequestsPerChild   0 每个进程最大请求数
  
  apache两个最核心,虚拟主机和rewrite
  dir模块,设置默认首页的,可以改成你自己的文件名字
  rewrite规则
  编译时--enable rewrite   --enable-so可以动态编译模块
  开启引擎方式,在主配置文件加
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^yinxingyouyou.cn
  RewriteRule ^/(.*) http://www.yinxingyouyou.com/
  ·压测命令:ab,apache自带的,httpd-tools
  ab -c100 -n 1000 http://localhost
  其中10表示并发,100表示请求数
  测出来后
  request per second 是每秒可以处理的请求数
  mysq
  
  备份系统
  tar备份系统 文档240页有脚本 http://blog.csdn.net/su_linux/article/details/6425777
  rsync
  就备份/boot /etc /data,不用全备
  负载均衡也是一种备份
  mysqldump -uroot(哪个用户干的,要有权限) -p(可能没有密码) jfedu(哪个库--all-databases是所有库) >表名20160219.sql(备份成今天日期)
  mysqldump -uroot -p jfedu >./jfweb20160219.sql
  把表删了drop ,然后
  数据库导入
  进入数据库,mysql>source /tmp.wps.sql,必须选好库之后再导入
  #mysqldatabasename< 接文件绝对路径;必须选库
  然后show tables看下是不是导入的原来的数据;
  把数据库删了,
  mysql -uroot -p jfedutest_001.sql
  导出数据库结构的
  忘记数据库密码(密码破解)
  密码是存在mysql这个库的user表里,去看下
  >select HOST,user,Password from user;
  先把数据库停了,stop,跳过表的权限
  然后/usr/bin/mysqld_safe --user=mysql --skip-grant-tables &
  然后ps -ef |grep mysql看有个叫sql_skip-grant-tables
  然后mysql登进去进mysql这个库show tables;
  Update user set password=password(“1”) where user=’root’;
  重启数据库,这次是常规启动
  ps -ef |grep mysql 没有--skip-grant-tabes
  Mysql -uroot -p1
  光说不练假把式,一定要多练,做到能脱口而出
  navicat for mysql远程工具
  下载后授权本机IP,实验能不能登上去

  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'>  配置文件里/etc/my.conf,mysqld下的datadir是数据存放目录,可换成/data/mysql,mysql就是存放数据的软件,库都没了还搞啥
  bin-log是存放所有操作的语句,也就是操作记录,有这个日志数据库丢了也能回来,在/var/lib/mysql下 如果没有看下你my.conf里是不是没有log-bin=mysql-bin
  有时候实在起不来一个是看屏幕上的提示,一个是去tail -fn 100
  /var/log/mysqld.log
  #mysqlbinlog mysql-bin.000010 |more 不行的话把配置文件里的新增删掉
  日常优化参数
  Max_connections - 3000 最大连接数,每秒并发,不可能老连数据库,前面肯定有一级缓存
  InnoDB_buffer_pool_size 指定一定的内存缓存热点数据,设成内存80%,系统还要用内存,至少4G
  Key_buffer_size也是指定一定的内存缓存热点数据

  改表的引擎alter table>  独立表空间(每个表保存成一个独立文件),在mysql目录下有三个frm、MYD、MYI,共享表空间(所有的表保存在一个文件里)ibdata是共享表空间100个G。表的两个处理方式,这个可以设置的。
  一定要熟练,脱口而出,不能会但是不熟练

页: [1]
查看完整版本: linux下apache服务器,mysql日常命令