linux系统软件的安装方法与系统配置及tomcat和mysql优化
2018-01-26 01:45
801 查看
linux系统软件安装方法
1. yum安装
格式: yum [options] [command] [package ...] 安装: yum install yum install package1 yum groupinstall group1 更新和升级: yum update yum update package1 yum check-update yum upgrade package1 yum groupupdate group1 查找和显示: yum info package1 yum list yum list package1 yum groupinfo group1 删除程序: yum remove package1 yum groupremove group1 yum deplist package1 清除缓存: yum clean packages yum clean headers yum clean oldheaders yum clean yum clean all 配置YUM源: CentOS-Base.repo CentOS-Media.repo CentOS-Vault.repo CentOS-Debuginfodebug.repo 特点:基于RPM包管理;需联网或指定源服务器;可以自动处理依赖性关系;能更新系统;安装、卸载操作简单方便;安装后在本地形成缓存包
2. 源码编译安装 .tar.gz
1.编译工具安装 gcc --version yum install gcc 2.下载安装程序源码包 wget http://apache.fayea.com/httpd/httpd-2.2.27.tar.gz 3.源码解压 tar zxvf uname.tar.gz 4.编译安装 cd uname ./configure make make install make make install xmkmf make make install 5.环境变量配置 vi /etc/profile source /etc/profile 特点:(tar)一种压缩文件格式;具有开源性,可以修改源码,个人环境编译,具有通用性; 不能自动处理依赖关系;源码包安装的软件卸载时极为方便和简单;可以自行调整编译参数,最大化定制安装
3. RPM包安装
1.安装 rpm -i xxx.rpm 安装rpm 包; rpm -iv xxx.rpm 安装 rpm包并显示文件信息; rpm -ivh xxx.rpm 安装 rpm 包并显示文件信息及进度; 2.卸载 rpm -e xxx.rpm 卸载rpm 包 3.升级 rpm -Uvh example.rpm rpm会自动卸载相应软件包的老版本 4.查询 rpm -q example 5.验证 rpm -Vf 需要验证到包 主要参数说明: -i:表示安装; -v,-vv,-vvv:表示详细信息; -h:以"#"号显示安装进度; -q:查询指定包名; -e:卸载指定包名; -F:升级软件; -U:升级软件,若软件尚未安装,则安装软件; -V:对RPM包进行验证;rpm –qa:列出当前系统所有已安装的包 --nodeps:忽略依赖关系; --test:测试,不真正执行,用于测试安装,卸载; --replacepkgs:重新安装,替换原有的安装. 特点:需要下载到本地机器上才能安装;无法自动解决软件包的依赖关系;文件的关联性太大,可能需要其他软件包; 可以最大程度解决稳定性和兼容性的问题;可以安装到指定目录
linux系统文件权限管理
1.用户信息保存文件
/etc/passwd 存储用户账号 /etc/group 存储组账号 /etc/shadow 存储用户账号的密码 /etc/gshadow 存储用户组账号的密码
2.更改文件的用户及用户组
sudo chown [-R] owner[:group] {File|Directory}
3.文件用户组
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念 -所有者 -所在组 -其它组 -改变用户所在的组 ls -l中显示的内容如下: -rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc - 10个字符确定不同用户能对文件干什么 - 第一个字符代表文件(-)、目录(d),链接(l) - 其余字符每3个一组(rwx),读(r)、写(w)、执行(x) - 第一组rwx:文件所有者的权限是读、写和执行 - 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行 - 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行 也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7 - 1 表示连接的文件数 - root 表示用户 - root表示用户所在的组 - 1213 表示文件大小(字节) - Feb 2 09:39 表示最后修改日期 - abc 表示文件名 改变权限的命令 chmod 改变文件或目录的权限 chmod 755 abc:赋予abc权限rwxr-xr-x chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限 chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限 chmod a+r abc:给所有用户添加读的权限 改变所有者(chown)和用户组(chgrp)命令 chown xiaoming abc:改变abc的所有者为xiaoming chgrp root abc:改变abc所属的组为root chown root ./abc:改变abc这个目录的所有者是root chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root
系统配置优化
1.SELinux关闭
1.为什么关闭? 与部分应用冲突 避免麻烦 应用较少 2.状态查看 getenforce sestatus -v 3.临时关闭 setenforce 0 4.永久关闭 vi /etc/selinux/config vi /etc/sysconfig/selinux
2.系统服务运行级别和服务级别设置
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁远程登陆 运行级别2:多用户状态(没有NFS) 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 运行级别4:系统未使用,保留 运行级别5:X11控制台,登陆后进入图形GUI模式 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启 chkconfig --list #显示所有运行系统服务的运行状态 chkconfig --list sshd #只显示指定的系统服务sshd的运行状态 chkconfig --add sshd #增加一个系统服务sshd,默认所有级别都关闭 chkconfig --level xx sshd on/off #设置sshd的运行级别开启或关闭 chkconfig --del sshd #删除系统服务sshd
3.iptables防火墙配置
1.防火墙配置 #查看配置情况 iptables -L –n service iptables status #设定预设规则 iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #配置端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT #开启iptables防火墙 /etc/init.d/iptables start #开启开机自启动 chkconfig iptables on #查看iptables启动级别 chkconfig --list |grep iptables 2.为什么关闭 对于高并发高流量的业务不适合开启iptables防火墙 3.状态查看 #关闭iptables防火墙 /etc/init.d/iptables stop #关闭开机自启动 chkconfig iptables off #查看iptables启动级别 chkconfig --list |grep iptables
4.设置linux服务器时间同步
#单机ntp同步 which ntpdate /usr/sbin/ntpdate #输出 #更新系统时间 /usr/sbin/ntpdate time.nist.gov (或者 ntp.sjtu.edu.cn)
5.系统最大打开文件描述符数量
/proc/sys/fs/file-max 查看 $ cat /proc/sys/fs/file-max 186405 设置 a.临时性 # echo 1000000 > /proc/sys/fs/file-max b.永久性:在/etc/sysctl.conf中设置 fs.file-max = 1000000
6.进程最大打开文件描述符数量
进程最大打开文件描述符数:user limit中nofile的soft limit #查看 $ ulimit -n #查看hard limit $ ulimit –Hn #设置soft limit,必须小于hard limit: #临时设置 $ ulimit -Sn 1600000 #永久性设置 vi /etc/security/limits.conf * soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535 总结 a.所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max b.单个进程打开的文件描述符数不能超过user limit中nofile的soft limit c.nofile的soft limit不能超过其hard limit d.nofile的hard limit不能超过/proc/sys/fs/nr_open
7.锁定关键系统文件,防止被提权篡改
chattr,文件在/usr/bin/下,为了防止被修改可以做软连上锁系统文件chattr,以后任何用户修改这个文件都不会成功,除非解锁 +:代表在原有属性的基础加上; i:immutable不可修改的 chattr +i /etc/passwd #锁定系统文件 chattr -i /etc/passwd #解锁系统文件 lsattr /etc/passwd #查看文件的属性lsattr #解锁 chattr -i /etc/passwd chattr -i /etc/shadow chattr -i /etc/group chattr -i /etc/gshadow chattr -i /etc/services #执行命令 groupadd inphase_web useradd –g inphase_web inphase_web passwd #锁定 chattr +i /etc/passwd chattr +i /etc/shadow chattr +i /etc/group chattr +i /etc/gshadow chattr +i /etc/services
tomcat配置优化
1.service.xml 优化配置
修改连接数和端口为13000 <Connector port="13000" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" acceptCount="650" maxThreads="1024" minSpareThreads="40" prestartminSpareThreads="true" enableLookups="false" redirectPort="8443" URIEncoding="utf-8"
2.catalina.sh 优化
添加 catalina.sh 内存配置 在catalina.sh 添加以下配置 JAVA_OPTS="-server -Xms1024m -Xmx4096m -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=512M -XX:MaxPermSize=1024M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=15 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true”
类别 | 参数 | 默认值或限制 | 说明 |
---|---|---|---|
功能参数 | -XX:-AllowUserSignalHandlers | 限于Linux和Solaris,默认不启用 | 允许为java进程安装信号处理器,信号处理参见类:sun.misc.Signal, sun.misc.SignalHandler |
功能参数 | -XX:+DisableExplicitGC | 默认启用 | 禁止在运行期显式地调用System.gc() |
功能参数 | -XX:+MaxFDLimit | 限于Solaris,默认启用 | 设置java进程可用文件描述符为操作系统允许的最大值。 |
功能参数 | -XX:+ScavengeBeforeFullGC | 默认启用 | 在Full GC前触发一次Minor GC |
功能参数 | -XX:+UseGCOverheadLimit | 默认启用 | 限制GC的运行时间。如果GC耗时过长,就抛OOM |
功能参数 | -XX:+UseLWPSynchronization | 限于solaris,默认启用 | 使用轻量级进程(内核线程)替换线程同步 |
功能参数 | -XX:-UseSerialGC | -client时启用,其他情况下,默认不启用 | 使用串行垃圾收集器 |
功能参数 | -XX:-UseSpinning | java1.4.2和1.5需要手动启用,java6默认已启用 | 启用多线程自旋锁优化 |
功能参数 | -XX:+UseSplitVerifier | java5默认不启用, java6默认启用 | 使用新的Class类型校验器 |
功能参数 | -XX:+UseThreadPriorities | 默认启用 | 使用本地线程的优先级 |
功能参数 | -XX:+UseVMInterruptibleIO | 限于solaris,默认启用 | 在solaris中,允许运行时中断线程 |
性能参数 | -XX:+AggressiveOpts | JDK 5 update6后引入,但需要手动启用,JDK6默认启用 | 启用JVM开发团队最新的调优成果。例如编译优化,偏向锁,并行年老代收集等 |
性能参数 | -XX:LargePageSizeInBytes=4m | 默认4m, amd64位:2m | 设置堆内存的内存页大小 |
性能参数 | -XX:MaxNewSize=size | 1.3.1 Sparc: 32m, 1.3.1 x86: 2.5m | 新生代占整个堆内存的最大值 |
性能参数 | -XX:MaxPermSize=64m | 默认 64m | Perm(俗称方法区)占整个堆内存的最大值 |
性能参数 | -XX:MinHeapFreeRatio=40 | 40 | GC后,如果发现空闲堆内存占到整个预估上限值的40%,则增大上限值 |
性能参数 | -XX:ReservedCodeCacheSize=32m | 默认 32m | 设置代码缓存的最大值,编译时用 |
性能参数 | -XX:TargetSurvivorRatio=50 | 50 | 实际使用的survivor空间大小占比。默认是50%,最高90% |
性能参数 | -XX:ThreadStackSize=512 | 默认 512 | 线程堆栈大小 |
性能参数 | -XX:+UseBiasedLocking | JDK 5需要手动启用, JDK6默认启用 | 启用偏向锁 |
性能参数 | -XX:+UseFastAccessorMethods | 默认启用 | 优化原始类型的getter方法性能(get/set:Primitive Type) |
性能参数 | -XX:+UseStringCache | 默认启用 | 启用缓存常用的字符串。 |
性能参数 | -XX:+OptimizeStringConcat | 在Java 6更新中引入 | 优化字符串连接操作在可能的情况下 |
调试参数 | -XX:OnError=”;” | 当发生错误时执行用户指定的命令 | |
调试参数 | -XX:-TraceClassLoading | 跟踪类加载 | |
调试参数 | -XX:-TraceClassUnloading | 跟踪类的卸载 | |
调试参数 | -XX:+PerfSaveDataToFile | 退出时保存jvmstat二进制文件 | |
调试参数 | -XX:InlineSmallCode= | 当编译的代码小于指定的值时,内联编译的代码 | |
调试参数 | -XX:MaxInlineSize=35 | 内联方法的最大字节数 | |
调试参数 | -XX:FreqInlineSize= | 内联频繁执行的方法的最大字节码大小 | |
调试参数 | -XX:InitialTenuringThreshold=7 | 设置初始的对象在新生代中最大存活次数 |
3.Tomcat 日志目录更改
A. 创建日志存放目录: mkdir /inphase/logs B. 赋予权限 chown -R tomcat:tomcat /inphase/logs C. 更改/usr/local/tomcat/conf/logging.properties 配置文件,指定日志目录为/inphase/logs 如下: 1catalina.org.apache.juli.AsyncFileHandler.level = FINE 1catalina.org.apache.juli.AsyncFileHandler.directory = /inphase/logs 1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. 2localhost.org.apache.juli.AsyncFileHandler.level = FINE 2localhost.org.apache.juli.AsyncFileHandler.directory = /inphase/logs 2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost. 3manager.org.apache.juli.AsyncFileHandler.level = FINE 3manager.org.apache.juli.AsyncFileHandler.directory = /inphase/logs 3manager.org.apache.juli.AsyncFileHandler.prefix = manager. 4host-manager.org.apache.juli.AsyncFileHandler.level = FINE 4host-manager.org.apache.juli.AsyncFileHandler.directory = /inphase/logs 4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
MySQL配置优化
basedir = /usr/local/mysql datadir = /data/mysql pid-file = /data/mysql/mysql.pid max_connections = 1000 # MySQL的最大连接数 open_files_limit = 65535 # MySQL打开的文件描述符限制,默认最小1024; binlog_cache_size = 1M # Cache日志大小,提交命令后日志持久化到磁盘。默认大小32K max_heap_table_size = 8M # 定义了用户可以创建的内存表(memory table)的大小。 read_buffer_size = 2M # MySQL读入缓冲区大小。 read_rnd_buffer_size = 8M # MySQL的随机读缓冲区大小。 sort_buffer_size = 8M # MySQL执行排序使用的缓冲大小。 join_buffer_size = 8M # 联合查询操作所能使用的缓冲区。 query_cache_size = 8M #MySQL的查询缓冲大小 query_cache_limit = 2M #指定单个查询能够使用的缓冲区大小,默认1M key_buffer_size = 4M #指定用于索引的缓冲区大小 log_bin = mysql-bin binlog_format = mixed expire_logs_days = 30 #超过30天的binlog删除 log_error = /data/mysql/mysql-error.log #错误日志路径 slow_query_log = 1 long_query_time = 1 #慢查询时间 超过1秒则为慢查询 slow_query_log_file = /data/mysql/mysql-slow.log performance_schema = 0 skip-external-locking #MySQL选项以避免外部锁定。该选项默认开启 default-storage-engine = InnoDB #默认存储引擎 innodb_file_per_table = 1 # InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间 innodb_open_files = 500 # 限制Innodb能打开的表的数据 innodb_buffer_pool_size = 64M # InnoDB使用一个缓冲池来保存索引和原始数据 innodb_write_io_threads = 4 innodb_read_io_threads = 4 # innodb使用后台线程处理数据页上的读写 I/O(输入输出)请求 innodb_thread_concurrency = 0 # 默认设置为 0,表示不限制并发数 innodb_purge_threads = 1 # InnoDB中的清除操作是一类定期回收无用数据的操作。 innodb_log_buffer_size = 2M # 此参数确定些日志文件所用的内存 innodb_log_file_size = 32M # 此参数确定数据日志文件的 innodb_log_files_in_group = 3 # 以循环方式将日志文件写到多个文件。推荐设置为3 innodb_max_dirty_pages_pct = 90 # innodb主线程刷新缓存池中的数据,使脏数据比例小于90% innodb_lock_wait_timeout = 120 # InnoDB事务在被回滚之前可以等待一个锁定的超时秒数。 bulk_insert_buffer_size = 8M # 批量插入缓存大小 myisam_sort_buffer_size = 8M # MyISAM设置恢复表之时使用的缓冲区的尺寸 interactive_timeout = 28800 # 服务器关闭交互式连接前等待活动的秒数。) wait_timeout = 28800 # 服务器关闭非交互连接之前等待活动的秒数。 [mysqldump] quick max_allowed_packet = 16M #服务器发送和接受的最大包长度
相关文章推荐
- RDIFramework.NET ━ .NET快速信息化系统开发框架-第3章 软件安装、配置、运行方法
- 【xp系统中Apache+PHP+Mysql+Zend安装配置的方法】
- 阿里云Linux系统安装配置Tomcat方法
- RDIFramework.NET ━ .NET快速信息化系统开发框架-第3章 软件安装、配置、运行方法
- 【软件安装配置】MyEclipse,Tomcat,Mysql安装配置
- 【绝对能用】新买的阿里云ECS服务器,Centos7.3系统,安装jdk,mysql,tomcat,svn服务器等软件。
- WINDOWS系统 + Apache +PHP5 +Zend + MySQL + phpMyAdmin安装配置方法
- 职业生涯管理系统 servlet+javabean+mysql(一)软件的安装与配置
- 监控软件Nagios的服务器端在Linux系统上的安装和配置方法
- CentOS系统安装配置Nginx+tomcat+jdk+MySQL服务器环境
- centos 安装mysql 无法登陆 Tomcat配置HTTPS报错解决方法
- Windows系统中免安装配置MySQL-5.6.24数据库的方法
- Mysql 性能优化2 系统参数配置方法 和 文件系统
- JDK 、Tomcat、 Mysql, 安装、配置、优化
- linux 系统中软件raid 配置方法
- JAVA学习提高之---- Tomcat集成到Eclipse的方法(插件安装及配置)
- Linux系统下jdk1.5与tomcat5.5的安装方法
- 安装Tomcat、JDK时候的系统配置环境变量
- 360杀毒软件安装在windows2003系统的解决方法