【Linux服务器搭建网站环境】整理

【Linux服务器搭建网站环境】整理

  • 搭建运行环境
    • 安装JDK
      • 【1】yum安装
      • 【2】tar.gz压缩包安装
      • 【3】rpm命令安装(redHat 或centos)
    • 安装Tomcat
          • 1. 后台验证码不显示
          • 2. Tomcat中支持shtml
    • 安装Mysql
      • 【1】yum安装
      • 【2】tar.gz 安装
          • 1. mysql和mysqldump出现command not found 问题解决
          • 2. mysql5.7遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题
          • 3. 导入数据出现ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it
          • 4. ERROR 1 (HY000): Can't create/write to file '/data/xxx.xls' (Errcode: 13 - Permission denied)
    • 安装Nginx
      • 卸载nginx
      • nginx 反向代理
      • nginx优化配置
      • nginx配置反向代理
          • 1. nginx静态资源映射缺少权限 【403 Foridden】
    • 防火墙

yum环境(先查看系统有没有yum工具)
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

查看服务器系统版本

  • Linux查看当前操作系统版本信息
    cat /proc/version
    Linux version 2.6.32-696.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Tue Mar 21 19:29:05 UTC 2017
  • Linux查看版本当前操作系统内核信息
    uname -a
    Linux localhost.localdomain 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 athlon i386 GNU/Linux
  • Linux查看版本当前操作系统发行信息
    cat /etc/issue 或 cat /etc/centos-release cat /etc/redhat-release
    CentOS release 6.9 (Final)
  • Linux查看cpu相关信息,包括型号、主频、内核信息等
    cat /etc/cpuinfo

搭建运行环境

由于需要安装java环境,按照前面一篇先下载安装包,再通过Xftp传到服务器上指定目录,再解压安装当然是可以的,只是过程太繁琐。
为了解决每次下载拖过去这种复杂的操作,于是linux上有个非常方便的小工具yum,可以直接下载安装。有点类似于python里面的pip工具,用过的人都知道好!

首先检查下当前系统里面有没有yum工具,有的话就不用安装了。我这边系统里面显示已经有这个工具了yum-3.4.3,所以无需安装。

安装JDK

tar.gz下载链接: JDK1.7u80.
yum安装示例: https://www.cnblogs.com/yoyoketang/p/10186513.html.

卸载JDK
1、卸载用 bin文件安装的JDK方法: 删除/usr/java目录下的所有东西
2、卸载系统自带的jdk版本方法:
查看自带的jdk:
[root@localhost /]# rpm -qa | grep gcj
libgcj-4.1.2-44.el5
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

卸载:
[root@localhost /]# rpm -e –nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

3、卸载rpm安装的jkd版本
查看安装的jdk:
[root@localhost /]# rpm -qa|grep jdk
java-1.6.0-openjdk-1.6.0.0-0.25.b09.el5
jdk-1.6.0_16-fcs
卸载:
[root@localhost /]# rpm -e --nodeps jdk-1.6.0_16-fcs

安装就是解压 .tar.gz的压缩包
修改文件 /etc/profile
JAVA_HOME=/jdk路径
JRE_HOME=$JAVA_HOME/jre/
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export PATH
保存后执行后生效
source /etc/profile

【1】yum安装

linux上安装软件,可以用yum非常方便,不需要下载解压,一个指令就能用yum安装java和tomcat环境。
前面一篇已经实现在阿里云服务器上搭建一个禅道系统的网站,算是小有成就,但并不是每个网站搭建都是这么简单的。
一般开发包是一个.war的文件,这就需要用到一个中间键,比如tomcat了,tomcat又是依赖于java环境的,所以先安装java环境
环境准备:
1.Linux 系统服务器: CentOS 7
2.yum 3.4.3
3.java 1.8
4.tomcat

 [root@yoyo ~]# rpm -qa | grep yum

[root@yoyo ~]# rpm -qa | grep yum
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-plugin-fastestmirror-1.1.31-42.el7.noarch
yum-3.4.3-154.el7.centos.noarch

先查看是否有java环境: rpm -qa | grep java
如果没有java环境的话,接着就去查找java-1.8.0的可以使用的安装包:yum list | grep java-1.8.0-openjdk

