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.confServerName 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,重启
SetHandler server-status
Order deny,allow
Deny from all
Allow from all
SetHandler server-info
Order deny,allow
Deny from all
Allow from all
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
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
connectionTimeout="20000"
redirectPort="8443" />
我们既然如果只是启动其中一个,其实就没有必要去修改端口咯,这是只是贴出来如果部署分布式,需要修改的端口位置。
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
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 权限,不要把这两行粘贴到最后去了,要粘贴在 之上 ,这是 xml 的格式,贴到外面了肯定就不生效
2、vi /opt/tomcat9/webapps/manager/META-INF/context.xml ,把 Contest 的内容全部注释,如下所示
3、重启 tomcat ,看效果,不难发现,这里就是 nio 的模式,无需修改。
自从 tomcat 8 以来,默认的就是 nio 的模式,这里我们就不需要修改了,那 tomcat 7 就需要修改工作模式
vi /opt/tomcat9/conf/server.xml
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. 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} =
[ -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/nginxchmod 755 /etc/init.d/nginxchkconfig --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 ;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
最后,重启 nginx ,就可以看到
ip:port/info.php。如果一直是 nofound ,那么就是 上面一步没配好