源码安装LAMT架构

LAMT架构

1. lamt

  • Apache,MySQL,Tomcat
1.1 提供软件包
[root@node4 files]# ls
apache-tomcat-9.0.65.tar.gz
apr-1.7.0.tar.gz
apr-util-1.6.1.tar.gz
httpd-2.4.54.tar.gz
mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
[root@node4 files]# 

2. 源码安装httpd

2.1 创建Apache用户,安装开发工具包,依赖包
[root@node4 ~]# useradd -r -M -s /sbin/nologin apache
[root@node4 ~]# yum -y groups mark install 'Development Tools'
[root@node4 ~]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make
2.2 编译安装apr,apr-util, apache
apr:
[root@node4 ~]# cd apr-1.7.0
[root@node4 apr-1.7.0]# vim configure
[root@node4 apr-1.7.0]# cat configure|grep cfgfile
    cfgfile=${ofile}T
    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
#    $RM "$cfgfile"
[root@node4 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@node4 apr-1.7.0]# make
[root@node4 apr-1.7.0]# make install


apr-util
[root@node4 apr-1.7.0]# cd ../apr-util-1.6.1
[root@node4 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@node4 apr-util-1.6.1]# make  
[root@node4 apr-util-1.6.1]# make install

httpd
[root@node4 apr-util-1.6.1]# cd ../httpd-2.4.54
[root@node4 httpd-2.4.54]# ./configure --prefix=/usr/local/apache \
> --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@node4 httpd-2.4.54]# make 
[root@node4 httpd-2.4.54]# make install
2.3 设置环境变量,文档,头文件
[root@node4 ~]# cd /usr/local/apache/
[root@node4 apache]# ls
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules
[root@node4 apache]# 

环境变量
[root@node4 apache]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@node4 apache]# source /etc/profile.d/httpd.sh
[root@node4 apache]# 

man文档
[root@node4 apache]# vim /etc/man_db.conf 
[root@node4 apache]# cat /etc/man_db.conf |grep apache
MANDATORY_MANPATH                       /usr/local/apache/man
[root@node4 apache]# 

头文件
[root@node4 apache]# ln -s /usr/local/apache/include /usr/include/apache
[root@node4 apache]#
2.4 关闭防火墙和selinux
[root@node4 ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node4 ~]# vim /etc/selinux/config 
[root@node4 ~]# setenforce 0
[root@node4 ~]# 
2.5 配置service file
[root@node4 ~]# cd /usr/lib/systemd/system
[root@node4 system]# cp sshd.service httpd.service 
[root@node4 system]# vim httpd.service 
[root@node4 system]# cat httpd.service 
[Unit]
Description=httpd server daemon
After=network.target sshd-keygen.target

[Service]
Type=forking
ExecStart=/usr/local/apache/bin/apachectl start
ExecStop=/usr/local/apache/bin/apachectl stop
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
[root@node4 system]# systemctl daemon-reload
[root@node4 system]# 
[root@node4 ~]# systemctl start httpd
[root@node4 ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@node4 ~]# ss -antl
State  Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
LISTEN 0      128          0.0.0.0:22        0.0.0.0:*          
LISTEN 0      128             [::]:22           [::]:*          
LISTEN 0      128                *:80              *:*          
[root@node4 ~]# 
2.6 访问

在这里插入图片描述

3. MySQL的二进制安装

3.1 安装依赖包,创建用户,并解压
[root@node4 ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel ncurses-compat-libs
[root@node4 ~]# useradd -r -M -s /sbin/nologin mysql
[root@node4 ~]# cd files/
[root@node4 files]# tar xf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
3.2 修改属主
[root@node4 ~]# cd /usr/local/
[root@node4 local]# ls
apache    etc      lib64                                share
apr       games    libexec                              src
apr-util  include  mysql-5.7.38-linux-glibc2.12-x86_64
bin       lib      sbin
[root@node4 local]# mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql
[root@node4 local]# ls
apache  apr-util  etc    include  lib64    mysql  share
apr     bin       games  lib      libexec  sbin   src
[root@node4 local]# chown -R mysql.mysql mysql
[root@node4 local]# ll -d mysql
drwxr-xr-x 9 mysql mysql 129 Aug 31 23:14 mysql
[root@node4 local]# 
3.3 配置环境变量,man文档,lib库,头文件
[root@node4 mysql]# ls
LICENSE  bin   include  man    support-files
README   docs  lib      share
[root@node4 mysql]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@node4 mysql]# source /etc/profile.d/mysql.sh

