阿里云ubuntu16系统搭建LAMP,安装tomcat,jdk,以及在tomcat上部署第一个javaweb项目详细步骤
1、更新软件源
sudo apt-get update
2、安装apache
sudo apt-get install apache2
3、 查看apache搭建是否成功
apache2 –v
出现下面样式图片即表示搭建成功
4、查看apache安装是否成功
通过浏览器访问服务器的IP,如果出现Apache欢迎界面,表示安装成功,如下所示:
5、安装php
sudo apt-get install php7.0
6、查看php是否安装成功及版本
php -v
到这一步,LAMP环境已经搭建好了,接下来进行测试
新建index.php文件,并删除 /var/www/html下面的index.html文件(index.* 文件表示进入网站的首页面,且优先级.html大于.php文件)
vim /var/www/html/index.php
插入
<?php phpinfo(); ?>
在浏览器地址栏输入服务器公网ip ,如果看到php的相关信息了就说明安装成功了!
7、安装php相关扩展
(1) 安装php-mcypt (加密函数库)
先安装Linux的mcrypt
sudo apt-get install mcrypt
然后安装PHP的mcrypt
sudo apt-get install php-mcrypt
安装完之后,重启Apache2
sudo service apache2 restart
通过浏览器访问index.php,如果看到mcrypt扩展开启,就成功了,其他扩展安装也是如此
最后进文件
/etc/php/7.0/apache2/php.ini
取消注释
extension=php_mbstring.dll
并将
extension=php_mbstring.dll
改成
extension=php_mbstring.so
然后新增
extension=php_mcrypt.dll
8、安装mysql
extension=php_mbstring.dll
安装PHP7.0-mysql
sudo apt-get install php7.0-mysql
重启MySQL
sudo service mysql restart
重启Apache
sudo service apache2 restart
安装phpmyadmin(最好安装,方便操作以及设置后面的远程登录账户)
sudo apt-get install phpmyadmin
安装过程中会提示输入密码等,直接输入即可,安装完成后默认放在/usr/share/phpmyadmin目录下,为了能够使我们通过web访问,这里需要建立一个软连接将其连接到Apache的默认目录下
sudo ln -s /usr/share/phpmyadmin /var/www/html/pma
这里我们建立了一个pma的软连接指向实际的PHPmyadmin目录,在浏览器中直接访问PHPmyadmin,输入IP/pma,如下所示
开启mysql远程访问
登陆mysql mysql -u root -p 进入数据库,选择mysql表,将host只能本地访问的 localhost 改为 %
update user set host="%" where user="root";
然后刷新权限
flush privileges;
然后再授权设置
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
接下来
查看3306端口是否被开放
root@iZwz956snfyrvah6yq8sa4Z:~# netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
注意:现在3306端口只能被本地访问(127.0.0.1)。修改mysql配置文件,我这里的文件路径是/etc/mysql/mysql.conf.d/mysqld.cnf
vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到
bind-address = 127.0.0.1
在前面加上 #号,将它注释掉,重启MySQL。
service mysql restart
再次查看3306端口
root@iZwz956snfyrvah6yq8sa4Z:~# netstat -an | grep 3306
tcp6 0 0 :::3306 :::* LISTEN
然后就可以用navicat等远程工具连接阿里云服务器的mysql了。
修改Mysql字符:
第一步,打开mysql配置文件:
在 【client】下追加:
default-character-set=utf8
在 【mysqld】下追加:
character-set-server=utf8
在 【mysql】 下追加:
default-character-set=utf8
保存并退出
注: 我的【mysqld】在 /etc/mysql/mysql.conf.d/mysqld.cnf
我的【mysql】 在 /etc/mysql/conf.d/mysql.cnf
我的【client】 在 /etc/mysql/debian.cnf
第二步,重启mysql
service mysql restart
第三步:查看字符集
mysql -u root -p
输入密码
show variables like '%character%';
第一步:登陆mysql查看mysql实际连接数
mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 214 |
+-----------------+-------+
row in set (0.00 sec)
发现mysql的实际最大连接数只有214,和配置文件的1000不一致,也就是mysql的最大连接数设置并没有生效。
Linux一切皆文件,于是查看了下mysql的文件限制。
第二步:检查mysql可以打开的文件数量
mysql> show variables like '%open_files_limit%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 1024 |
+------------------+-------+
发现mysql的open_files只有1024,于是我开始查看系统的文件设置。
第三步:检查系统文件
ulimit -a
root@jiajia:~# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 3824
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 3824
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
发现系统文件的open files 为65535,说明这个open file并没有被mysql使用。
解决办法第一种:
使用systemctl 命令编辑mysql.service
systemctl edit mysql.service
输入一下内容
[Service]
LimitNOFILE=infinity
LimitMEMLOCK=infinity
保存上边的输入,系统会自动文成下边的文件
/etc/systemd/system/mysql.service.d/override.conf
更改mysql配置文件
max_connections = 9999
重启这两个服务
systemctl daemon-reload #让 SystemD 重新加载配置文件
systemctl restart mysql.service
登陆mysql查看
mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 9999 |
+-----------------+-------+
1 row in set (0.00 sec)
mysql> show variables like '%open_files_limit%';
+------------------+---------+
| Variable_name | Value |
+------------------+---------+
| open_files_limit | 1048576 |
+------------------+---------+
1 row in set (0.00 sec)
更改成功,以后更改配置文件也可以使用一下命令生效。
service mysql restart
解决办法第二种:
直接更改mysql.service,在/etc/systemd/system 目录下我查看了下其他被systemctl 所管理的服务
ll redis.service
redis.service -> /lib/systemd/system/redis-server.service
发现其实这里服务通过软连接使用的是/lib/systemd/system下的服务,于是可以直接修改这个目录下的mysql服务(mysql.service服务在/lib/systemd/system下)
cd /lib/systemd/system
vi mysql.service
修改mysql.service
# MySQL systemd service file
[Unit]
Description=MySQL Community Server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
PermissionsStartOnly=true
ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/sbin/mysqld
ExecStartPost=/usr/share/mysql/mysql-systemd-start post
TimeoutSec=600
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755
LimitNOFILE=infinity #新增
LimitMEMLOCK=infinity #新增
保存后,重启mysql服务
service mysql restart
登陆mysql查看,我的另一台服务器修改最大连接数为3000
mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 3000 |
+-----------------+-------+
1 row in set (0.00 sec)
mysql> show variables like '%open_files_limit%';
+------------------+---------+
| Variable_name | Value |
+------------------+---------+
| open_files_limit | 1048576 |
+------------------+---------+
1 row in set (0.00 sec)
至此:这样mysql的最大连接数就修改成功了。
9、安装jdk
考虑到jdk,tomcat压缩包比较大,建议先使用Xftp将压缩包上传到服务器,压缩包可以上网上找,也可以在我的博客里面下载 jdk+tomcat下载地址
然后便开始安装吧!
找到刚才上传的压缩包的地址,我这里是
cd /usr/tools
然后分别解压两个压缩包
tar -zxvf tomcat-9.0.13.tar.gz
jdk1.8.0_20.tar.gz
然后启用编辑器
vim ~/.bashrc
输入i进入编辑后在下面插入以下内容编辑环境变量,编辑完之后按esc退出编辑,再输入 :wq保存更改后退出
export JAVA_HOME=/usr/tools/jdk1.8.0_20
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
注意:这里只需要将
export JAVA_HOME=/usr/tools/jdk1.8.0_20 修改成你自己的jdk目录即可,其他的地方不变
在终端输入source ~/.bashrc
使更改生效,然后输入java -version查看jdk版本信息以验证jdk是否安装成功
出现以上信息则说明jdk安装成功。
因为刚才解压了tomcat压缩包,所以现在只需要启动tomcat就好了
cd /usr/tools/apache-tomcat-9.0.13/bin
./startup.sh
等待片刻输入ip:8080,如果出现下面图片即表示tomcat搭建成功
至此:所有的准备工作都准备好了,开始我们web项目的部署吧!
将java项目打包成.war文件,如果不知道怎么打包的请参见下面两篇博客,本文不再赘述!
如何打包一个Myeclipse的javaWeb项目
https://blog.csdn.net/shinoey/article/details/53641403
如何打包一个IDEA的javaweb项目
https://blog.csdn.net/qq_42986107/article/details/92094960
将打包好的.war文件传到服务器tomcat的webapp目录下面(这里介绍两个非常好用的工具Xshell和Xftp,可以在网上下载,也可以在我博客资源里面下载 Xshell+Xftp )
然后直接输入 ip:8080/你的项目名字/ 就可以访问你的javaweb项目了!当然了,这样要输项目名比较麻烦,很多字母不好玩,要是直接输入ip就可以访问那该多爽撒! 网上介绍了传统的方法就是映射,感兴趣的可以搜索一下, 在这里我想介绍一种比较简单的方法。
cd /var/www/html
进入html目录,上文我们不是配置了index.php页面吗?那个是为了验证php是否安装成功的,现在我们需要将index.php重写编写一下。
vi index.php
将下面代码覆盖原有的
<?php
Header("Location: http://写你的ip:8080/这里写你的项目名字/");
?>
不需要重启服务器以及tomcat,直接输入ip就可以访问你的项目了。这是为什么呢?我们有必要做一下解释!
因为在 /var/www/html 目录里面是放php项目的,里面的index.php是可以通过ip直接访问的,如果需要直接访问java项目,我们在前文说了是要映射的,上面 的代码我们只是做了一个页面跳转,输入ip然后跳转到 http://写你的ip:8080/这里写你的项目名字/ 这个url ,你看这个url是不是最开始你访问javaweb的url嘛!所以现在你知道为什么了吧。
好了,现在访问php项目就更简单了吧,此文就不再赘述了!