[root@yoyo ~]# yum list | grep java-1.8.0-openjdk
java-1.8.0-openjdk.i686 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk.x86_64 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-accessibility.i686 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-accessibility.x86_64 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-accessibility-debug.i686
java-1.8.0-openjdk-accessibility-debug.x86_64
java-1.8.0-openjdk-debug.i686 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-debug.x86_64 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-demo.i686 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-demo.x86_64 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-demo-debug.i686 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-demo-debug.x86_64 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-devel.i686 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-devel.x86_64 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-devel-debug.i686 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-devel-debug.x86_64 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-headless.i686 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-headless.x86_64 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-headless-debug.i686 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-headless-debug.x86_64 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-javadoc.noarch 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-javadoc-debug.noarch 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-javadoc-zip.noarch 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-javadoc-zip-debug.noarch
java-1.8.0-openjdk-src.i686 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-src.x86_64 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-src-debug.i686 1:1.8.0.191.b12-1.el7_6 updates
java-1.8.0-openjdk-src-debug.x86_64 1:1.8.0.191.b12-1.el7_6 updates

安装java-1.8.0-openjdk所有的文件

[root@yoyo ~]# yum -y install java-1.8.0-openjdk*

安装完之后,查看版本号:java -version

[root@yoyo ~]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
[root@yoyo ~]# 

接着输入javac,如果能看到内容输出就说明已经安装好了

[root@yoyo ~]# javac
Usage: javac  
where possible options include:
  -g                         Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}     Generate only some debugging info
  -nowarn                    Generate no warnings
  -verbose                   Output messages about what the compiler is doing
  -deprecation               Output source locations where deprecated APIs are used
  -classpath           Specify where to find user class files and annotation processors

安装完成之后需要设置环境变量,前面通过yum安装的好处就是已经自动帮我们设置好环境变量了。

【2】tar.gz压缩包安装

1、下载tar.gz的压缩包,这里使用官网下载
https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u80-oth-JPR
勾选接受许可协议后选择对应的压缩包,下载完成后上传的linux服务器上
2、下载完成后解压到指定文件下

先创建java文件目录,如果已存在就不用创建
[root@lyh:] # mkdir -p /usr/local/java
解压到java文件目录
[root@lyh:] # tar -vzxf jdk-8u161-linux-x64.tar.gz -C /usr/local/java/

3、添加环境变量,编辑配置文件

[root@lyh:] # vi /etc/profile
在文件最下方或者指定文件添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

4、保存退出(保存退出的命令是,Shift+:后输入wq回车),然后重新加载配置文件

[root@lyh:] # java -version
可以看到一下信息则表示配置成功
java version “1.8.0_161”
Java™ SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot™ 64-Bit Server VM (build 25.161-b12, mixed mode)

【3】rpm命令安装(redHat 或centos)

1、通过官网下载选定版本的rpm包,然后放在指定目录下
https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u80-oth-JPR
勾选接受许可协议后选择对应的压缩包,下载完成后上传的linux服务器上
2、rpm安装

#添加执行权限
[root@lyh:] # chmod +x /tmp/jdk-8u161-linux-x64.rpm
[root@lyh:] # rpm -ivh /tmp/jdk-8u161-linux-x64.rpm

3、查看java版本信息

[root@lyh:] # java -version
可以看到一下信息则表示配置成功
java version “1.8.0_161”
Java™ SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot™ 64-Bit Server VM (build 25.161-b12, mixed mode)

安装Tomcat

Tomcat7 下载链接: https://tomcat.apache.org/download-70.cgi.

#切换到文件当前路径

[root@yoyo tomcat]# tar -zxvf apache-tomcat-7.0.94.tar.gz

清空webapp文件夹

netstat 查看 端口占用情况
如果没有netstat命令,使用yum安装

[root@yoyo /]# yum -y install netstat



[root@localhost ~]# netstat -ntlp   //查看当前所有tcp端口·
[root@localhost ~]# netstat -ntulp |grep 80   //查看所有80端口使用情况·
[root@localhost ~]# netstat -an | grep 3306   //查看所有3306端口使用情况·
 
[root@localhost ~]# netstat -nlp |grep LISTEN   //查看当前所有监听端口·

切换到Tomcat的bin路径下启动tomcat

[root@yoyo bin]# ./startup.sh

#./shutdown.sh 关闭tomcat进程

1. 后台验证码不显示

链接: 验证码图片不加载.

