lamt搭建
环境说明
系统 | 主机名 | ip | 安装的服务 |
---|---|---|---|
centos7 | vm3 | 192.168.30.150 | http mysql tomcat |
1.安装apache
//安装所需包
[root@vm3 ~]# yum -y install openssl-devel pcre-devel expat-devel libtool wget gcc gcc-c++
//创建apache用户和组
[root@vm3 ~]# useradd -r -M -s /sbin/nologin apache
[root@vm3 ~]# id apache
uid=997(apache) gid=995(apache) groups=995(apache)
[root@vm3 ~]#
//下载和安装apr以及apr-util
[root@vm3 ~]# wget http://mirror.bit.edu.cn/apache/apr/apr-1.7.0.tar.gz http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
[root@vm3 ~]# tar xf apr-1.7.0.tar.gz
[root@vm3 ~]# tar xf apr-util-1.6.1.tar.gz
[root@vm3 ~]# ls
anaconda-ks.cfg apr-util-1.6.1
apr-1.7.0 apr-util-1.6.1.tar.gz
apr-1.7.0.tar.gz
[root@vm3 ~]# cd apr-1.7.0
[root@vm3 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@vm3 apr-1.7.0]# make && make install
---编译过程略
[root@vm3 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@vm3 apr-util-1.6.1]# make && make install
---编译过程略
//下载安装httpd
[root@vm3 ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.43.tar.gz
--2020-08-01 20:49:08-- http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.43.tar.gz
Resolving mirror.bit.edu.cn (mirror.bit.edu.cn)... 219.143.204.117, 202.204.80.77, 2001:da8:204:1205::22
Connecting to mirror.bit.edu.cn (mirror.bit.edu.cn)|219.143.204.117|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9348230 (8.9M) [application/octet-stream]
Saving to: ‘httpd-2.4.43.tar.gz’
100%[===========>] 9,348,230 2.72MB/s in 3.4s
2020-08-01 20:49:11 (2.64 MB/s) - ‘httpd-2.4.43.tar.gz’ saved [9348230/9348230]
[root@vm3 ~]# ls
anaconda-ks.cfg apr-util-1.6.1
apr-1.7.0 apr-util-1.6.1.tar.gz
apr-1.7.0.tar.gz httpd-2.4.43.tar.gz
[root@vm3 ~]# tar xf httpd-2.4.43.tar.gz
[root@vm3 ~]# ls
anaconda-ks.cfg apr-util-1.6.1.tar.gz
apr-1.7.0 httpd-2.4.43
apr-1.7.0.tar.gz httpd-2.4.43.tar.gz
apr-util-1.6.1
[root@vm3 ~]# cd httpd-2.4.43
[root@vm3 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@vm3 httpd-2.4.43]# make && make install
---编译过程略
//安装后配置
[root@vm3 ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@vm3 ~]# . /etc/profile.d/httpd.sh
[root@vm3 ~]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@vm3 ~]# echo 'MANPATH /usr/local/apache/man' >> /etc/man_db.conf
[root@vm3 ~]# sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf
//启动apache
[root@vm3 ~]# apachectl start
[root@vm3 ~]# ss -tanl
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 :::*
2.安装mysql
//安装依赖包
[root@vm3 ~]# yum -y install libaio ncurses-devel openssl-devel openssl cmake mariadb-devel
//创建用户和组
[root@vm3 ~]# groupadd -r -g 306 mysql
[root@vm3 ~]# useradd -r -M -s /sbin/nologin -g 306 -u 306 mysql
//下载mysql软件包
[root@vm3 ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
[root@vm3 ~]# tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@vm3 ~]# cd /usr/local/
[root@vm3 local]# ls
apache lib
apr lib64
apr-util libexec
bin mysql-5.7.30-linux-glibc2.12-x86_64
etc sbin
games share
include src
[root@vm3 ~]# cd /usr/local/
[root@vm3 local]# ls
apache lib
apr lib64
apr-util libexec
bin mysql-5.7.30-linux-glibc2.12-x86_64
etc sbin
games share
include src
[root@vm3 local]#
[root@vm3 local]# ln -sv mysql-5.7.30-linux-glibc2.12-x86_64/ mysql
‘mysql’ -> ‘mysql-5.7.30-linux-glibc2.12-x86_64/’
//修改目录/usr/local/mysql的属主属组
[root@vm3 local]# chown -R mysql.mysql /usr/local/mysql
[root@vm3 local]# ll -d /usr/local/mysql
lrwxrwxrwx. 1 mysql mysql 36 Aug 1 21:20 /usr/local/mysql -> mysql-5.7.30-linux-glibc2.12-x86_64/
//添加环境变量
[root@vm3 ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@vm3 ~]# . /etc/profile.d/mysql.sh
[root@vm3 ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
//建立数据存放目录
[root@vm3 ~]# mkdir /opt/data
[root@vm3 ~]# chown -R mysql.mysql /opt/data/
[root@vm3 ~]# ll /opt/
total 0
drwxr-xr-x. 2 mysql mysql 6 Aug 1 21:23 data
//初始化数据库
[root@vm3 ~]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data/
2020-08-02T01:24:59.768198Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-08-02T01:25:00.005443Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-08-02T01:25:00.044328Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-08-02T01:25:00.101316Z 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: fb93f2ce-d45e-11ea-9a20-000c29a61cb5.
2020-08-02T01:25:00.103220Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-08-02T01:25:01.150652Z 0 [Warning] CA certificate ca.pem is self signed.
2020-08-02T01:25:01.320790Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
//配置mysql
[root@vm3 ~]# ln -sv /usr/local/mysql/include/ /usr/local/include/mysql
‘/usr/local/include/mysql’ -> ‘/usr/local/mysql/include/’
[root@vm3 ~]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@vm3 ~]# ldconfig
//生成配置文件
[root@vm3 ~]# 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@vm3 ~]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@vm3 ~]# sed -ri 's#^(basedir=).*#\1/usr/local/mysql#g' /etc/init.d/mysqld
[root@vm3 ~]# sed -ri 's#^(datadir=).*#\1/opt/data#g' /etc/init.d/mysqld
[root@vm3 ~]# chkconfig --add mysqld
[root@vm3 ~]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
mysqld 0:off 1:off 2:on 3:on 4:on5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:of5:off 6:off
network 0:off 1:off 2:on 3:on 4:on5:on 6:off
//启动mysql
[root@vm3 ~]# service mysqld start
Starting MySQL.Logging to '/opt/data/vm3.err'.
SUCCESS!
[root@vm3 ~]# ss -tanl
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@vm3 ~]# mysql
mysql> set password=password('123456');
Query OK, 0 rows affected, 1 warning (0.04 sec)
mysql> quit
Bye
3.安装tomcat
//安装JDK
[root@vm3 ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
//安装tomcat
[root@vm3 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz
[root@vm3 ~]# ls
anaconda-ks.cfg
apache-tomcat-9.0.37.tar.gz
apr-1.7.0
apr-1.7.0.tar.gz
apr-util-1.6.1
apr-util-1.6.1.tar.gz
httpd-2.4.43
httpd-2.4.43.tar.gz
mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
[root@vm3 ~]# tar xf apache-tomcat-9.0.37.tar.gz -C /usr/local/
[root@vm3 ~]# cd /usr/local/
[root@vm3 local]# ln -s apache-tomcat-9.0.37/ tomcat
//启动tomcat
[root@vm3 ~]# /usr/local/tomcat/bin/catalina.sh startUsing 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@vm3 ~]# ss -tanl
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 1 ::ffff:127.0.0.1:8005 :::*
LISTEN 0 80 :::3306 :::*
LISTEN 0 100 :::8080 :::*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
测试静态页面
测试tomcat页面
4.编辑httpd的配置文件,在/etc/httpd/conf.d中定义一个虚拟主机
httpd的代理模块:
proxy_module:反代模块
prproxy_ajp_module:适配ajp协议客户端proxy_http_module:适配http协议客户端;
这里我们用apache访问 使用proxy_module和proxy_http_module模块反代
//启用模块
[root@vm3 ~]# vim /etc/httpd24/httpd.conf
#LoadModule remoteip_module modules/mod_remoteip.so
LoadModule proxy_module modules/mod_proxy.so 取消注释
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so 取消注释
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
//配置虚拟主机
[root@vm3 ~]# vim /etc/httpd24/httpd.conf
<VirtualHost *:80>
ServerName www.yanlei.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
ProxyPass / http://192.168.30.150:8080/
proxyPassReverse / http://192.168.30.150:8080/
<Location />
Require all granted
</Location>
</VirtualHost>
测试