当前位置:网站首页>一键部署LAMP和LNMP架构
一键部署LAMP和LNMP架构
2022-07-26 08:00:00 【未设定的诗梦】
一键部署LAMP和LNMP架构
一、安装包下载
链接:https://pan.baidu.com/s/1rfJl51YKMPlVMI1YIRZ0eg
提取码:gf99
下载安装包和脚本放至/opt目录下,使用source执行脚本
二、脚本详细
install.tool.sh脚本
echo "============================================="
echo "1)安装LAMP架构web服务器。"
echo "2)安装LNMP架构web服务器。"
read -p "请输入你的选择:" option
if [ $option -eq 1 ] ; then
source install.httpd.sh
cd /opt
source install.mysql.sh
cd /opt
source install.php.sh
cd /opt
source install.discuz.sh
else
source install.Nginx.sh
cd /opt
source install.mysql.sh
cd /opt
source install.php.sh
cd /opt
source install.discuz.sh
fi
clear
echo "============================================="
echo "安装完毕!"
install.httpd.sh脚本
#!/bin/bash
#初始化
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl pcre
#解压安装包
cd /opt
tar -zxf /opt/apr-1.6.2.tar.gz
tar -zxf /opt/apr-util-1.6.0.tar.gz
tar -jxf /opt/httpd-2.4.29.tar.bz2
mkdir /opt/httpd-2.4.29/srclib/apr
mkdir /opt/httpd-2.4.29/srclib/apr-util
mv ./apr-1.6.2/* ./httpd-2.4.29/srclib/apr mv ./apr-util-1.6.0/* ./httpd-2.4.29/srclib/apr-util #编译安装 cd /opt/httpd-2.4.29 ./configure \ --prefix=/usr/local/httpd \ --enable-so \ --enable-rewrite \ --enable-charset-lite \ --enable-cgi make && make install #优化配置文件路径 ln -s /usr/local/httpd/conf/httpd.conf /etc/ ln -s /usr/local/httpd/bin/* /usr/local/bin/ cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd sed -i '4a # chkconfig: 35 85 21' /etc/init.d/httpd sed -i '5a # description: Apache is a World Wide Web server' /etc/init.d/httpd chkconfig --add httpd clear echo "===========================================================" read -p "请输入网站IP地址:" ip sed -i '52c Listen '${ip}':80' /etc/httpd.conf sed -i '197c ServerName '${ip}':80' /etc/httpd.conf sed -i '221c DocumentRoot "/usr/local/httpd/htdocs"' /etc/httpd.conf install.Nginx.sh脚本
#!/bin/bash
#初始化
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#创建nginx用户
useradd -M -s /sbin/nologin nginx
#解压
tar zxvf /opt/nginx-1.12.2.tar.gz
#编译安装
cd /opt/nginx-1.12.2
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
make && make install
#优化路径
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
echo "[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target" >/lib/systemd/system/nginx.service
#配置监听地址和域名
clear
echo "==========================================================="
read -p "请入监听端口:" ip
read -p "请输入监听域名" dname
sed -i 's/listen 80/listen '$ip':80/' /usr/local/nginx/conf/nginx.conf
sed -i 's/server_name localhost;/server_name '$dname';/' /usr/local/nginx/conf/nginx.conf
sed -i 's/nobody/nginx/' /usr/local/nginx/conf/nginx.conf
#配置nginx支持php
chmod 754 /lib/systemd/system/nginx.service
sed -i -e '65,71s/#//' -e '69c \\tfastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;' /usr/local/nginx/conf/nginx.conf
sed -i '69a \\t#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' /usr/local/nginx/conf/nginx.conf
#重启服务
systemctl start nginx.service
systemctl enable nginx.service
#验证php测试页
echo "<?php
phpinfo();
?>" >/usr/local/nginx/html/index.php
install.mysql.sh脚本
#/bin/bash
#初始化
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
yum -y install ncurses ncurses-devel bison cmake
#解压安装mysql
tar zxvf /opt/mysql-5.7.17.tar.gz -C /opt
tar zxvf /opt/boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost
cd /opt/mysql-5.7.17
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
cd /opt/mysql-5.7.17
make -j3
make install
#创建用户并配置权限
useradd -M -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
#修改mysql 配置文件
echo '[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES' > /etc/my.cnf
#更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
#设置路径环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib" >>/etc/profile
source /etc/profile
#初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
#添加mysqld系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
yum -y install expect
/usr/bin/expect <<-EOF
spawn mysqladmin -u root -p password 123456
expect "Enter password:"
send "\r"
expect eof
EOF
cd
install.php.sh脚本
#/bin/bash
#初始化
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
yum -y install ncurses ncurses-devel bison cmake
#解压安装mysql
tar zxvf /opt/mysql-5.7.17.tar.gz -C /opt
tar zxvf /opt/boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost
cd /opt/mysql-5.7.17
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
cd /opt/mysql-5.7.17
make -j3
make install
#创建用户并配置权限
useradd -M -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
#修改mysql 配置文件
echo '[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES' > /etc/my.cnf
#更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
#设置路径环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib" >>/etc/profile
source /etc/profile
#初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
#添加mysqld系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
yum -y install expect
/usr/bin/expect <<-EOF
spawn mysqladmin -u root -p password 123456
expect "Enter password:"
send "\r"
expect eof
EOF
cd
install.discuz.sh脚本
#!/bin/bash
#解压文件并复制到指定路径
unzip Discuz_X3.4_SC_UTF8.zip -d /opt/discuz
cp -r /opt/discuz/dir_SC_UTF8/upload/ /usr/local/nginx/html/bbs/
#创建数据库用户
yum -y install expect
/usr/bin/expect <<-EOF
spawn mysql -u root -p123456
expect "mysql>"
send "\r"
expect "mysql>"
send "CREATE DATABASE bbs;\r"
expect "mysql>"
send "GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';\r"
expect "mysql>"
send "flush privileges;\r"
expect "mysql>"
send "quit\r"
EOF
#调整论坛目录的权限
bbs="/usr/local/nginx/html/bbs/"
chmod 777 ${
bbs}config/
chmod 777 ${
bbs}data/
chmod 777 ${
bbs}uc_client/
chmod 777 ${
bbs}uc_server/
chown -R nginx ${
bbs}/config/
chown -R nginx ${
bbs}/data/
chown -R nginx ${
bbs}/uc_client/
chown -R nginx ${
bbs}/uc_server/
三、等待安装结束即可浏览器访问验证
调用install.tool.sh脚本选择需要安装的架构。

此时可访问:192.168.10.10/index.php
此时可进入浏览器安装论坛:http://192.168.10.10/bbs/install/index.php
数据库服务器:localhost
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123
管理员账号:admin
管理员密码:admin123
论坛内部页面:http://192.168.10.10/bbs/index.php
论坛后台管理员页面:http://192.168.10.10/bbs/admin.php
验证php是否配置成功
192.168.10.10/index.php

安装并登陆论坛
此时可进入浏览器安装论坛:http://192.168.10.10/bbs/install/index.php
数据库服务器:localhost
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123
管理员账号:admin
管理员密码:admin123
论坛内部页面:http://192.168.10.10/bbs/index.php
论坛后台管理员页面:http://192.168.10.10/bbs/admin.php


边栏推荐
- Traversal mode of list, set, map, queue, deque, stack
- 2021-11-09
- Table fix specific rows
- Web page basic label
- Summary of traversal methods of list, set, map, queue, deque and stack
- 小组成员参加2022中国多媒体大会
- The difference between abstract classes and interfaces
- OVSDB
- Leetcode 206. reverse chain list (2022.07.25)
- From boosting to lamdamart
猜你喜欢

Dynamic performance view overview

JSP implicit object servlet object

万字长文 | 深入理解 OpenFeign 的架构原理

From boosting to lamdamart

一点一点理解微服务

Web page basic label

Meta universe infrastructure: analysis of the advantages of Web 3.0 chain33

Lambda and stream

Use js to count the number of occurrences of each string in the string array, and format it into an object array.

How to ensure the double write consistency between cache and database?
随机推荐
Jmeter性能测试之使用存储响应内容到文件监听器
If the thread crashes, why doesn't it cause the JVM to crash? What about the main thread?
PHP environment deployment
Yaml language-01 (data type, array, object)
Jmeter性能测试之将每次接口请求的结果保存到文件中
2w字详解数据湖:概念、特征、架构与案例
Leetcode 206. reverse chain list (2022.07.25)
Summarize the common high-frequency interview questions of the software testing post
Database foundation
Interview question set
2022.7.22DAY612
MySQL之执行计划
Why don't you tell me what long polling is?
Web page basic label
如何关闭高位端口
What is message subscription and publishing?
Now developers are beginning to do testing. Will there be no software testers in the future?
Summary of common methods of string
Jmeter性能测试之命令行执行和生成测试报告
Use of views