我是靠谱客的博主 淡淡胡萝卜,最近开发中收集的这篇文章主要介绍lamt架构搭建,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

lamt架构搭建

一、 部署前的准备环境以及工具
Linux、apache、mysql、Tomcat
二、环境部署

主机名IP
hostlocal192.168.175.150

三、安装httpd

配置源安装epel源
[root@localhost ~]# rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/wget-1.14-18.el7_6.1.x86_64.rpm
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.rep
[root@localhost yum.repos.d]# cd
[root@localhost ~]# sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@localhost ~]# yum -y install epel-release

安装开发工具包
[root@localhost ~]# yum groups mark install 'Development Tools'

创建Apache服务的用户和组
[root@localhost ~]# groupadd -r apache
[root@localhost ~]# useradd -r -M -s /sbin/nologin -g apache apache

安装依赖包
[root@localhost ~]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++

下载和安装apr和apr-util
[root@localhost ~]# cd /usr/src/
[root@localhost src]# wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.5.tar.gz
[root@localhost src]# wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
[root@localhost src]# ls
apr-1.6.5.tar.gz  apr-util-1.6.1.tar.gz  debug  kernels
[root@localhost src]# tar xf apr-1.6.5.tar.gz
[root@localhost src]# tar xf apr-util-1.6.1.tar.gz
[root@localhost src]# ls
apr-1.6.5  apr-1.6.5.tar.gz  apr-util-1.6.1  apr-util-1.6.1.tar.gz  debug  kernels
[root@localhost src]# cd apr-1.6.5
[root@localhost apr-1.6.5]# vim configure
    cfgfile="${ofile}T"
    trap "$RM "$cfgfile"; exit 1" 1 2 15
    # $RM "$cfgfile"        //将此行加上注释,或者删除此行
[root@localhost apr-1.6.5]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.6.5]# cd /usr/src/apr-util-1.6.1
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]#make && make install
[root@localhost apr-1.6.5]# cd /usr/src/apr-util-1.6.1
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]# make && make install

编译安装httpd
[root@localhost ~]# ls
anaconda-ks.cfg  httpd-2.4.43.tar.bz2
[root@localhost ~]# tar xf httpd-2.4.43.tar.bz2 
[root@localhost ~]# ls
anaconda-ks.cfg  httpd-2.4.43  httpd-2.4.43.tar.bz2
[root@localhost ~]# cd httpd-2.4.43
[root@localhost httpd-2.4.43]# ./configure --prefix=/usr/local/apache 
--sysconfdir=/etc/httpd24 
--enable-so 
--enable-ssl 
--enable-cgi 
--enable-rewrite 
--with-zlib 
--with-pcre 
--with-apr=/usr/local/apr 
--with-apr-util=/usr/local/apr-util/ 
--enable-modules=most 
--enable-mpms-shared=all 
--with-mpm=prefork
[root@localhost httpd-2.4.43]# make && make install

安装后配置
[root@localhost ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@localhost ~]# source /etc/profile.d/httpd.sh
[root@localhost ~]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@localhost ~]# echo 'MANPATH /usr/local/apache/man' >> /etc/man.config

取消ServerName前面的注释
[root@localhost ~]# sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf 

启动Apache
[root@localhost ~]# apachectl start
[root@localhost ~]# ss -antl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128             *:22                          *:*                  
LISTEN      0      100     127.0.0.1:25                          *:*                  
LISTEN      0      128            :::80                         :::*                  
LISTEN      0      128            :::22                         :::*                  
LISTEN      0      100           ::1:25                         :::*     

四、安装mysql