[root@node4 mysql]# vim /etc/man_db.conf 
[root@node4 mysql]# cat /etc/man_db.conf |grep mysql
MANDATORY_MANPATH                       /usr/local/mysql/man
[root@node4 mysql]#

[root@node4 mysql]# vim /etc/ld.so.conf.d/mysql.conf
[root@node4 mysql]# cat /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@node4 mysql]# ldconfig 
[root@node4 mysql]#

[root@node4 mysql]# ln -s /usr/local/mysql/include /usr/include/mysql
[root@node4 mysql]# 
3.4 建立数据存放目录,并修改属主
[root@node4 ~]# mkdir -p /opt/data
[root@node4 ~]# chown -R mysql.mysql /opt/data
[root@node4 ~]# ll /opt/
total 0
drwxr-xr-x. 2 mysql mysql 6 Jul  5 18:37 data
[root@node4 ~]# 
3.5 初始化数据库,并保存密码
[root@node4 ~]# mysqld --initialize --user mysql --datadir /opt/data
2022-08-31T15:20:04.264947Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-08-31T15:20:04.577496Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-08-31T15:20:04.617721Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-08-31T15:20:04.623982Z 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: 63bb9fd2-2940-11ed-ab4b-000c2939e984.
2022-08-31T15:20:04.626692Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-08-31T15:20:04.846540Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-08-31T15:20:04.846589Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-08-31T15:20:04.846996Z 0 [Warning] CA certificate ca.pem is self signed.
2022-08-31T15:20:04.919689Z 1 [Note] A temporary password is generated for root@localhost: Ad)*6qymaZmo
[root@node4 ~]# echo 'Ad)*6qymaZmo' > pass
3.6 生成配置文件
[root@node4 ~]# cat /etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

