作业七

#准备相关包mariadb-10.2.31-linux-x86_64.tar.gz,php-7.3.15.tar.xz,wordpress-5.4.2-zh_CN.tar.gz

#!/bin/bash
. /etc/init.d/functions
DIR=`pwd`  

#二进制安装mariadb
#-------------------------------------------------------------------
echo -e "\e[1;31m 二进制安装mariadb \e[0m"

#安装依赖包
yum install libaio perl-Data-Dumper libtinfo* libncurses* autoconf -y

#解压二进制程序
tar xvf mariadb-10.2.31-linux-x86_64.tar.gz -C /usr/local &> /dev/null && action "解压二进制程序成功"

#将原文件创建为软链接    
ln -sv /usr/local/mariadb-10.2.31-linux-x86_64  /usr/local/mysql &> /dev/null && action "创建软链接成功"

#创建mysql用户

id mysql &> /dev/null || useradd  mysql  -r -s /sbin/nologin  -d /data/mysql && action "创建mysql用户成功"
chown  -R mysql.mysql  /usr/local/mysql/*

#创建mysql数据目录
ls -d  /data/mysql &> /dev/null || mkdir -pv /data/mysql && chown  -R mysql.mysql  /data/mysql  

#准备配置文件

cp /usr/local/mysql/support-files/my-large.cnf   /etc/my.cnf
sed -r -i  '/^\[mysqld\]/adatadir=/data/mysql' /etc/my.cnf               

#创建数据库文件
/usr/local/mysql/scripts/mysql_install_db  --user=mysql --datadir=/data/mysql  --basedir=/usr/local/mysql/ &> /dev/null && action "创建数据库文件成功"

#准备服务启动文件                   
cp  /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld   
/usr/sbin/chkconfig --add mysqld
/usr/sbin/chkconfig mysqld on  #  设置为开机启动
service mysqld start

#环境变量
echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
ln -sv /usr/local/mysql/bin/*  /usr/bin/ &> /dev/null
action "环境变量创建成功"

#在数据库中创建wordpress数据库和用户
mysql -e "create database wordpress;"; mysql -e "grant all on wordpress.* to wpuser@'10.0.0.%' identified by '123456';"
action "数据库安装完成"

#编译安装http2.4.46
#-------------------------------------------------------------------
echo -e "\e[1;31m 编译安装http2.4.46 \e[0m"

cd $DIR
# 安装相关包
yum -y install wget gcc make pcre-devel openssl-devel expat-devel &> /dev/null && action "安装依赖包成功"

# 下载源代码并解压缩
target_dir=/usr/local/src
install_dir=/apps/httpd
wget -P $target_dir https://mirror.bit.edu.cn/apache//apr/apr-1.7.0.tar.gz &> /dev/null
wget -P $target_dir https://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.gz &> /dev/null
wget -P $target_dir https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.46.tar.gz &> /dev/null
cd $target_dir
tar xf apr-1.7.0.tar.gz
tar xf apr-util-1.6.1.tar.gz
tar xf httpd-2.4.46.tar.gz
action "源码下载解压完成"

# 将apr和apr-util源码与httpd源码合并,三者共同编译安装
mv apr-1.7.0 httpd-2.4.46/srclib/apr
mv apr-util-1.6.1 httpd-2.4.46/srclib/apr-util
cd httpd-2.4.46/
./configure \
--prefix=$install_dir \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=event &> /dev/null && action "编译完成" ||  { action "编译失败" false; exit; }

make -j `lscpu | grep "^CPU(s)" | awk '{print $NF}'` && make install &> /dev/null; action "httpd安装完成"

# 创建apache账户
id apache &> /dev/null || useradd -s /sbin/nologin -r apache

# 修改配置文件
sed -i 's/^User.*/User apache/' /apps/httpd/conf/httpd.conf
sed -i 's/^Group.*/Group apache/' /apps/httpd/conf/httpd.conf

# 配置环境变量
echo 'PATH="/apps/httpd/bin:$PATH"' > /etc/profile.d/httpd.sh
source /etc/profile.d/httpd.sh

# 配置man帮助
echo 'MANDATORY_MANPATH    /apps/httpd/man' >> /etc/man_db.conf