安装依赖包
[root@localhost ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel

创建用户和组
[root@localhost ~]# groupadd -r -g 306 mysql
[root@localhost ~]# useradd -r -M -s /sbin/nologin -g 306 -u 306 mysql

下载二进制格式的mysql软件包
[root@localhost ~]# cd /usr/src/
[root@localhost src]# ls
apr-1.6.5         apr-util-1.6.1.tar.gz  mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
apr-1.6.5.tar.gz  debug
apr-util-1.6.1    kernels
[root@localhost src]# tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@localhost src]# cd
[root@localhost ~]# ls /usr/local/
apache  apr-util  etc    include  lib64    mysql-5.7.30-linux-glibc2.12-x86_64  share
apr     bin       games  lib      libexec  sbin                                 src
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -sv mysql-5.7.30-linux-glibc2.12-x86_64/ mysql
"mysql" -> "mysql-5.7.30-linux-glibc2.12-x86_64/"
[root@localhost local]# ll
总用量 0
drwxr-xr-x. 13 root root 152 7月  31 11:38 apache
drwxr-xr-x.  6 root root  58 7月  31 11:23 apr
drwxr-xr-x.  5 root root  43 7月  31 11:25 apr-util
drwxr-xr-x.  2 root root   6 11月  5 2016 bin
drwxr-xr-x.  2 root root   6 11月  5 2016 etc
drwxr-xr-x.  2 root root   6 11月  5 2016 games
drwxr-xr-x.  2 root root   6 11月  5 2016 include
drwxr-xr-x.  2 root root   6 11月  5 2016 lib
drwxr-xr-x.  2 root root   6 11月  5 2016 lib64
drwxr-xr-x.  2 root root   6 11月  5 2016 libexec
lrwxrwxrwx.  1 root root  36 7月  31 13:11 mysql -> mysql-5.7.30-linux-glibc2.12-x86_64/
drwxr-xr-x.  9 root root 129 7月  31 13:01 mysql-5.7.30-linux-glibc2.12-x86_64
drwxr-xr-x.  2 root root   6 11月  5 2016 sbin
drwxr-xr-x.  5 root root  49 7月  16 01:15 share
drwxr-xr-x.  2 root root   6 11月  5 2016 src


修改目录/usr/local/mysql的属主属组
[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql
[root@localhost ~]# ll /usr/local/mysql -d
lrwxrwxrwx. 1 mysql mysql 36 7月  31 13:11 /usr/local/mysql -> mysql-5.7.30-linux-glibc2.12-x86_64/


添加环境变量
[root@localhost ~]#  ls /usr/local/mysql
bin  docs  include  lib  LICENSE  man  README  share  support-files
[root@localhost ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@localhost ~]# . /etc/profile.d/mysql.sh
[root@localhost ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/mysql/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

建立数据存放目录
[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# mkdir /opt/data
[root@localhost mysql]# chown -R mysql.mysql /opt/data/
[root@localhost mysql]# ll /opt/
总用量 0
drwxr-xr-x. 2 mysql mysql 6 7月  31 13:13 data

初始化数据库
[root@localhost ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/
2020-07-31T05:14:47.257839Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-07-31T05:14:48.041764Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-07-31T05:14:48.148724Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-07-31T05:14:48.165567Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: c114170e-d2ec-11ea-86ac-000c29fe26ad.
2020-07-31T05:14:48.166640Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-07-31T05:14:49.336444Z 0 [Warning] CA certificate ca.pem is self signed.
2020-07-31T05:14:49.745106Z 1 [Note] A temporary password is generated for root@localhost: PShkiHSOD2:B
此时会生成一个随机密码,此时我的密码是:PShkiHSOD2:B

配置mysql
[root@localhost ~]# ln -sv /usr/local/mysql/include/ /usr/local/include/mysql
"/usr/local/include/mysql" -> "/usr/local/mysql/include/"
[root@localhost ~]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@localhost ~]# ldconfig 

生成配置文件
[root@localhost ~]# cat > /etc/my.cnf <<EOF
> [mysqld]
> basedir = /usr/local/mysql
> datadir = /opt/data
> socket = /tmp/mysql.sock
> port = 3306
> pid-file = /opt/data/mysql.pid
> user = mysql
> skip-name-resolve
> EOF

配置服务启动脚本
[root@localhost ~]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# sed -ri 's#^(basedir=).*#1/usr/local/mysql#g' /etc/init.d/mysqld
[root@localhost ~]# sed -ri 's#^(datadir=).*#1/opt/data#g' /etc/init.d/mysqld

启动mysql
[root@localhost ~]# service mysqld start
Unit mysqld.service could not be found.
Starting MySQL.Logging to '/opt/data/localhost.localdomain.err'.
 SUCCESS! 
[root@localhost ~]# ps -ef|grep mysql
root      92296      1  0 13:18 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/opt/data --pid-file=/opt/data/mysql.pid
mysql     92474  92296  8 13:18 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/opt/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=localhost.localdomain.err --pid-file=/opt/data/mysql.pid --socket=/tmp/mysql.sock --port=3306
root      92666  69202  0 13:18 pts/0    00:00:00 grep --color=auto mysql
[root@localhost ~]# ss -antl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128             *:22                          *:*                  
LISTEN      0      100     127.0.0.1:25                          *:*                  
LISTEN      0      80             :::3306                       :::*                  
LISTEN      0      128            :::80                         :::*                  
LISTEN      0      128            :::22                         :::*                  
LISTEN      0      100           ::1:25                         :::*            

修改密码
[root@localhost ~]# mysql -uroot -p
Enter password:                              此时的密码是上面临时生成的
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.30

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
设置新密码
mysql> set password = password('yangcan');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> quit
Bye    

五、安装Tomcat
Java环境安装

[root@localhost ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
查看版本
[root@localhost ~]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

Tomcat部署

[root@localhost ~]# cd /usr/src/
[root@localhost src]# ls
apache-tomcat-9.0.37.tar.gz  apr-util-1.6.1.tar.gz
apr-1.6.5                    debug
apr-1.6.5.tar.gz             kernels
apr-util-1.6.1               mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
[root@localhost src]# tar xf apache-tomcat-9.0.37.tar.gz -C /usr/local/
[root@localhost src]#  cd /usr/local/
[root@localhost local]# ln -s apache-tomcat-9.0.37/ tomcat
[root@localhost local]# ll
总用量 0
drwxr-xr-x. 13 root  root  152 7月  31 11:38 apache
drwxr-xr-x.  9 root  root  220 7月  31 16:12 apache-tomcat-9.0.37
drwxr-xr-x.  6 root  root   58 7月  31 11:23 apr
drwxr-xr-x.  5 root  root   43 7月  31 11:25 apr-util
drwxr-xr-x.  2 root  root    6 11月  5 2016 bin
drwxr-xr-x.  2 root  root    6 11月  5 2016 etc
drwxr-xr-x.  2 root  root    6 11月  5 2016 games
drwxr-xr-x.  2 root  root   19 7月  31 13:16 include
drwxr-xr-x.  2 root  root    6 11月  5 2016 lib
drwxr-xr-x.  2 root  root    6 11月  5 2016 lib64
drwxr-xr-x.  2 root  root    6 11月  5 2016 libexec
lrwxrwxrwx.  1 mysql mysql  36 7月  31 13:11 mysql -> mysql-5.7.30-linux-glibc2.12-x86_64/
drwxr-xr-x.  9 root  root  129 7月  31 13:01 mysql-5.7.30-linux-glibc2.12-x86_64
drwxr-xr-x.  2 root  root    6 11月  5 2016 sbin
drwxr-xr-x.  5 root  root   49 7月  16 01:15 share
drwxr-xr-x.  2 root  root    6 11月  5 2016 src
lrwxrwxrwx.  1 root  root   21 7月  31 16:12 tomcat -> apache-tomcat-9.0.37/

创建页面
写一个hello world的Java界面
[root@localhost ~]# vim index.jsp
[root@localhost ~]# cat index.jsp
<html>
<head>
        <title>test page</title>
</head>
<body>
        <%
            out.println("Hello World");
        %>
</body>
</html>
[root@localhost ~]# mkdir /usr/local/tomcat/webapps/test
[root@localhost ~]# cd /usr/local/tomcat/webapps/test
[root@localhost test]# pwd
/usr/local/tomcat/webapps/test
[root@localhost test]# cp ~/index.jsp .
[root@localhost test]# ls
index.jsp

启动tomcat
[root@localhost ~]# cd /usr/local/tomcat/bin/
[root@localhost bin]# ./startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]# ss -antl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128             *:22                          *:*                  
LISTEN      0      100     127.0.0.1:25                          *:*                  
LISTEN      0      80             :::3306                       :::*                  
LISTEN      0      100            :::8080                       :::*                  
LISTEN      0      128            :::80                         :::*                  
LISTEN      0      128            :::22                         :::*                  
LISTEN      0      100           ::1:25                         :::*                  
[root@localhost bin]# ps -ef|grep tomcat
root      59821      1 17 16:17 pts/1    00:00:02 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root      60072  93690  0 16:17 pts/1    00:00:00 grep --color=auto tomcat

在这里插入图片描述
在这里插入图片描述
此时需要修改文件 上面三个选项才能访问

[root@localhost ~]# cd /usr/local/tomcat/webapps
[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT  test
[root@localhost webapps]# cd manager/
[root@localhost manager]# ls
images  index.jsp  META-INF  status.xsd  WEB-INF  xform.xsl
[root@localhost manager]# cd META-INF/
[root@localhost META-INF]# ls
context.xml
[root@localhost META-INF]# vim context.xml
在文件中添加自己的IP网段

在这里插入图片描述

[root@localhost ~]# cd /usr/local/tomcat/conf/
[root@localhost conf]# ls
Catalina             context.xml           logging.properties  tomcat-users.xsd
catalina.policy      jaspic-providers.xml  server.xml          web.xml
catalina.properties  jaspic-providers.xsd  tomcat-users.xml
[root@localhost conf]# vim tomcat-users.xml
在最后添加以下三行内容

在这里插入图片描述
重启服务

[root@localhost ~]# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@localhost ~]# ss -antl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128             *:22                          *:*                  
LISTEN      0      100     127.0.0.1:25                          *:*                  
LISTEN      0      80             :::3306                       :::*                  
LISTEN      0      128            :::80                         :::*                  
LISTEN      0      128            :::22                         :::*                  
LISTEN      0      100           ::1:25                         :::*                  
[root@localhost ~]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.         
[root@localhost ~]# ss -antl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128             *:22                          *:*                  
LISTEN      0      100     127.0.0.1:25                          *:*                  
LISTEN      0      80             :::3306                       :::*                  
LISTEN      0      100            :::8080                       :::*                  
LISTEN      0      128            :::80                         :::*                  
LISTEN      0      128            :::22                         :::*                  
LISTEN      0      100           ::1:25                         :::*                  
LISTEN      0      1        ::ffff:127.0.0.1:8005                       :::*                  

在这里插入图片描述
在这里插入图片描述
配置Apache

[root@localhost ~]# vim /etc/httpd24/httpd.conf
将下面三行取消
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so

创建虚拟主机

[root@localhost ~]# vim /etc/httpd24/httpd.conf
<IfModule dir_module>
    DirectoryIndex index.jsp index.html
</IfModule>
添加下面内容
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs/"
    ServerName aaa.com
    ProxyRequests Off     //关闭正向代理
    ProxyPass /test http://127.0.0.1:8080/test/  //将80端口的test目录的访问请求转到8080端口的test目录中
    ProxyPassReverse /test http://127.0.0.1:8080/test/
    <Directory "/usr/local/apache/htdocs/">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
[root@localhost ~]# apachectl restart

验证访问
在这里插入图片描述

It works!

最后

以上就是淡淡胡萝卜为你收集整理的lamt架构搭建的全部内容,希望文章能够帮你解决lamt架构搭建所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部