问题产生原因:在tomcat里面的catalina.sh文件中,增加以下语句 JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
编辑Tomcat bin 目录下 catalina.sh
在Catalina.sh 添加
JAVA_OPTS="-Djava.awt.headless=true "

2. Tomcat中支持shtml
在目前的Tomcat中,shtml默认是不支持的,需要进行一定的配置,其实也不是非常复杂,不同的Tomcat版本,配置方法也有所不同,参考方法如下:


  Tomcat5.x版的配置方法:

1.在$CATALINA_BASE/server/lib/目录下找到servlets-ssi.renametojar文件,将这个文件重命名为servlets-ssi.jar 
2.在$CATALINA_BASE/conf/目录下找到web.xml文件 
3.使用SSI Servlet的话删除在SSI servlet和servlet-mapping周围的注释,使用SSI filter的话删除在SSI filter和filter-mapping周围的注释

  tomcat 6 SSI的配置与5.x版本不同,下面介绍tomcat 6 SSI的配置方法

  Tomcat6版的配置方法:

1.在$CATALINA_BASE/conf/目录下找到web.xml文件
2.使用SSI Servlet的话删除在SSI servlet和servlet-mapping周围的注释,使用SSI filter的话删除在SSI filter和filter-mapping周围的注释
3.$CATALINA_BASE/conf/下还有一个context.xml,将里面的<Context>改成<Context privileged="true">
4.解决乱码问题
在$CATALINA_BASE/conf/web.xml中的ssi servlet配置中添加以下初始配置:

  <init-param>
  <param-name>inputEncoding</param-name>
  <param-value>utf-8</param-value>
  </init-param>
  <init-param>
  <param-name>outputEncoding</param-name>
  <param-value>utf-8</param-value>
  </init-param>

其中utf-8编码应该和你页面的编码方式一样
更多请参考官方的配置说明http://tomcat.apache.org/tomcat-6.0-doc/ssi-howto.html


  经过上面的配置,包含文件:
<!--#include file="include.html" -->
<!--#include virtual="include.html" -->
才可以正常显示。

 


1.去掉tomcat6中conf/web.xml关于ssi的注释

===================================(1)===========================================
 <servlet>
  <servlet-name>ssi</servlet-name>
  <servlet-class>
  org.apache.catalina.ssi.SSIServlet
  </servlet-class>
  <init-param>
  <param-name>buffered</param-name>
  <param-value>1</param-value>
  </init-param>
  <init-param>
  <param-name>debug</param-name>
  <param-value>0</param-value>
  </init-param>
  <init-param>
  <param-name>expires</param-name>
  <param-value>666</param-value>
  </init-param>
  <init-param>
  <param-name>isVirtualWebappRelative</param-name>
  <param-value>0</param-value>
  </init-param>
  <load-on-startup>4</load-on-startup>
  </servlet>

=====================================(2)==========================================
 <servlet-mapping>
  <servlet-name>ssi</servlet-name>
  <url-pattern>*.shtml</url-pattern>
  </servlet-mapping>
=================================tomcat6重启 出错=================================

java.lang.SecurityException: Servlet of class org.apache.catalina.ssi.SSIServlet is 

privileged and cannot be loaded by this web application

==================================修改context.xml==================================

在标签<Context>里加入 privileged="true"
变为:
<Context privileged="true">

==========================tomcat6重启 以运行包含页面 但乱码=======================

修改conf/web.xml
在conf/web.xml中的ssi servlet配置中添加以下初始配置: 


<init-param> 
  <param-name>inputEncoding</param-name> 
  <param-value>utf-8</param-value>
  </init-param> 
  <init-param> 
  <param-name>outputEncoding</param-name> 
  <param-value>utf-8</param-value> 
  </init-param> 

修改为:
  <servlet>
  <servlet-name>ssi</servlet-name>
  <servlet-class>
  org.apache.catalina.ssi.SSIServlet
  </servlet-class>
  <init-param>
  <param-name>buffered</param-name>
  <param-value>1</param-value>
  </init-param>
  <init-param>
  <param-name>debug</param-name>
  <param-value>0</param-value>
  </init-param>
  <init-param>
  <param-name>expires</param-name>
  <param-value>666</param-value>
  </init-param>
  <init-param>
  <param-name>isVirtualWebappRelative</param-name>
  <param-value>0</param-value>
  </init-param>
