首页 文章 精选 留言 我的

精选列表

搜索[linux],共10000篇文章
优秀的个人博客,低调大师

Linux的企业-saltstack源码编译安装lnmp

一.配置环境 redhat 6.5 master:server1(172.25.50.1/24) minion:server2(172.25.50.2/24) selinux=disabled iptables=off master :/etc/salt/master minion:/etc/salt/minion 二.总体架构 /srv/salt/ 三.pkgs依赖性包的配置 /srv/salt/pkgs 四.users用户的配置 /srv/salt/users 五.nginx salt配置文件 /srv/salt/nginx 以上的files里为php测试页,启动脚本,安装包i,配置文件 安装文件 服务启动文件 六.mysqlsalt配置文件 安装文件 服务启动文件 七.phpsalt配置文件 安装文件 服务启动文件 八.salt top.sls推送配置文件 九.测试 测试nginx: 测试mysql: 测试php: 十.salt 推送server2 lnmp架构 本文转自一百个小排 51CTO博客,原文链接: http://blog.51cto.com/anfishr/1975390 ,如需转载请自行联系原作者

优秀的个人博客,低调大师

linux USB HOST之EHCI和OHCI【转】

转自:http://blog.csdn.net/ljzcom/article/details/8186914 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[-] 2 关键数据结构 3 系统架构 4 usb_submit_urb 1. 主机控制器(Host Controller) • UHCI: Universal Host Controller Interface (通用主机控制接口, USB1.0/1.1) • OHCI: Open Host Controller Interface (开放主机控制接口,USB1.0/1.1) • EHCI: Enhanced Host Controller Interface (用于USB2.0高速设备的“增强主机控制接口”) USB的拓扑结构决定了主机控制器就是最高统帅,没有主机控制器的要求设备永远不能主动发数据。所以主机控制器在USB的世界里扮演着重要的角色,它是幕后操纵者。 比如说Host发送Setup包获取设备描述符是怎么发出去的? 这个过程包含很多信息,比如:如何在D+和D-这两根线上传过去的、又传过来的。 这一切的工作都是主机控制器给我们做的。USB Host控制器的规范有很多种这里只介绍混得不错的EHCI和OHCI。这个EHCI主要针对高速的USB设备。如果要操作全速和低速可以考虑OHCI。 • 什么是USB controller?  USB 设备和主机的接口就是host controller,一个主机可以支持多个host controller比如分别属于不同厂商的。那么USB host controller 本身是做什么的? controller(控制器):用于控制。控制什么?控制所有的USB设备的通信。 CPU把要做的事情分配给主机控制器,然后自己想干什么就干什么去,主机控制器替他去完成剩下的事情,事情办完了再通知CPU。否则让CPU去盯着每一个设备做每一件事情,那是不现实的。 控制器的主要工作是什么? 把数扔出去,把数拿回来。绝对不应该偷偷加工数据。 主机控制器控制总线上包的传输, 使用1ms或125us的帧。在每帧的开始时,主机控制器产生一个帧开始包(SOF: Start of Frame)。 SOF包用于同步帧的开始和跟踪帧的数目。包在帧中被传输,或由Host到Device(out事务),或由Device到Host(in事务)。传输总是由Host发起(轮询传输)。回此每条USB总线只能有一个Host。每个包的传输都有一个状态阶段同(同步传输除外),数据接收者可以在其中返回ACK(应答接收),NAK(重试),STALL(错误条件)或什么也没有(混乱数据阶段,设备不可用或已经断开)。 •主机控制器Driver的工作是什么? 让主机控制器工作起来,发挥它的潜力。 让控制器发数据、收数据 。主机控制器主要包含以下几步:  1) 按照主机控制器的要求组织结构体 2) 将结构体在合适的时间、放在合适的地方 3) trigger 4) 等待完成信号 主机控制器Driver开发过程就是上面这几步。 2. 关键数据结构 关键数据结构关系如下图所示: 3. 系统架构 EHCI负责处理高速设备,OHCI负责处理全速/低速设备。上面这张图描述了USB控制器在route USB设备时的操作。 一个port 多个主人,OHCI的角色是companion,伴侣。地位低点。EHCI处理不了再给它处理。 关于端口逻辑这块需要特别注意,Driver设计者要注意:当前端口正在属于谁。当端口被OHCI所拥有时,你插入个高速设备怎么办?没办法!在没有插入设备时,就不应该让OHCI拥有这个端口。只有EHCI控制器才能识别出设备是全速、高速还是低速。 4. usb_submit_urb usb_submit_urb处理流程如下图所示: 顶 0 踩 本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/5563853.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