# 创建service unit文件,设置开机启动
cat > /lib/systemd/system/httpd.service << EOF
[Unit]
Description=The Apache HTTP Server
Wants=httpd-init.service
After=network.target remote-fs.target nss-lookup.target httpd-init.service
Documentation=man:httpd.service(8)
Documentation=man:apachectl(8)
[Service]
Type=forking
ExecStart=/apps/httpd/bin/apachectl start
ExecReload=/apps/httpd/bin/apachectl graceful
ExecStop=/apps/httpd/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF

#启动服务
systemctl daemon-reload
systemctl enable --now httpd.service &> /dev/null && action "httpd服务启动成功" || { action "httpd服务启动失败,请检查配置文件" false; exit; }


#编译安装httpd模块方式 php-7.3
#-------------------------------------------------------------------
echo -e "\e[1;31m 编译安装php-7.3 \e[0m"

cd $DIR
#安装相关包
yum -y install gcc libxml2-devel bzip2-devel libmcrypt-devel &> /dev/null && action "依赖包安装成功"

#解压源码包
tar xf php-7.3.15.tar.xz && action "php源码包解压成功"

#编译php

cd php-7.3.15/
./configure \
--prefix=/apps/php \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-mbstring \
--enable-xml \
--enable-sockets \
--enable-fpm \
--enable-maintainer-zts \
--disable-fileinfo &> /dev/null && action "编译完成" || { action "编译失败" false; exit; }

make -j `lscpu | grep "^CPU(s)" | awk '{print $NF}'` && make install &> /dev/null; action "php安装完成"

#准备PATH环境变量
echo 'PATH="/apps/php/bin:$PATH"' > /etc/profile.d/php.sh
source /etc/profile.d/php.sh
#准备php配置文件和启动文件
cp php.ini-production  /etc/php.ini
cp  sapi/fpm/php-fpm.service /usr/lib/systemd/system/
cd /apps/php/etc
cp  php-fpm.conf.default  php-fpm.conf
cd  php-fpm.d/
cp www.conf.default www.conf

#修改进程所有者
sed -i 's/^user.*/user = apache/' /apps/php/etc/php-fpm.d/www.conf
sed -i 's/^group.*/group = apache/' /apps/php/etc/php-fpm.d/www.conf

#支持status和ping页面
sed -i 's/^;pm.status.*/pm.status_path = \/pm_status/' /apps/php/etc/php-fpm.d/www.conf
sed -i 's/^;ping.*/ping.path = \/ping/' /apps/php/etc/php-fpm.d/www.conf

#支持opcache加速
mkdir /etc/php.d/
cat > /etc/php.d/opcache.ini << EOF
[opcache]
zend_extension=opcache.so
opcache.enable=1
EOF

#启动fpm服务
systemctl daemon-reload
systemctl enable --now  php-fpm.service

#编辑 apache 配置文件支持 php
sed -i 's/^#LoadModule proxy_module modules\/mod_proxy.so/LoadModule proxy_module modules\/mod_proxy.so/' /apps/httpd/conf/httpd.conf
sed -i 's/^#LoadModule proxy_fcgi_module modules\/mod_proxy_fcgi.so/LoadModule proxy_fcgi_module modules\/mod_proxy_fcgi.so/' /apps/httpd/conf/httpd.conf
echo -e "AddType application/x-httpd-php .php\nProxyRequests Off" >> /apps/httpd/conf/httpd.conf
sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php index.html/' /apps/httpd/conf/httpd.conf

#实现第一个虚拟主机,数据目录放在/data/wordpress下
cat >> /apps/httpd/conf/httpd.conf << EOF
<virtualhost *:80>
servername blog.magedu.org
documentroot /data/wordpress
<directory /data/wordpress>
require all granted
</directory>
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/wordpress/$1
ProxyPassMatch ^/(pm_status|ping)$ fcgi://127.0.0.1:9000/$1
CustomLog "logs/access_wordpress_log" common
</virtualhost>
EOF

systemctl restart httpd  #重启httpd
action "编辑apache配置文件支持php成功"

#部署wordpress
#-------------------------------------------------------------------
echo -e "\e[1;31m 部署wordpress \e[0m"

cd $DIR

#解压wordpress源包
tar xf wordpress-5.4.2-zh_CN.tar.gz && action "wordpress解压成功"

#移动到wordpress到/data目录下
mv wordpress/ /data

#修改wordpress文件权限
chown -R apache.apache /data/wordpress/

echo -e "\e[1;33m LAMP部署wordpress已完成,配置主机域名进行页面安装 \e[0m"

#测试访问

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值