<init-param> 
  <param-name>inputEncoding</param-name> 
  <param-value>utf-8</param-value>
  </init-param> 
  <init-param> 
  <param-name>outputEncoding</param-name> 
  <param-value>utf-8</param-value> 
  </init-param> 
  <load-on-startup>4</load-on-startup>
  </servlet>

===========================重启tomcat6 仍乱码===================

 

=====================过一两分钟再重启tomcat6 不乱码了===================

安装Mysql

创建账号

//新建用户 mysql 密码为rhhz888
mysql> create user mysql identified by 'rhhz888';
//查看用户权限
mysql> show grants for mysql;
//给test数据库权限赋给admin用户
//GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON *.* TO 'mysql'@'%';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost' IDENTIFIED BY 'rhhz888';
mysql> flush privileges;

root账号添加密码
mysql> use mysql;
mysql> update user set password=PASSWORD('rhhz888') where User='root';
mysql> flush privileges; 
创建数据库
mysql> create database 数据库名;
mysql> alter database + webzine_数据库名 default character set utf8 collate utf8_general_ci;

【1】yum安装

yum安装Mysql
5.6.45版本兼容性强
rpm镜像下载: http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm.

CentOS7下使用YUM安装MySQL5.6

安装时,一定注意清理掉Linux系统中所有mysql文件。1

1、检查系统中是否已安装 MySQL

[root@yoyo /]# rpm -qa | grep mysql

返回空值的话,就说明没有安装 MySQL 。

注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL2

2、查看已安装的 Mariadb 数据库版本

[root@yoyo /]# rpm -qa|grep -i mariadb

[root@yoyo /]# rpm -qa|grep -i mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@yoyo /]#

3、卸载已安装的 Mariadb 数据库

[root@yoyo /]# rpm -qa|grep mariadb|xargs rpm -e --nodeps

4、再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成

[root@yoyo /]# rpm -qa|grep -i mariadb

[root@yoyo /]# rpm -qa|grep mariadb|xargs rpm -e --nodeps
[root@yoyo /]# rpm -qa|grep -i mariadb
[root@yoyo /]#

5、下载安装包文件

一般存储在/usr/local 路径下

[root@yoyo local]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

[root@yoyo local]# **wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm **
–2019-07-16 11:00:18-- http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
Resolving repo.mysql.com… 23.56.181.34
Connecting to repo.mysql.com|23.56.181.34|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 6140 (6.0K) [application/x-redhat-package-manager]
Saving to: “mysql-community-release-el7-5.noarch.rpm”
100%[==================================================================================>] 6,140 --.-K/s in 0s
2019-07-16 11:00:19 (388 MB/s) - “mysql-community-release-el7-5.noarch.rpm” saved [6140/6140]
[root@yoyo local]#

6、安装mysql

安装mysql-community-release-el7-5.noarch.rpm包

[root@yoyo local]# rpm -ivh mysql-community-release-el7-5.noarch.rpm

在这里插入图片描述
安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件
在这里插入图片描述
执行 yum repolist all | grep mysql 命令查看可用的 mysql 安装文件。
【Linux服务器搭建网站环境】整理_第1张图片
安装mysql

[root@yoyo local]# yum install mysql-server

【Linux服务器搭建网站环境】整理_第2张图片
安装异常CentOS7.x [Errno 256] No more mirrors to try

总计:8.0 M总下载量:104 kDownloading packages:Delta RPMs disabled because /usr/bin/applydeltarpm not installed.rpm-build-libs-4.11.3-25.el7.x FAILED                                         http://mirrors.163.com/centos/7.4.1708/os/x86_64/Packages/rpm-build-libs-4.11.3-25.el7.x86_64.rpm: [Errno 14] curl#56 - "Recv failure: Connection reset by peer"                ]  0.0 B/s |    0 B  --:--:-- 
ETA正在尝试其它镜像。rpm-build-libs-4.11.3-25.el7.x FAILED                                         http://mirrors.sohu.com/centos/7.4.1708/os/x86_64/Packages/rpm-build-libs-4.11.3-25.el7.x86_64.rpm: 
[Errno 14] curl#56 - "Recv failure: Connection reset by peer"               ]  0.0 B/s |    0 B  --:--:-- 
ETA正在尝试其它镜像。rpm-build-libs-4.11.3-25.el7.x FAILED                                         http://mirrors.tuna.tsinghua.edu.cn/centos/7.4.1708/os/x86_64/Packages/rpm-build-libs-4.11.3-25.el7.x86_64.rpm:
 [Errno 14] curl#56 - "Recv failure: Connection reset by peer"   ]  0.0 B/s |    0 B  --:--:-- 