Linux网站架构系列之Mysql—-部署篇

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。本篇将为大家讲解mysql的简单部署。 mysql的分为四个版本: Alpha版:一般只在软件开发公司内部运行,不对外公开。 Beta版:完全功能的开发和所有的测试工作之后的产品,不会存在较大的漏洞BUG,并且邀请和提供给用户体验与测试,以便更全面地测试软件的不足之处或存在的问题。 RC版:属于生产环节发布之前的一个小版本或称候选版本,是测试beta版本二收集到BUG或不足之处,根据手机到的信息而进行修复和完善之后的产品 GA版:软件产品正式发布的版本,也成生产版本的产品 并且mysql为了更好发展将版本路线分为了三条。 从5.0版本升级到5.1的系列版本,继续完善与改进其用户体验和性能。同时增加新功能。 为了更好的整合mysqlab公司,社区和新功能。版本编号从5.4开始,目前发展到5.6 为了更好推广mysqlcluster版本,从6.0版本开始,目前发展到7.3版本 由于mysql不用产品线之间的编译安装方法还是有差别,因此本篇将分别为大家讲解mysql的5.1.7版本和5.6.13版本的简单部署。 5.1.7版本 环境 CentOS6.4x86_64位采用最小化安装,系统经过了基本优化 selinux为关闭状态,iptables为无限制模式 ip:192.168.0.157/24 mysql版本:mysql-5.1.70 源码包存放位置:/server/tools 源码包编译安装位置:/etc/local/软件名称 数据库存放位置:/mydata 一、准备工作 1、开发环境部署 [root@c64web~]#yumgroupinstall"Developmenttools""ServerPlatformDevelopment"-y#安装这两个开发环境的软件包组 [root@c64-web~]#yuminstallpcre*-y#安装pcre兼容的正则表达式 2、创建用户及目录 [root@c64-web~]#useradd-s/sbin/nologin-Mmysql#创建mysql用户,并加入mysql组,不创建家目录,关闭登陆 [root@c64-web~]#mkdir/mydata#创建数据库存放目录 [root@c64-web~]#chown-Rmysql.mysql/mydata 3、下载源码包 [root@c64-web~]#cd/server/tools [root@c64-webtools]#wgethttp://mysql.ntu.edu.tw/Downloads/MySQL-5.1/mysql-5.1.70.tar.gz 二、编译安装 准备工作已经做好了,现在我们就开始编译安装mysql。 [root@c64-webtools]#tarzxfmysql-5.1.70.tar.gz [root@c64-webtools]#cdmysql-5.1.70 [root@c64-webmysql-5.1.70]#./configure\ --prefix=/usr/local/mysql\#设定mysql安装路径,默认为/usr/local --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock\#指定Mysqlsocket文件存放目录 --localstatedir=/mydata\#设定mysql的数据文件存放位置 --enable-assembler\#允许使用汇编模式(优化性能) --enable-thread-safe-client\#以线程方式编译客户端 --with-mysqld-user=mysql\#指定MySQL运行的系统用户 --with-big-tables\#启用大表支持 --without-debug\#使用非debug模式 --with-pthread\#强制使用pthread线程序库编译 --with-extra-charsets=complex\#复杂字符集支持 --with-readline\#使用系统readline代替捆绑副本。 --with-ssl\#启用ssl加密 --with-embedded-server\#构建嵌入式MySQL库(libmysqld.a) --enable-local-infile\#让mysql支持从本地加载数据库(默认关闭) --with-plugins=partition#mysql分区功能支持 --with-plugins=innobase\#innobas存储引擎支持 --with-mysqld-ldflags=-all-static\#服务器使用静态库(优化性能) --with-client-ldflags=-all-static#客户端使用静态库(优化性能) [root@c64-webmysql-5.1.70]#make&&makeinstall 执行了上面的操作之后,mysql-5.1.7版本就编译安装成功了。 下面为快速复制,编译配置文本: [root@c64-web mysql-5.1.70]#./configure --prefix=/usr/local/mysql-5.1.70--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --localstatedir=/mydata --enable-assembler--enable-thread-safe-client --with-mysqld-user=mysql --with-big-tables --without-debug--with-pthread --with-extra-charsets=complex --with-readline --with-ssl--with-embedded-server --enable-local-infile--with-plugins=partition--with-plugins=innobase --with-mysqld-ldflags=-all-static--with-client-ldflags=-all-static 1、创建目录软链接 mysql安装完成之后,我们要先为编译安装好的目录添加软链接。此操作在生产环境中为重要调优参数,添加这条软链接的目的有两点:1、方便人类使用。2、便于以后升级版本。 [root@c64-webmysql-5.1.70]#cd/root [root@c64-web~]#ln-s/usr/local/mysql-5.1.70/usr/local/mysql 2、创建其它相应目录及权限设置 [root@c64-web~]#mkdir/mydata#建立mysql数据文件目录 [root@c64-web~]#chown-Rmysql/mydata#授权mysql用户访问mysql数据库目录 3、获取Mysql主配置文件并修改 由于mysql的主配置文件,编译安装之后默认是没有的。因此我们需要在mysql的编译包中,选择预支的*.cnf结尾的配置文件将其复制到我们的/etc/目录下。 [root@c64-web~]#ll/server/tools/mysql-5.1.70/support-files/*.cnf -rw-r--r--1rootroot471411月602:25/server/tools/mysql-5.1.70/support-files/my-huge.cnf -rw-r--r--1rootroot1976311月602:25/server/tools/mysql-5.1.70/support-files/my-innodb-heavy-4G.cnf -rw-r--r--1rootroot468811月602:25/server/tools/mysql-5.1.70/support-files/my-large.cnf -rw-r--r--1rootroot469911月602:25/server/tools/mysql-5.1.70/support-files/my-medium.cnf -rw-r--r--1rootroot246711月602:25/server/tools/mysql-5.1.70/support-files/my-small.cnf#中小型公司用这个即可 [root@c64-webmysql-5.1.70]#/bin/cp/server/tools/mysql-5.1.70/support-files/my-small.cnf/etc/my.cnf 修改mysql的主配置文件/etc/my.cnf,添加如下1行 datadir=/mydata#我们自定义的数据库存放目录 4、让系统识别源码包安装的软件 a)将mysql的库文件路径加入系统的库文件搜索路径中 方法一:直接做软链接 [root@c64-web~]#ln-s/usr/local/mysql/lib/mysql /usr/lib/mysql 方法二:利用ldconfig导入系统库(推荐) [root@c64web~]#echo"/usr/local/mysql/lib">>/etc/ld.so.conf.d/mysql.conf [root@c64-web~]#ldconfig b)输出mysql的头文件到系统头文件 [root@c64web~]#ln– s/usr/local/mysql/include/mysql/usr/include/mysql c)配置mysql命令全局使用路径 [root@c64web~]#echo"PATH=/usr/local/mysql/bin:$PATH">>/etc/profile [root@c64-web~]#source/etc/profil 5、以mysql用户的身份初始化数据库并启动 [root@c64-web~]#/usr/local/mysql/bin/mysql_install_db--basedir=/usr/local/mysql--datadir=/mydata--user=mysql#初始化mysql数据库文件 WARNING:Thehost'c64-web'couldnotbelookedupwithresolveip. Thisprobablymeansthatyourlibclibrariesarenot100%compatible withthisbinaryMySQLversion.TheMySQLdaemon,mysqld,shouldwork normallywiththeexceptionthathostnameresolvingwillnotwork. ThismeansthatyoushoulduseIPaddressesinsteadofhostnames whenspecifyingMySQLprivileges!#此警告我们可以通过在/etc/hosts文件中修改127.0.0.1后面的localhost为当前c64-web来消除。 InstallingMySQLsystemtables... 13110818:07:26[Warning]'--skip-locking'isdeprecatedandwillberemovedinafuturerelease.Pleaseuse'--skip-external-locking'instead.#这里的警告无需理会 OK Fillinghelptables... 13110818:07:27[Warning]'--skip-locking'isdeprecatedandwillberemovedinafuturerelease.Pleaseuse'--skip-external-locking'instead.#这里的警告无需理会 OK Tostartmysqldatboottimeyouhavetocopy support-files/mysql.servertotherightplaceforyoursystem #这里是说,你可以创建快速启动脚本,我们下面会提到 PLEASEREMEMBERTOSETAPASSWORDFORTHEMySQLrootUSER! Todoso,starttheserver,thenissuethefollowingcommands: /usr/local/mysql/bin/mysqladmin-urootpassword'new-password' /usr/local/mysql/bin/mysqladmin-uroot-hlhhpassword'new-password' #教你如何创建root用户进入mysql数据库的密码 Alternativelyyoucanrun: /usr/local/mysql/bin/mysql_secure_installation whichwillalsogiveyoutheoptionofremovingthetest databasesandanonymoususercreatedbydefault.Thisis stronglyrecommendedforproductionservers. Seethemanualformoreinstructions. YoucanstarttheMySQLdaemonwith: cd/usr/local/mysql;/usr/local/mysql/bin/mysqld_safe& #上面的即为开启命令中的一种,后面的&为放入后台执行的意思 YoucantesttheMySQLdaemonwithmysql-test-run.pl cd/usr/local/mysql/mysql-test;perlmysql-test-run.pl #这里是给你说如何执行测试 Pleasereportanyproblemswiththe/usr/local/mysql/scripts/mysqlbugscript! #以上为初始化创建mysql数据库文件时产生的信息。 [root@lhhmydata]#cd/usr/local/mysql;/usr/local/mysql/bin/mysqld_safe& [1]7146 13110818:50:37mysqld_safeLoggingto'/mydata/lhh.err'. 13110818:50:37mysqld_safeStartingmysqlddaemonwithdatabasesfrom/mydata#此处需要敲击回车才能回到命令输入界面。 mysql数据库启动的另外一种方法 [root@c64-web~]#/bin/cp/server/tools/mysql-5.1.70/support-files/mysql.server/etc/init.d/mysqld#拷贝mysql启动脚本mysql命令路径 [root@c64-web~]#chmod700/etc/init.d/mysqld#使脚本可执行 [root@c64-web~]#/etc/init.d/mysqldstart#这是启动数据库方法之一 [root@c64-web~]#/etc/init.d/mysqldstop#关闭数据库的方法 [root@c64-web~]#killalllmysqld#关闭数据库的另外一种方法 6、检查mysql数据库是否启动: [root@c64-web~]#netstat-lnt|grep3306 tcp000.0.0.0:33060.0.0.0:*LISTEN 可以看到,我们的mysql服务已经启动起来了。这里如果发现3306端口没起来,请tail -100 /usr/local/mysql/data/机器名.err检查日志报错进行调试。 7、设置初始账户,并登陆后台 在上面,初始化创建mysql数据库的时候,已经给我们提到了如何给mysql数据库账号设置密码,下面我们就进行操作。 [root@c64-web~]#mysqladmin-urootpassword123456#设置密码 [root@c64-web~]#history-c#设置之后注意清除历史记录,防止密码泄露 [root@c64-web~]#mysql-uroot-p#连接数据库查看 Enterpassword:#这里输入刚才设置的密码 WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis2 Serverversion:5.1.70Sourcedistribution Copyright(c)2000,2013,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql>showdatabases;#查看现有的数据库 +--------------------+ |Database| +--------------------+ |information_schema| |mysql| |test| +--------------------+ 3rowsinset(0.00sec) mysql>selectuser();#查看现有用户 +----------------+ |user()| +----------------+ |root@localhost| +----------------+ 1rowinset(0.00sec) mysql>quit#退出 Bye 到此,我们mysql-5.1.17的部署就已经完成了,下面将是5.6.13的部署。 5.6.13版本 mysql的第二条产品线和第一条产品线的产品主要在数据存储引擎和编译安装的方法上有点区别,因此这里我就主要对编译安装的部分进行讲解,其它地方都是大同小异的。 mysql-5.6.13源码包下载地址:http://mysql.ntu.edu.tw/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz 一、更改编译配置工具为cmake 注意下面mysql-5.6.x系列版本在编译配置时,放弃了用./configure,进而使用到了cmake,因此我们需要先安装cmake这个工具,下面才能执行编译配置。 二、编译参数更改 mysql-5.6.x系列版本综合性的编译参数详解: [root@c64-webmysql-5.6.13]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql\#指定mysql安装目录 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock\#Unixsocket文件路径,自定义此路径防报错 -DDEFAULT_CHARSET=gbk\#默认字符 -DDEFAULT_COLLATION=gbk_chinese_ci\#校验字符 -DEXTRA_CHARSETS=all\#安装所有扩展字符集 -DWITH_MYISAM_STORAGE_ENGINE=1\#安装myisam存储引擎 -DWITH_INNOBASE_STORAGE_ENGINE=1\#安装innodb存储引擎 -DWITH_ARCHIVE_STORAGE_ENGINE=1\#安装archive存储引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE=1\#安装blackhole存储引擎 -DWITH_MEMORY_STORAGE_ENGINE=1\#安装memory存储引擎 -DWITH_FEDERATED_STORAGE_ENGINE=1#安装frderated存储引擎 -DWITH_READLINE=1\#快捷键功能 -DENABLED_LOCAL_INFILE=1\#允许从本地导入数据 -DMYSQL_DATADIR=/usr/local/mysql/data\#数据库存放目录 -DMYSQL_USER=mysql\#数据库属主 -DMYSQL_TCP_PORT=3306\#数据库端口 -DSYSCONFDIR=/etc\#MySQL配辑文件 -DWITH_SSL=yes#数据库SSL 下面为快捷复制执行命令: [root@c64-web mysql-5.6.13]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_chinese_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/mydata -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DSYSCONFDIR=/etc -DWITH_SSL=yes 执行之后,还是用make&&make install来执行编译安装。 三、主配置文件调整 在5.6.X系列的版本中,mysql的主配置文件发生了变化。可以看到,mysql-5.6.13版本中取消了原来的my-huge.cnf,my-large.cnf,my-small.cnf模版,同时取而代之是my.cnf或者是my-default.cnf一个配置模板。 [root@c64-webmysql-5.6.13]#ll/server/tools/mysql-5.6.13/support-files/*.cnf -rw-r--r--.1rootroot1126Nov801:37/server/tools/mysql-5.6.13/support-files/my-default.cnf [root@c64-webmysql-5.6.13]#/bin/cp/server/tools/mysql-5.6.13/support-files/my-default.cnf/etc/my.cnf 并且,模板文件里需要配置的地方很少。这是因为mysql-5.6.x系列将以前许多默认值设置不合理的参数都进行了调整,并且采用了一种out-of-box的思维,即有些值是固定的,有些值是启动时,根据其他参数或者服务器的配置来自动设置的,所以不需要初始指定很多值。 本文转自 baishuchao 51CTO博客,原文链接:http://blog.51cto.com/baishuchao/1927579

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册