Linux 安装Jdk、mysql、apache、php、tomcat、nginx
Jdk
安装分三步:第一步,上传跟 linux 位数相同的 jdk tar 包,解压;第二步:解压 tar 包,配置环境变量,且 source 一下 /etc/profile;第三步:检查版本
第一步,咱就不废话:看看解压后,咱们可以重名下,数字太长不好看呀
# mv jdk1..0_191/ jdk1.8
jdk的bin目录路径:
# pwd
/opt/jdk1.8/bin
我们的环境变量配置到 jdk 的 /bin 目录就ok了
vi /etc/profile 其实,这里,只需要引入 JAVA_HOME,jre是 jmeter 要用的,不用就别加也成
到最后面追加
#jdk1.8
JAVA_HOME=/opt/jdk1.8
JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
这里要注意几点:
- 等号别手贱加空格,shell 语法等号左右加空格就不能识别为变量了,出问题眼睛盯瞎了都盯不出来
- JAVA_HOME 后的路径,别加 /bin ,因为后面的 export 才是真正将其引为全局变量的操作,前面加了。后面会找 bin 下面的 bin ,找得到就有鬼了。之前手贱自己加进去了,排查了十好几分钟
- 配置好之后,别忘了 source 一下 /etc/profile 使它生效
最后:检查一下版本:
# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) -Bit Server VM (build 25.191-b12, mixed mode)
如果想要换 jdk ,把 JAVA_HOME 注释掉,新起一行,换下新的 jdk 路径就好了
完美,叉会儿腰……
Mysql
[root@lml ~]# rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库
有的话,我们就通过 rpm -e 命令 或者 rpm -e –nodeps 命令来卸载掉
[root@lml ~]# rpm -e mysql // 普通删除模式
[root@lml ~]# rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
[root@lml ~]# yum list | grep mysql
yum install -y mysql-server mysql mysql-devel
yum install -y mysql-server mysql mysql-devel
此时我们可以通过如下命令,查看刚安装好的mysql-server的版本
rpm -qi mysql-server
# service mysqld restart
停止 mysqld: [确定]
正在启动 mysqld: [确定]
# chkconfig --list | grep mysqld
mysqld 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
# chkconfig mysqld on
# chkconfig --list | grep mysql
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
/usr/bin/mysqladmin -u root password 'new-password' // 为root账号设置密码
所以我们可以通过 该命令来给我们的root账号设置密码(注意:这个root账号是mysql的root账号,非Linux的root账号)
# mysqladmin -u root password '123456' // 通过该命令给root账号设置密码为 123456
创建新用户:
CREATE USER 'root'@'localhost' IDENTIFIED BY '123456';
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
退出:
quit
简单的命令:
# service mysqld start ##启动apache
# service mysqld stop ##关闭 apache
# service mysqld restart ## 重启 apache
# chkconfig mysqld on ## 将 apache 设为开机启动
# ps -ef|grep mysqld ## 查看 apache 是否启动
Apache
一、安装
yum 安装 apache,遇见提示,输入 'y'
# yum install httpd
启动apache,出现如下提示:
# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 172.18.46.17 for ServerName
解决方案:取消注释,重新启动
vi /etc/httpd/conf/httpd.conf
ServerName www.example.com:80 (将这一行的注释取消)
结果:
# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
简单的命令:
# service httpd start ##启动apache
# service httpd stop ##关闭 apache
# service httpd restart ## 重启 apache
# chkconfig httpd on ## 将 apache 设为开机启动
# ps -ef|grep httpd ## 查看 apache 是否启动
进入我们的 ip:port (未修改配置的话,默认 80 端口)
二、工作模式转换
apache 有三种工作模式,分别为:prefok event worker,yum 安装的默认工作模式为:prefok。
查看工作模式的命令:
# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
转换工作模式的方式:修改配置文件的 httpd 文件命名(一般来讲,这几个文件是在 /etc/httpd 里面)
# cd /usr/sbin/
# ll
-rwxr-xr-x 1 root root 367136 Jun 19 2018 httpd
-rwxr-xr-x 1 root root 379688 Jun 19 2018 httpd.event
-rwxr-xr-x 1 root root 379688 Jun 19 2018 httpd.worker
要转换成 worker 模式:
mv httpd httpd.prefork
mv httpd.worker httpd
重启 service httpd restart,重启apache可能会报错,如下图:
解决方案:安装php-zts
yum -y install php-zts
ok :
# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
三、配置监控
主要是改配置文件内的 service-status,解除注释,并将 Allow from 改成 all,重启
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from all
</Location> <Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from all
</Location> ExtendedStatus On ## 这一行是可以展开更多的监控信息
配置的监控信息如下:
PHP
yum 安装 php
1、安装 php 依赖
yum install gcc libxml2-devel openssl-devel curl-devel -y
2、依旧是安装依赖(遇见提示,按 'y')
yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath mhash libmcrypt libmcrypt-devel php-fpm php-redis php-solr
3、安装 php (安装依赖与安装 php 之间无先后顺序)
yum install php
4、对 php 增加可执行权限
chmod +x /etc/init.d/php-fpm
5、开启 php
# service php-fpm start
Starting php-fpm: [ OK ]
6、验证 php 是否ok,在 apache 的 工程路径: /var/www/html 下 ,新建一个 info.php
<?php
phpinfo()
?>
7、将 apache 重启,在浏览器内输入:ip/info.php (ip指的是 apache 的ip和端口,我这里默认是80就省略)
出现 php 的具体信息,就代表 php 安装完成,并且成功和 apache 建立了关联。
Tomcat
tomcat 是基于 java 的,所以,必须安装好 java ,并且配置好环境变量,这里我们不赘述,看一下 java 版本如何:
tomcat 我们这里选取最新版本进行安装,因为配置监控信息,tomcat 8-9 的监控配置是不一样的,其中 tomcat 7 配置监控最简单,只需要根据提示即可,不需要另外的其他操作
一、安装
1、在官网上下好 tar 包,上传到服务期内,解压即可。
2、配置好 tomcat 的配置文件,主要是更改3个端口,这三个端口如果启动多个 tomcat 可能会出现冲突:8080,8009,8005
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Server port="8005" shutdown="SHUTDOWN">
我们既然如果只是启动其中一个,其实就没有必要去修改端口咯,这是只是贴出来如果部署分布式,需要修改的端口位置。
3、启动 tomcat ,我们可以将其作为 一个 service 去启动,这样就不用每次都到目录下启动,这里偷个懒百度实践下。
原理:我们的 service [服务名] [选项] ,其实在启动服务的时候是执行 /etc/init.d/ 下的脚本文件 ,就像我们执行 service httpd restart ,那么就是执行 /etc/init.d/ 下的 httpd 脚本文件
问题点找到了,那么我们怎么将 tomcat 的启动过程,编写成类似 httpd 这样的脚本呢?我们可以依照 httpd 或者其他的脚本仿写一个:
这里要注意几点:
- 引入 java 环境变量先,且更改 tomcat9 的路径
- 编辑好了之后,把这个文件服务执行权限:chmod +x tomcat9
- 这里只引入了几个功能:restart 、start、stop,其他的功能还未加进去
#!/bin/bash # description: Tomcat9 Start Stop Restart # processname: tomcat9 # chkconfig: JAVA_HOME=/opt/jdk1. export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH CATALINA_HOME=/opt/tomcat9 case $ in start) sh $CATALINA_HOME/bin/startup.sh ;; stop) sh $CATALINA_HOME/bin/shutdown.sh ;; restart) sh $CATALINA_HOME/bin/shutdown.sh sh $CATALINA_HOME/bin/startup.sh ;; esac exit
最后我们看看效果:
# service tomcat9 start
Using CATALINA_BASE: /opt/tomcat9
Using CATALINA_HOME: /opt/tomcat9
Using CATALINA_TMPDIR: /opt/tomcat9/temp
Using JRE_HOME: /opt/jdk1.
Using CLASSPATH: /opt/tomcat9/bin/bootstrap.jar:/opt/tomcat9/bin/tomcat-juli.jar
Tomcat started.
完美。叉会儿腰…… 好像偏题了,接下来干点儿啥呢?配置个监听吧,先把其改成 nio 的工作模式,再启动个 sever-status监听
二、修改工作模式并且启动监听
问题来了,在哪修改工作模式,模式一般都是在配置文件内找:去 tomcat 路径下的 conf 内找找看:vi /opt/tomcat9/conf/server.xml
这里,咱们先不配置工作模式,看看默认的是啥,如果默认就是 nio 就不配置了咯,nio 是异步阻塞,某种程度上可以增进性能; bio 是同步阻塞的模式,一个线程只能处理一个请求。
那么,先配置监听吧,过程就不贴了,直接进入要更改的项:
1、vi /opt/tomcat9/conf/tomcat-users.xml
这里要注意,这是配置 manager 权限,不要把这两行粘贴到最后去了,要粘贴在 </tomcat-users> 之上 ,这是 xml 的格式,贴到外面了肯定就不生效
<role rolename="manager-gui"/>
<user username="tomcat9" password="" roles="manager-gui"/>
2、vi /opt/tomcat9/webapps/manager/META-INF/context.xml ,把 Contest 的内容全部注释,如下所示
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
-->
3、重启 tomcat ,看效果,不难发现,这里就是 nio 的模式,无需修改。
自从 tomcat 8 以来,默认的就是 nio 的模式,这里我们就不需要修改了,那 tomcat 7 就需要修改工作模式
vi /opt/tomcat9/conf/server.xml
<Connector port=""protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout=""
redirectPort="" />
Nginx
编译安装 Nginx ,并且配置监听。为啥要编译呢?因为要启动监听就必须编译安装
一、安装依赖
使用源码编译安装,包括具体的编译参数信息。
正式开始前,编译环境gcc g++ 开发库之类的需要提前装好。
安装make:
yum -y install gcc automake autoconf libtool make
安装g++:
yum install gcc gcc-c++
一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。
1.选定源码目录
可以是任何目录,本文选定的是/usr/local/src
cd /usr/local/src
2.安装PCRE库
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz tar -zxvf pcre-8.39.tar.gz cd pcre-8.39 ./configure make && make install
3.安装zlib库
http://zlib.net/zlib-1.2.11.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:
cd /usr/local/src wget http://zlib.net/zlib-1.2.11.tar.gz tar -zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure make && make install
4.安装ssl(某些vps默认没装ssl)
cd /usr/local/src wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz tar -zxvf openssl-1.1.0b.tar.gz
cd openssl-1.1.0b
./config make && make install
二、安装Nginx
把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:
cd /usr/local/src wget http://nginx.org/download/nginx-1.10.2.tar.gz tar -zxvf nginx-1.10.2.tar.gz cd nginx-1.10.2
1、配置Nginx的安装参数
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.39 --with-zlib=/usr/local/src/zlib-1.2.11 --with-openssl=/usr/local/src/openssl-1.1.0b --prefix=/usr/local/nginx --with-http_stub_status_module
2、编译安装
make && make install
3、启动Nginx
/usr/local/nginx/nginx
网页访问查看是否正常启动:因为 80 端口被 apache 占用,所以这里我们用 81 端口
4 、同样的,我们可以将 nginx 作为一个 service 来启动:
编写nginx文件,放入/etc/init.d/
nginx文件内容如下,黄色部分为自己实际nginx安装的路径。
#!/bin/bash # nginx Startup script for the Nginx HTTP Server # it is v.0.0. version. # chkconfig: - # description: Nginx is a high-performance web and proxy server. # It has a lot of features, but it's not for everyone. # processname: nginx # pidfile: /var/run/nginx.pid # config: /usr/local/nginx/conf/nginx.conf nginxd=/usr/local/nginx/sbin/nginx nginx_config=/usr/local/nginx/conf/nginx.conf nginx_pid=/var/run/nginx.pid RETVAL= prog="nginx" # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit [ -x $nginxd ] || exit # Start nginx daemons functions. start() { if [ -e $nginx_pid ];then echo "nginx already running...." exit fi echo -n $"Starting $prog: " daemon $nginxd -c ${nginx_config} RETVAL=$? echo [ $RETVAL = ] && touch /var/lock/subsys/nginx return $RETVAL } # Stop nginx daemons functions. stop() { echo -n $"Stopping $prog: " killproc $nginxd RETVAL=$? echo [ $RETVAL = ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid } # reload nginx service functions. reload() { echo -n $"Reloading $prog: " #kill -HUP `cat ${nginx_pid}` killproc $nginxd -HUP RETVAL=$? echo } # See how we were called. case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) stop start ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $prog {start|stop|restart|reload|status|help}" exit esac exit $RETVAL
第二步:
执行
chkconfig --add /etc/init.d/nginx
chmod 755 /etc/init.d/nginx
chkconfig --add nginx
如果想随系统启动就执行
/sbin/chkconfig --level 345 nginx on
第三步
nginx启动、停止、无间断服务重启,可选 start | stop | restart | reload | status | help
service nginx start service nginx stop service nginx reload
三、配置Nginx的监控
配置文件路径:
vi /usr/local/nginx/nginx.conf
添加如下代码:
#设定Nginx状态访问地址
location /NginxStatus { stub_status on; access_log on; auth_basic "NginxStatus"; #auth_basic_user_file conf/htpasswd; }
配置完成重启Nginx,命令:
/usr/local/nginx/nginx -s reload
6、状态查看
配置完成后在浏览器中输入http://ip:监听端口/NginxStatus查看,显示信息如下:
7、 参数说明
active connections – 活跃的连接数量
server accepts handled requests — 总共处理了107520387个连接 , 成功创建107497834次握手, 总共处理了639121056个请求
每个连接有三种状态waiting、reading、writing
reading —读取客户端的Header信息数.这个操作只是读取头部信息,读取完后马上进入writing状态,因此时间很短。
writing — 响应数据到客户端的Header信息数.这个操作不仅读取头部,还要等待服务响应,因此时间比较长。
waiting — 开启keep-alive后等候下一次请求指令的驻留连接.
正常情况下waiting数量是比较多的,并不能说明性能差。反而如果reading+writing数量比较多说明服务并发有问题。
补充:
查看Nginx并发进程数:ps -ef | grep nginx | wc -l
查看Web服务器TCP连接状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
四、nginx与php关联
nginx 与 php 怎么关联起来呢?我们先去 nginx 的工程路径下:/usr/local/nginx/html 新建一个同样的 info.php
然后, vi /usr/local/nginx/nginx.conf,将以下几行注释去掉,并且将 /scripts 改成 $document_root ;root 后面跟的是工程路径 ,默认是 html 下,如果要部署项目,可以自己定义去转发到相对应的路径下
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
最后,重启 nginx ,就可以看到
ip:port/info.php。如果一直是 nofound ,那么就是 上面一步没配好
Linux 安装Jdk、mysql、apache、php、tomcat、nginx的更多相关文章
- Linux 安装jdk+mysql+tomcat
参考: 安装 jdk+mysql+tomcat https://www.w3h5.com/post/65.html 安装 mysql https://blog.csdn.net/qq_23123 ...
- linux安装jdk mysql
mysql 安装进入到mysql官网 点击archives 选择版本下载tar linux 安装mysql数据库——tar.gz包解压安装法 mysql数据库有多种安装方式,本文只介绍在Linux服务 ...
- Linux安装JDK、MySQL和Tomcat
1 依赖的安装 因为JDK.Tomcat和MySQL的安装过程中需要从网上下载部分支持包才可以继续,所以需要提前安装好依赖. yum install glibc.1686 yum -y install ...
- linux系统下安装jdk,mysql,tomcat 和redis 和jedis入门案例
Day47笔记Linux+redis入门 Day47 知识讲解:Jedis 1.Linux上jdk,mysql,tomcat安装(看着文档安装) 准备工作: 因为JDK,TOMCAT,MYSQL的 ...
- Linux+Redis实战教程_Linux上安装jdk,mysql,tomcat_安装jdk
1. Linux上安装jdk,mysql,tomcat[重点] Windows 控制面板 添加/卸载程序 进行程序的安装.更新.卸载.查看 rpm命令:相当于windows的添加/卸载程序 进行程序的 ...
- (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记
Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...
- Linux安装JDK详细步骤
Linux安装JDK步骤 1.先从网上下载jdk(jdk-7u1-linux-i586.rpm),下载地址:http://www.oracle.com/technetwork/java/javase/ ...
- Linux安装Jdk,CentOS安装Jdk
Linux安装Jdk,CentOS安装Jdk >>>>>>>>>>>>>>>>>>>& ...
- window、linux安装jdk,excel 导入oracle,WebService,window 端口查看,svn服务安装,oracle用户解锁
内存泄露分析插件http://download.eclipse.org/mat/1.3/update-site/birt插件http://download.eclipse.org//birt/upda ...
- linux 安装jdk
1.Linux安装JDK步骤1. 先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,推荐SUN的官方网站www.sun.com,下载后放在/home目录中,当然其它地方也 ...
随机推荐
- 29 Socketserver和 ftp
一.Socketserver #服务端 import socketserver class KnightServer(socketserver.BaseRequestHandler): def han ...
- 微信公众号开发之如何一键导出微信所有用户信息到Excel
微信开发交流群:148540125 系列文章参考地址 极速开发微信公众号欢迎留言.转发.打赏 项目源码参考地址 点我点我--欢迎Start 极速开发微信公众号系列文章之如何一键导出微信所有用户信息到E ...
- 使用API失效供应商地址Demo(转)
原文地址 使用API失效供应商地址Demo DECLARE lv_return_status ) := NULL; ln_msg_count NUMBER; lv_errmsg ); lt_vend ...
- jsp jsp属性范围
jsp提供了4中属性分别是 当前页:一个属性只能在一个页面中取得,跳转淘其他页面无法取得. 一次服务器请求:一个页面中设置的属性,只要经过了服务跳转,而跳转之后的页面可以继续取得 一次回话:一个用户设 ...
- CentOS6编译安装Python3
CentOS6默认Python版本是2, 但我使用的是Python3,因此需要自己安装 但记住,不要删除自带的Python2,否则很多东西会报错,比如yum之类的.(别问我为什么知道...) 话不多说 ...
- 北邮新生排位赛2解题报告d-e
<> 427. 学姐逗学弟 时间限制 3000 ms 内存限制 131072 KB 题目描述 学弟们来了之后,学姐每天都非常高兴的和学弟一起玩耍.这一天,学姐想出了这样一个游戏,她画了一棵 ...
- 3DES加密解密
C#3DES加密解密,JAVA.PHP可用 using System; using System.Security.Cryptography; using System.Text; namespace ...
- 微信小程序-隐藏和显示自定义的导航
微信小程序中不能直接操作window对象,document文档,跟html的树结构不相同. 实现类似导航的隐藏显示,如图效果: 点击网络显示或隐藏网络中包含的内容.其他类似. 如果是jquery很方便 ...
- W1002 Symbol 'Create' is specific to a platform
http://stackoverflow.com/questions/9099892/how-to-use-tformatsettings-create-without-being-specific- ...
- MyEclipse 2017 CI 9 发布(附下载)
挑战全年最低价!MyEclipse线上狂欢继续!火热开启中>> 在进入年底之时,2017 CI 9是我们最大的版本发布之一.在新版本中,我们添加了对Angular 5和TypeScript ...