ETA正在尝试其它镜像。rpm-build-libs-4.11.3-25.el7.x FAILED                                         http://mirror.lzu.edu.cn/centos/7.4.1708/os/x86_64/Packages/rpm-build-libs-4.11.3-25.el7.x86_64.rpm: 
[Errno 14] curl#56 - "Recv failure: Connection reset by peer"              ]  0.0 B/s |    0 B  --:--:-- 
ETA正在尝试其它镜像。rpm-build-libs-4.11.3-25.el7.x FAILED                                         http://mirrors.nju.edu.cn/centos/7.4.1708/os/x86_64/Packages/rpm-build-libs-4.11.3-25.el7.x86_64.rpm: 
[Errno 14] curl#56 - "Recv failure: Connection reset by peer"             ]  0.0 B/s |    0 B  --:--:-- 
ETA正在尝试其它镜像。rpm-build-libs-4.11.3-25.el7.x FAILED                                         http://mirrors.nwsuaf.edu.cn/centos/7.4.1708/os/x86_64/Packages/rpm-build-libs-4.11.3-25.el7.x86_64.rpm: 
[Errno 14] curl#56 - "Recv failure: Connection reset by peer"          ]  0.0 B/s |    0 B  --:--:-- 
ETA正在尝试其它镜像。...........

Error downloading packages:
  rpm-build-libs-4.11.3-25.el7.x86_64: [Errno 256] No more mirrors to try.

解决办法
1.清理软件源
yum clean all
2.建立源数据缓存
yum makecache

7、检查mysql是否安装成功

[root@yoyo local]# rpm -qa | grep mysql

8、启动 mysql 服务

systemctl start mysqld.service #启动 mysql
systemctl restart mysqld.service #重启 mysql
systemctl stop mysqld.service #停止 mysql
systemctl enable mysqld.service #设置 mysql 开机启动

9.设置密码

mysql5.6 安装完成后,它的 root 用户的密码默认是空的,我们需要及时用 mysql 的 root 用户登录(第一次直接回车,不用输入密码),并修改密码

[root@yoyo local]# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("这里输入root用户密码") where User='root';
mysql> flush privileges; 

【Linux服务器搭建网站环境】整理_第3张图片
10、设置远程主机登录

mysql> GRANT ALL PRIVILEGES ON *.* TO 'your username'@'%' IDENTIFIED BY 'your password';

执行以下命令,为root 用户添加远程登录的能力。

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";

【Linux服务器搭建网站环境】整理_第4张图片
11、Mysql表忽略大小写 (修改 /etc/my.cnf 文件)

因为linux下mysql默认是要区分表名大小写的。mysql是否区分大小写设置是由参数lower _ case _ table _ names决定的,其中:

lower_case_table_names = 0
区分大小写(即对表名大小写敏感),默认是这种设置。这样设置后,在mysql里创建的表名带不带大写字母都没有影响,都可以正常读出和被引用。变量lower_case_file_system说明是否数据目录所在的文件系统对文件名的大小写敏感,其中:ON说明对文件名的大小写不敏感,OFF表示
SHOW VARIABLES LIKE ‘%case%’

lower_case_table_names = 1
不区分大小写(即对表名大小写不敏感)。这样设置后,表名在硬盘上以小写保存,MySQL将所有表名转换为小写存储和查找表上。该行为也适合数据库名和表的别名。

12、Mysql配置优化设置 (修改 /etc/my.cnf 文件)

[mysqld]
#mysql监听的ip地址,如果是127.0.0.1,表示仅本机访问
bind_address = 192.168.0.60

#mysql最大连接数
max_connections = 800

#服务器使用的字符集
character_set_server=utf8mb4

#表名大小写不敏感
lower_case_table_names = 1

【2】tar.gz 安装

下载链接: https://dev.mysql.com/downloads/mysql/5.6.html#downloads.

