部署LAMT
环境
系统(主机ID) | IP | 所需服务 |
---|---|---|
CentOS7(WangJiayue) | 192.168.222.132 | httpd2.4、MySQL5.7、Tomcat9.0 |
1.安装httpd
1.1安装依赖包并创建apache组和用户
[root@WangJiayue ~]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++
//省略安装过程
[root@WangJiayue ~]# groupadd -r apache
[root@WangJiayue ~]# useradd -r -M -s /sbin/nologin -g apache apache
1.2 下载、安装apr和apr-util软件包
[root@WangJiayue ~]# 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@WangJiayue ~]# tar xf apr-1.7.0.tar.gz
[root@WangJiayue ~]# tar xf apr-util-1.6.1.tar.gz
[root@WangJiayue ~]# cd apr-1.7.0
[root@WangJiayue apr-1.7.0]# vim configure
//用“/cfgficle=${ofile}T”找到以下几行
————————————————
cfgfile=${ofile}T
trap "$RM \"$cfgfile\"; exit 1" 1 2 15
# $RM "$cfgfile" //将此行删除或注释
————————————————
[root@WangJiayue apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@WangJiayue apr-1.7.0]# make && make install
[root@WangJiayue apr-1.7.0]# cd
[root@WangJiayue ~]# cd apr-util-1.6.1/
[root@WangJiayue apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@WangJiayue apr-util-1.6.1]# make && make install
1.3 下载并安装httpd
[root@WangJiayue ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.43.tar.gz
//省略下载过程
[root@WangJiayue ~]# tar xf httpd-2.4.43.tar.gz
[root@WangJiayue ~]# cd httpd-2.4.43
[root@WangJiayue httpd-2.4.43]# ./configure --prefix=/usr/local/apache \
> --sysconfdir=/etc/httpd24 \
> --enable-proxy \
> --enable-proxy-connect \
> --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@WangJiayue httpd-2.4.43]# make && make install
[root@WangJiayue ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@WangJiayue ~]# source /etc/profile.d/httpd.sh
[root@WangJiayue ~]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@WangJiayue ~]# echo 'MANPATH /usr/local/apache/man' >> /etc/man_db.conf
[root@WangJiayue ~]# sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf //取消ServerName前面的注释
1.4 启动apache
[root@WangJiayue ~]# apachectl start
[root@WangJiayue ~]# 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 :::*
[root@WangJiayue ~]#
2. 安装MySQL
2.1 安装依赖包、创建用户组合用户
[root@WangJiayue ~]# yum -y install libaio ncurses-devel openssl-devel openssl cmake mariadb-devel
//省略安装过程
[root@WangJiayue ~]# groupadd -r -g 306 mysql
[root@WangJiayue ~]# useradd -r -M -s /sbin/nologin -g 306 -u 306 mysql
2.2 下载二进制包、创建软连接
[root@WangJiayue ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
//省略下载过程
[root@WangJiayue ~]# tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@WangJiayue ~]# cd /usr/local/
[root@WangJiayue local]# ln -s mysql-5.7.30-linux-glibc2.12-x86_64/ mysql
2.3 修改文件属性,添加环境变量
[root@WangJiayue local]# chown -R mysql.mysql mysql*
[root@WangJiayue ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@WangJiayue ~]# source /etc/profile.d/mysql.sh
2.4 建立存放数据的目录并初始化数据库
[root@WangJiayue ~]# mkdir /opt/data
[root@WangJiayue ~]# chown -R mysql.mysql /opt/data
[root@WangJiayue ~]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data
2020-08-03T04:45:38.279415Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-08-03T04:45:38.494993Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-08-03T04:45:38.534989Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-08-03T04:45:38.590632Z 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: 2d7d644e-d544-11ea-9b78-000c299e71dd.
2020-08-03T04:45:38.591168Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-08-03T04:45:39.073703Z 0 [Warning] CA certificate ca.pem is self signed.
2020-08-03T04:45:39.148072Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
[root@WangJiayue ~]#
2.5 配置MySQL、生成配置文件
[root@WangJiayue ~]# ln -sv /usr/local/mysql/include/ /usr/local/include/mysql
"/usr/local/include/mysql" -> "/usr/local/mysql/include/"
[root@WangJiayue ~]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@WangJiayue ~]# ldconfig
[root@wnz ~]# 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
2.6 配置启动脚本,设置开机自启
[root@WangJiayue ~]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@WangJiayue ~]# sed -ri 's#^(basedir=).*#\1/usr/local/mysql#g' /etc/init.d/mysqld
[root@WangJiayue ~]# sed -ri 's#^(datadir=).*#\1/opt/data#g' /etc/init.d/mysqld
[root@WangJiayue ~]# chkconfig --add mysqld
[root@WangJiayue ~]# chkconfig --list
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关
netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关
network 0:关 1:关 2:开 3:开 4:开 5:开 6:关
2.7 启动MySQL并修改密码
[root@WangJiayue ~]# service mysqld start
Starting MySQL.Logging to '/opt/data/WangJiayue.err'.
SUCCESS!
[root@WangJiayue ~]# 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@WangJiayue ~]# mysql -e "set password = password('wjy123')"
[root@WangJiayue ~]#
3. 安装Tomcat
3.1 安装JDK、Tomcat
[root@WangJiayue ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
//省略安装过程
[root@WangJiayue ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz
//省略下载过程
[root@WangJiayue ~]# tar -xf apache-tomcat-9.0.37.tar.gz -C /usr/local/
3.2 创建软连接
[root@WangJiayue ~]# cd /usr/local/
[root@WangJiayue local]# ln -s apache-tomcat-9.0.37 tomcat
[root@WangJiayue local]# cd
[root@WangJiayue ~]#
3.3 启动Tomcat
[root@WangJiayue ~]# /usr/local/tomcat/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@WangJiayue ~]# 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 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 :::*
[root@WangJiayue ~]#
4. 配置apache
4.1 启动代理模块
[root@WangJiayue ~]# 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
"找到并取消这三行的注释
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
4.2 配置虚拟主机
[root@WangJiayue ~]# vim /etc/httpd24/httpd.conf
//在文件最后添加
<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs"
ProxyPass / http://192.168.222.132:8080/
ProxyPassReverse / http://192.168.222.132:8080/
<Directory "/usr/local/apache/htdocs">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
4.3 重启apache
[root@WangJiayue ~]# apachectl restart
[root@WangJiayue ~]# 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 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 :::*
[root@WangJiayue ~]#
访问 192.168.222.132的80端口被转发到8080端口