网站部署到其他服务器但无权修改,web项目部署到服务器遇到的问题
web项目部署到Linux服务器遇到的问题
(内含war包部署产生的问题)
部署项目为:旅游网(可下载源码)
一 Linux部署环境问题
二 war包错误修改
Linux部署环境问题 整个Linux服务器部署参照博客 https://blog.csdn.net/qq_41635167/article/details/81096075
Linux 命令
systemctl start mysql.service#启动mysql服务
vim /var/log/mysqld.log#查看mysql日志
rpm -qal |grep mysql #查找是否安装mysql
netstat -anp|grep 3305 #查找进程,搜索端口为3305是否存在;可删除|及|后的命令,显示所有进程
pgrep -l java #查找进程名为“java”的PID,java一般为tomcat进程
kill -9 9090 #强制删除进程pid为9090的进程
netstat -ntlp #查看开启的所有端口
vi /etc/sysconfig/iptables #编辑 防火墙 规则
systemctl start firewalld.service #启动防火墙
systemctl enable firewalld.service #设置开机启动
systemctl restart firewalld.service #重启防火墙
firewall-cmd --state #检查是否打开
// 看sshd服务状态
service sshd status
// 如果没有启动就启动sshd服务
servcie sshd start
查看 linux 下tomcat实时日志信息 及 tomcat控制台输出
进入你tomcat的安装目录下的logs,
如 我安装目录是
/opt/DATA/tomcat8.5.55/apache-tomcat-8.5.55,
则进入
/opt/DATA/tomcat8.5.55/apache-tomcat-8.5.55/logs
命令为 :
(下面的JAVA_HOME需要修改为自己的tomcat安装目录)
cd /opt/DATA/tomcat8.5.55/apache-tomcat-8.5.55/logs
在该目录下,输入查看命令:
//在logs目录下,输入命令
tail -f catalina.out
然后重开一个远程窗口进行其他操作,刷新浏览器,就可以在原来的窗口看到tomcat日志了,会打印控制台,实时变化的哦~ ctrl+c可以退出日志
访问权限不足,无法写入
linux安装的JDK,Tomcat等东西最好放在目录 opt文件夹 或者 usr文件夹下,
其他文件夹非root用户可能会出现访问权限不足,无法写入或无法访问等问题,比较麻烦
tomcat无法访问:
tomcat 的 安装目录的 bin目录下的 catalina.sh文件使用
vi ./catalina.sh
命令进行编辑(进入后按键盘“insert”编辑,退出是先按 Esc 在输入:wq)
加入以下命令,在开头注释结束部分
(下面的JAVA_HOME需要修改为自己的JDK安装目录)
JAVA_HOME=/opt/DATA/jdk1.8.0_161
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
网页验证码无法加载出来
错误:java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11Graphi
(原因:对于一个Java服务器来说经常要处理一些图形元素,例如地图的创建或者图形和图表等。这些API基本上总是需要运行一个X-server以便能使用AWT(Abstract Window Toolkit,抽象窗口工具集)。)
tomcat 的 安装目录的 bin目录下的 catalina.sh文件使用
vi ./catalina.sh
命令进行编辑(进入后按键盘“insert”编辑,退出是先按 Esc 再输入:wq)
加入命令
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
宝塔页面tomcat,mysql无法关闭
宝塔 软件管理界面,卸载
Linux防火墙端口限制解除
xshell中 输入命令:(直接对文件进行编辑,进入后按键盘上的 insert 进入编辑模式,修改完成后按Esc ,再输入 :wq 保存并退出(冒号不能忘掉))
vi /etc/sysconfig/iptables
这是我的文件内容,添加端口可直接在文件里追加
A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -ACCEPT
将这条的 443 改为所要添加的端口号
下面为文件内容:
*filter
:INPUT ACCEPT [0:0]
: FORNARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
A INPUT -m state --state REL ATED, ESTABLISHED j ACCEPT
A INPUT P icmp -
ACCEPT
A INPUT -1 lo -j ACCEPT
A INPUT -m state --state NEW -m tcp P tcp
dport 21 j
ACCEPT
A INPUT -p tcp -m state --state NEW -m tcp --dport 22
ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 80
ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 88-ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 888 -ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -ACCEP
A INPUT -m state --state NEW -m tcp -p tcp --dport 3389 -ACCEPTT
A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -ACCEPT
A INPUT -m state --state NEW -m tcp -p tcp --dport 177 -ACCEPT
A INPUT -m state --state NEW -m tcp -P tcp --dport 8888 ACCEPT
A INPUT j REJECT -- reject -with icmp -host p rohibited
A FORWARD j REJECT - reject -with icmp -host p rohibited
然后
systemctl restart firewalld.service
进行重启防火墙
ps : 如果防火墙报错可用
firewall-cmd --state #查看是否打开防火墙
查看防火墙是否打开,如果未打开,使用
systemctl start firewalld.service #启动防火墙
war包错误修改
读取不到properties文件(原来在本机运行的项目是使用的本机绝对路径:G/workspace/xx.properties),修改为如图所示

//相对路径加载properties文件方法
Properties props = new Properties();
String PATH="druid.properties";
InputStream in = PropertyTest.class.getClassLoader().getResourceAsStream(PATH);
props.load(in);
resources/druid.propeties问题报错(数据库问题)
propeties文件内部存储的是数据库账户密码,drive,url;都得根据自己的情况进行相应修改
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/travel
username=root
password=password
当数据库和部署的项目至同一个服务器时,上边的url中的localhost可以不变,否则改为服务器ip地址;
端口改为mysql端口;
账户密码改为自己的账户密码。
Table ‘travel.tab_seller’ doesn’t exist
重新创建表
mysql错误:ERROR 1045 (28000): Access denied for user ‘root’@'localhost
mysqladmin -u root password admin #shell中修改密码为admin
mysql要是怎么都登不进去,重装吧,或者试试其他密码,或许你可能之前设置了其他密码,别问我是怎么知道的~
修改mysql密码
-
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
-
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
-
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
- 彻底忘记密码
1.vi /etc/my.cnf
2. 在[mysqld]下面添加一条命令:skip-grant-tables
3. :wq
4.1 进入MySql控制台(直接按回车,这时不需要输入root密码。)
mysql -uroot -p
4.2 切换到mysql数据库
mysql>use mysql;
4.3 修改mysql数据库中root的密码
mysql> update user set password=password(“填入新密码”) where user=‘root’;
4.4 刷新mysql权限
mysql> flush privileges;
4.5 退出
mysql> exit;
5.再次vi /etc/my.cnf。把skip-grant-tables删除掉,保存退出:wq
(自项目— 旅游网 错误,非本项目无需理会)邮件发送错误
除非你不使用 注册 功能,否则
修改 cn.itcast.travel.util.MailUtil的String USER 和 PASSWORD修改为自己的
(自项目— 旅游网 错误,非本项目无需理会)数据库错误 或 resources/druid.propeties问题报错(数据库问题)
propeties文件内部存储的是数据库账户密码,drive,url;都得根据自己的情况进行相应修改
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/travel
username=root
password=password

账户密码改为自己的账户密码。