添加软连接,直接使用mysql命令
ln -s /usr/local/mysql/bin/mysql /usr/bin
mysql和mysqldump出现command not found 问题解决
1、查找mysql安装路径
find / -name mysql
通常mysql安装路径在:/usr/local/mysql/bin/mysql
2、mysql:command not found建立软连接
ln -s /usr/local/mysql/bin/mysql /usr/bin
3、mysqldump:command not found 建立软连接
ln -s /usr/local/mysql/bin/mysqldump /usr/bin
原文链接:https://blog.csdn.net/sxf_123456/article/details/80291593

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

1、检查系统中是否已安装 MySQL

检查系统是否已经安装了mysql
rpm -qa | grep mysql

若存在,卸载系统自带的mysql
rpm -e --nodeps mysql-xxxx

2、上传MySQL压缩包到 /usr/local/ 下, 解压缩 MySQL

#解压
tar -zxvf mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz

删除原压缩包: 
rm -rf mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz

重命名解压包: 
mv mysql-5.6.42-linux-glibc2.12-x86_64/ mysql

3、创建mysql用户组和mysql用户
(在Linux的/etc/group文件中可查看所有组,在/etc/shadow和/etc/passwd中查看所有用户)

# groupadd mysql
# useradd -r -g mysql mysql

4、修改mysql目录的所有者为mysql用户
(root用户通过chown命令(change own)改变文件的拥有者和群组, 文件拥有者可以使用chmod命令改变文件或目录的访问权限)

chown -R mysql:mysql  ./   

5、创建mysql数据目录: data目录不存在则创建
【Linux服务器搭建网站环境】整理_第5张图片
6、初始化MySQL

[root@localhost mysql]#./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

7、Mysql配置优化设置 (修改 /etc/my.cnf 文件)
参考: https://www.cnblogs.com/lyq863987322/p/8074749.html.

[mysqld]
#mysql监听的ip地址,如果是127.0.0.1,表示仅本机访问
bind_address = 192.168.0.60

#mysql最大连接数
max_connections = 800

#服务器使用的字符集
character_set_server=utf8mb4

#表名大小写不敏感
lower_case_table_names = 1

8、修改目录权限

[root@localhost mysql]# chown -R root:root ./ 

[root@localhost mysql]# chown -R mysql:mysql data  

9、将MySQL的启动脚本放到 /etc/init.d 目录下,并启动MySQL

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql

[root@localhost mysql]# service mysql start

10、登录数据库,使用mysql命令操作:

① 设置root用户密码

# ./bin/mysqladmin -u root password '123456'

提示使用命令行设置密码将不安全,可以去数据库配置文件里面直接配置。

② 登录MySQL数据库

# ./mysql -uroot -p

输入密码,即可登录

③ 执行如下操作:

grant all privileges on *.* to 'root'@'%' identified by '数据库密码';

flush privileges;
1. mysql和mysqldump出现command not found 问题解决
 **添加软连接,直接使用mysql命令**
1、查找mysql安装路径
 **find / -name mysql**
通常mysql安装路径在:/usr/local/mysql/bin/mysql
2、mysql:command not found建立软连接
 **ln -s  /usr/local/mysql/bin/mysql  /usr/bin**
3、mysqldump:command not found 建立软连接
 **ln -s  /usr/local/mysql/bin/mysqldump  /usr/bin**
原文链接:https://blog.csdn.net/sxf_123456/article/details/80291593
2. mysql5.7遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题
使用 Mysql 5.7 问题
mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的问题

Mysql版本是5.7.21,默认是带了ONLY_FULL_GROUP_BY模式,去掉即可
例如:
mysql> select @@global.sql_mode;  
+--------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------------------------------------------------------------------------+

方法一:
mysql> set @@global.sql_mode=‘STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;


方法二:
[root@localhost mysql]# vim /etc/my.cnf

[mysqld]
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
:wq #保存重启
[root@localhost mysql]# service mysql restart
3. 导入数据出现ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it
mysql> show global variables like '%secure_file_priv%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_file_priv | NULL  |
+------------------+-------+
1 row in set (0.00 sec)


查看 secure_file_priv 的值,默认为NULL,表示限制不能导入导出。

查看官方文档,secure_file_priv参数用于限制LOAD DATA, SELECT …OUTFILE, LOAD_FILE()传到哪个指定目录。