[root@node4 ~]# > /etc/my.cnf
[root@node4 ~]# vim /etc/my.cnf
[root@node4 ~]# cat /etc/my.cnf
[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
sql-mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
[root@node4 ~]#
3.7 配置服务启动脚本
[root@node4 ~]# cd /usr/local/mysql/support-files/
[root@node4 support-files]# ls
magic  mysql-log-rotate  mysql.server  mysqld_multi.server
[root@node4 support-files]# cp mysql.server mysqld
[root@node4 support-files]# vim mysqld
[root@node4 support-files]# chown -R mysql.mysql mysqld
[root@node4 support-files]# cat mysqld
basedir=/usr/local/mysql
datadir=/opt/data
3.8 配置service文件,设置开机自启
[root@node4 ~]# cd /usr/lib/systemd/system
[root@node4 system]# cp sshd.service mysqld.service 
[root@node4 system]# vim mysqld.service 
[root@node4 system]# cat mysqld.service 
[Unit]
Description=mysqld server daemon
After=network.target sshd-keygen.target

[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysqld start
ExecStop=/usr/local/mysql/support-files/mysqld stop
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
[root@node4 system]# systemctl daemon-reload
[root@node4 system]# 
3.9 启动,设置密码
[root@node4 ~]# systemctl enable --now mysqld
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service 鈫� /usr/lib/systemd/system/mysqld.service.
[root@node4 ~]# ss -antl
State  Recv-Q  Send-Q   Local Address:Port   Peer Address:Port Process                                                        
LISTEN 0       128            0.0.0.0:22          0.0.0.0:*                                                                   
LISTEN 0       128            0.0.0.0:80          0.0.0.0:*                                                                   
LISTEN 0       128               [::]:22             [::]:*                                                                   
LISTEN 0       80                   *:3306              *:*                                                                   
[root@node4 ~]# cat pass 
Ad)*6qymaZmo
[root@node4 ~]# mysql -uroot -p'Ad)*6qymaZmo';
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.38

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

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('run123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> quit
Bye
[root@node4 ~]# mysql -uroot -p'run123456';
mysql> quit
Bye
[root@node4 ~]# 

4. 安装Tomcat

4.1 安装java环境
[root@node4 ~]# dnf -y install java-17-openjdk*
[root@node4 ~]# java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12-LTS, mixed mode, sharing)
[root@node4 ~]# 
4.2 tomcat部署
[root@node4 ~]# cd files/
[root@node4 files]# tar xf apache-tomcat-9.0.65.tar.gz -C /usr/local/
[root@node4 files]# cd /usr/local/
[root@node4 local]# ls
apache                apr-util  games    lib64    sbin
apache-tomcat-9.0.65  bin       include  libexec  share
apr                   etc       lib      mysql    src
[root@node4 local]# mv apache-tomcat-9.0.65 tomcat
[root@node4 local]# 

生成网页文件
[root@node4 ~]# cd /usr/local/tomcat/
[root@node4 tomcat]# 
[root@node4 tomcat]# mkdir test
[root@node4 tomcat]# cd test/
[root@node4 test]# ls
[root@node4 test]# vim index.jsp 
[root@node4 test]# cat index.jsp
<html>
<head>
<title>mushuang</title>
</head>
<body>
    <%
        out.println("Hellow World");
    %>
</body>
</html>
[root@node4 test]# 
[root@node4 tomcat]# mv test webapps/
[root@node4 tomcat]# 
[root@node4 tomcat]# ls webapps/
ROOT  docs  examples  host-manager  manager  test
[root@node4 tomcat]# 
4.3 启动
[root@node4 ~]# echo 'export PATH=/usr/local/tomcat/bin:$PATH' > /etc/profile.d/tomcat.sh
[root@node4 ~]# source /etc/profile.d/tomcat.sh
[root@node4 ~]# 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
Using CATALINA_OPTS:   
Tomcat started.
[root@node4 ~]# ss -antl
State  Recv-Q Send-Q      Local Address:Port Peer Address:Port Process                                                        
LISTEN 0      128               0.0.0.0:22        0.0.0.0:*                                                                   
LISTEN 0      128               0.0.0.0:80        0.0.0.0:*                                                                   
LISTEN 0      128                  [::]:22           [::]:*                                                                   
LISTEN 0      1      [::ffff:127.0.0.1]:8005            *:*                                                                   
LISTEN 0      80                      *:3306            *:*                                                                   
LISTEN 0      100                     *:8080            *:*                                                                   
[root@node4 ~]# ps -ef|grep tomcat
root      388767       1 23 23:51 pts/4    00:00:04 /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      390169   73841  0 23:51 pts/4    00:00:00 grep --color=auto tomcat
[root@node4 ~]# 
4.4 访问

在这里插入图片描述

在这里插入图片描述

4.5 修改tomcat配置文件
[root@node4 tomcat]# cd conf/
[root@node4 conf]# ls
Catalina             jaspic-providers.xml  tomcat-users.xml
catalina.policy      jaspic-providers.xsd  tomcat-users.xsd
catalina.properties  logging.properties    web.xml
context.xml          server.xml
[root@node4 conf]# pwd
/usr/local/tomcat/conf
[root@node4 conf]# vim server.xml 

<Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443" />

将注释取消掉

然后重启生效
4.6 出现403拒绝访问,修改文件
[root@node4 conf]# pwd
/usr/local/tomcat/conf
[root@node4 conf]# vim tomcat-users.xml 
添加三行:
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
</tomcat-users>
  • 没有访问成功,修改限制,改成可以在网页访问
[root@node4 manager]# pwd
/usr/local/tomcat/webapps/manager
[root@node4 manager]# vim META-INF/context.xml 
[root@node4 manager]# tail META-INF/context.xml
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.232\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
[root@node4 manager]# 
4.7 先停止,在启动
[root@node4 ~]# /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
Using CATALINA_OPTS:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@node4 ~]# ps -ef|grep tomcat
root      447237    1843  0 16:34 pts/0    00:00:00 grep --color=auto tomcat
[root@node4 ~]# /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
Using CATALINA_OPTS:
Tomcat started.
[root@node4 ~]# 
  • 访问

在这里插入图片描述

5. 配置Apache

5.1 启动代理模块
[root@node4 ~]# cd /usr/local/apache/conf/
[root@node4 conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@node4 conf]# vim 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
5.2 创建虚拟主机,并重启
[root@node4 extra]# pwd
/usr/local/apache/conf/extra
[root@node4 extra]# cat httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs"
    ServerName www.example.com
    ErrorLog "logs/www.example.com-error_log"
    CustomLog "logs/www.example.com-access_log" common
    ProxyPass / http://192.168.232.132:8080/
    ProxyPassReverse / http://192.168.232.132:8080/
    ProxyRequests Off
    <Directory "/usr/local/apache/htdocs">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
[root@node4 extra]# systemctl restart httpd
[root@node4 extra]# 
5.3 访问
  • 192.168.232.132,直接输入ip访问tomcat

在这里插入图片描述

  • 192.168.232.132/test

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值