secure_file_priv 为 NULL 时,表示限制mysqld不允许导入或导出。
secure_file_priv 为 /tmp 时,表示限制mysqld只能在/tmp目录中执行导入导出,其他目录不能执行。
secure_file_priv 没有值时,表示不限制mysqld在任意目录的导入导出。
又因为 secure_file_priv 参数是只读参数,不能使用set global命令修改。
解决办法:
secure_file_priv=''
打开my.cnf 或 my.ini,加入以下语句后重启mysql
4. ERROR 1 (HY000): Can’t create/write to file ‘/data/xxx.xls’ (Errcode: 13 - Permission denied)
#缺少写入权限的概率比较大,暂时修改数据目录权限777
[root@localhost data]# chmod 777 /data
#mysql导出xls或其他文件,导出成功后
[root@localhost data]# chmod 755 /data

安装Nginx

安装示例: https://blog.csdn.net/stinkstone/article/details/78082748.

下载链接: http://nginx.org/en/download.html.
nginx 1.14.2.gz下载:http://nginx.org/download/nginx-1.14.2.tar.gz.
1、安装所需环境

(linux对于软件编译安装都需要依赖两个安装包gcc gcc-c++)
(rewrite模块需要pcre库)
(gzip模块需要zlib库)
(ssl功能需要openssl库)
若使nginx支持https,则需要安装OpenSSL库,否则nginx配置ssl模块会报错 ./configure: error: SSL modules require the OpenSSL library.

[root@nginx ~]# yum install gcc-c++
[root@nginx ~]# yum install -y pcre pcre-devel
[root@nginx ~]# yum install -y zlib zlib-devel
[root@nginx ~]# yum -y install openssl openssl-devel

2、官网下载nginx,并解压安装包

[root@yoyo local]# tar -zxvf nginx-1.14.2.tar.gz

3、进行configure配置(ps:当前我在 /usr/local/ 的位置,执行以下命令)

[root@yoyo local]# cd /usr/local/nginx-1.14.2 && ./configure --prefix=/usr/local/nginx
该操作会检测当前系统环境,以确保能成功安装nginx,执行该操作后可能会出现以下几种提示:

    checking for OS

     + Linux 3.10.0-123.el7.x86_64 x86_64

    checking for C compiler ... not found

    ./configure: error: C compiler cc is not found

    如果出现以上错误提示信息,执行yum install gcc-c++安装gcc,

    ./configure: error: the HTTP rewrite module requires the PCRE library.

    You can either disable the module by using --without-http_rewrite_module

    option, or install the PCRE library into the system, or build the PCRE library

    statically from the source with nginx by using --with-pcre=<path> option.

    如果出现上面提示,表示缺少PCRE库

    ./configure: error: the HTTP gzip module requires the zlib library.

    You can either disable the module by using --without-http_gzip_module

    option, or install the zlib library into the system, or build the zlib library

    statically from the source with nginx by using --with-zlib=<path> option.

    如果出现以上提示,表示缺少zlib库
    如果没有出现./configure: error提示,表示当前环境可以安装nginx,执行make和make install编译nginx

4、编译安装

CentOS8执行以上操作后未生成 /usr/local/nginx/ 目录,执行以下操作

//执行make命令
[root@localhost nginx-1.14.2]# make
//执行make install命令
[root@localhost nginx-1.14.2]# make install

安装完毕后,将在/usr/local/下看到nginx文件夹,nginx文件夹中有四个文件夹:
conf 存放配置文件
html 存放静态页面
logs 存放日志文件
sbin 执行文件

Nginx 默认使用80端口:
通过 netstat -ano | grep :80 查看80端口是否被占用

./nginx   #启动nginx
./nginx -s reload  #重启nginx
./nginx -s stop //关闭
linux重写语法,待补充。。。

卸载nginx

如果是使用yum安装:

yum remove nginx

绿色版解压安装:

find / -name nginx
rm -rf /usr/local/nginx/
rm -rf /usr/sbin/nginx
rm /usr/share/man/man1/nginx.1.gz
apt-get remove nginx*

nginx 反向代理

server {

    listen 80;

    server_name  www.redis.com.cn;

    access_log  logs/redis.access.log  main;
    error_log  logs/redis.error.log;

    root   html;
    index  index.html index.htm index.php;

 

    ## send request back to apache ##

    location / {
        proxy_pass  http://apachephp;

        #Proxy Settings
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

        proxy_max_temp_file_size 0;

        proxy_connect_timeout      90;

        proxy_send_timeout         90;

        proxy_read_timeout         90;

        proxy_buffer_size          4k;

        proxy_buffers              4 32k;

        proxy_busy_buffers_size    64k;

        proxy_temp_file_write_size 64k;

   }

}

nginx优化配置

链接: Nginx性能优化.
链接: Nginx中文文档.

nginx配置反向代理

1. nginx静态资源映射缺少权限 【403 Foridden】

以下示例为nginx反向代理+tomcat情况下,配置nginx静态资源映射网站访问数据文件返回403 Foridden解决办法


nginx 通过alias实现静态映射
location /i/ {
alias /spool/w3/images/;
}


通过Tomcat上传数据文件,权限umask一般默认为027( u=rwx,g=r-x,o=—),nginx静态映射权限不足

【Linux服务器搭建网站环境】整理_第6张图片


tomcat默认umask为027,对应权限为750(u=rwx,g=r-x,o=---),也就是说其它用户连可读的权限都没有
nginx 静态映射权限需要o=r-x,文件才可以被调用

在catalina.sh文件的开篇可以看到
#   UMASK           (Optional) Override Tomcat's default UMASK of 0027

编辑tomcat根目录/bin/catalina.sh文件,找到
# Set UMASK unless it has been overridden
if [ -z "$UMASK" ]; then
    UMASK="0027"
fi
umask $UMASK
将0027改成0022,重启Tomcat

防火墙

CentOS7 的防火墙配置跟以前版本有很大区别,CentOS7这个版本的防火墙默认使用的是firewall,与之前的版本Centos 6.x使用iptables不一样

一、iptables防火墙
1、基本操作

查看防火墙状态

service iptables status  

 停止防火墙

service iptables stop  

 启动防火墙

service iptables start  

 重启防火墙

service iptables restart  

 永久关闭防火墙

chkconfig iptables off  

 永久关闭后重启

chkconfig iptables on  

2、开启80端口

vim /etc/sysconfig/iptables
 加入如下代码
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
保存退出后重启防火墙

service iptables restart
二、firewall防火墙
1、查看firewall服务状态

systemctl status firewalld

出现Active: active (running)切高亮显示则表示是启动状态。

出现 Active: inactive (dead)灰色表示停止,看单词也行。
2、查看firewall的状态

firewall-cmd --state
3、开启、重启、关闭、firewalld.service服务

 开启
service firewalld start
 重启
service firewalld restart
 关闭
service firewalld stop
4、查看防火墙规则

firewall-cmd --list-all 
5、查询、开放、关闭端口

 查询端口是否开放
firewall-cmd --query-port=8080/tcp
 开放80端口
firewall-cmd --permanent --add-port=80/tcp
 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

 

CentOS7 默认使用firewalld防火墙,如果想换回iptables防火墙,可关闭firewalld并安装iptables。

1、关闭firewall:

停止firewall
systemctl stop firewalld.service

禁止firewall开机启动
systemctl disable firewalld.service

查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state

2.安装iptables-services

yum install iptables-services

3.修改防火墙配置文件

vi /etc/sysconfig/iptables

默认的文件为:



在修改之前使用telnet命令查看端口是否开放。

1.启动telnet。控制面板-->程序和功能-->打开或关闭windows功能-->勾选Telnet的两个选项。
2.打开cmd窗口,输入telnet,如果端口关闭或者无法连接,则显示不能打开到主机的链接,链接失败;端口打开的情况下,链接成功,则进入telnet页面(全黑的),证明端口可用。

(1)telnet IP 端口。

(2)telnet 域名 端口。





如果成功连接会进入的界面



连接失败

添加端口80、8080、3306、3690端口:



esc :wq! 退出保存修改。

注意:添加在端口22上面或者下面,不要放在最后,不然不起作用。

4.重启防火墙使配置生效

systemctl restart iptables.service

刚刚yum install iptables.service之后系统如果没有重启,iptables.service是找不到的,会报unit not fount。耽误时间的小坑!

设置防火墙开机启动:
systemctl enable iptables.service


  1. 安装时,一定注意清理掉Linux系统中所有mysql文件。 ↩︎

  2. 注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL。 ↩︎

你可能感兴趣的:(Linux,Linux,环境搭建)