服务====一个lamp的脚本以及基于lamp安装wordpress

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务====一个lamp的脚本以及基于lamp安装wordpress相关的知识,希望对你有一定的参考价值。

#!/bin/bash


#部署一个LAMP的环境
#文档整理人:dingxue
#整理日期:2017-10-6
#提取部署好yum环境,也可以使用网络yum操作
#说明:本文档部署环境的机器是:Linux redhat_6.5_x64
#请将所需的源码包拷贝到服务器的"/usr/local/lamp/"目录里面
log_file="/usr/local/lamp_install.log"
[ -f $log_file ] && > $log_file
echo -e "\t`date +"%F %T"` 开始部署环境" | tee -a $log_file
c_err(){
        echo -e "\033[5;31m`date +"%F %T"`------ [email protected] ------ \033[0m" | tee -a $log_file
}

c_scc(){
        echo -e "\033[32m`date +"%F %T"`------ [email protected] ------ \033[0m" | tee -a $log_file
}

#退出状态检查
#echo $? 
        #--> 1  表示rpm包安装失败
        #--> 2  表示iptables或selinux关闭失败
        #--> 5  表示/usr/local/src/lamp文件不存在
        #--> 10 表示apache安装失败
        #--> 15 表示cmake安装失败
        #--> 20 表示mysql安装失败
       
        #--> 26 表示php安装失败
        

#遇到yum不能用的时候,使用下面的方式操作
# wget -q http://mirrors.tencentyun.com/install/softinst.sh && chmod +x softinst.sh && ./softinst.sh 
yum -y install gcc* &> /dev/null
[ $? -ne 0 ] && c_err "rpm package install fail!!" && exit 1 || c_scc "rpm package install Success!!"

#off iptables
service iptables stop &>/dev/null
chkconfig iptables off &>/dev/null
[ $? -ne 0 ] && c_err "iptables Close fail !!" && exit 2 || c_scc "iptables Success Close!!"


#off selinux    (修改配置文件关闭selinux,需要重启机器才能生效)
sed -i.bak ‘s/SELINUX=enforcing/#&/‘ /etc/selinux/config
sed -i ‘s/SELINUXTYPE=targeted/#&/‘ /etc/selinux/config
sed -i ‘$a SELINUX=disabled‘ /etc/selinux/config
#使用getenforce可以查询当前selinux的状态(Enforcing-开启1、permissive-->关闭0)
#临时关闭(不用重启机器) (0 --> permissive,1 --> Enforcing)
setenforce 0 &> /dev/null
[ $? -ne 0 ] && c_err "selinux Close fail !!" && exit 2 || c_scc "selinux Success Close!!"



#The installation package path is stored in the same "/usr/local/src"

[ ! -d /usr/local/lamp/ ] && mkdir -p /usr/local/lamp/ && c_scc "lamp文件是空的,请拷贝相关源码包!!"&& exit 5

#转换文件格式. win>>>linux
yum -y install dos2unix &> /dev/null


##################################################################
######                  http(apache) server install                                     ######
##################################################################
rpm_http=`rpm -qa | grep httpd | wc -l`
[ $rpm_http -ne 0 ] && rpm -e `rpm -qa | grep httpd` --nodeps
#测试使用curl
yum -y install curl-devel &> /dev/null

cd /usr/local/lamp
tar xf httpd-2.2.17.tar.gz -C ../
cd ../httpd-2.2.17/
./configure --prefix=/usr/local/httpd --disable-authn-file --disable-authn-default --disable-authz-groupfile --disable-authz-user --disable-authz-default --disable-auth-basic --disable-include --enable-so --with-mpm=prefork &>/dev/null
#选项解释:
#--prefix=/usr/local/apache2    -->     指定安装目录
#--enable-so                                    -->     允许运行时加载DSO模块
#--with-mpm=prefork                             -->     指定使用的MPM的类型
make &> /dev/null && make install &> /dev/null
apache_num=`echo $?`
[ $apache_num -ne 0 ] && c_err "apache install fail" && exit 10 || c_scc "apache install Success"
/bin/cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
sed -i ‘2i #chkconfig: 35 85 21‘ /etc/init.d/httpd
chkconfig --add httpd

sed -i ‘97 s/#//‘ /usr/local/httpd/conf/httpd.conf
sed -i ‘97 s/example/benet/‘ /usr/local/httpd/conf/httpd.conf
#配置文件53行内容是加载php的内容,由于还没有安装php,故暂时禁用,待安装完php后在开启
sed -i ‘53 s/^/#/‘ /usr/local/httpd/conf/httpd.conf

/usr/local/httpd/bin/apachectl start            #启动apache服务器
#service httpd start  需要自己配置该启动方式

curl http://127.0.0.1 &> /dev/null
[ $? -eq 0 ] && c_scc "web server Can normally access!!" || c_err "web server Access failed!!"

#在客户端的机器上输入:http://192.168.2.6查看是否可以打开默认网页
##################################################################
######                          mysql server install                                    ######
##################################################################
rpm_mysql=`rpm -qa | grep mysql | wc -l`
[ $rpm_mysql -ne 0 ] && rpm -e `rpm -qa | grep mysql` --nodeps

groupadd mysql &> /dev/null                                             #创建mysql组
useradd -M -s /sbin/nologin mysql -g mysql                              #创建mysql用户
chown -R mysql:mysql /usr/local/mysql  &> /dev/null     #将目录属主属组给改为mysql

#需要使用cmake编译,因此需要提前安装cmake
#可以使用yum 安装 --> yum -y install cmake
cd /usr/local/lamp
tar xf cmake-2.8.6.tar.gz -C /usr/local
cd /usr/local/cmake-2.8.6/
./bootstrap --prefix=/usr/local/cmake &> /dev/null
gmake &> /dev/null && gmake install &> /dev/null
cmake_num=`echo $?`
[ $cmake_num -ne 0 ] && c_err "cmake install fail" && exit 15 || c_scc "cmake install Success"

#mysql 所需rpm package
yum -y install ncurses-devel* &> /dev/null
#源码安装mysql
cd /usr/local/lamp
tar xf mysql-5.5.22.tar.gz -C /usr/local
cd /usr/local/mysql-5.5.22/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

#-DDEFAULT_COLLATION=utf8_general_ci 
#-DMYSQL_TCP_PORT=3306                                          -->     MySQL的监听端口
make &> /dev/null && make install &>/dev/null   #mysql数据库编译安装需要等待一定时间,大约20分钟
mysql_num=`echo $?`
[ $mysql_num -ne 0 ] && c_err "mysql install fail" && exit 20 || c_scc "mysql install Success"

#源码安装完后要进行数据库的初始化操作
cd /usr/local/mysql-5.5.22/
rm -rf /etc/my.cnf
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld        #复制到系统,制作启动服务
/usr/local/mysql/scripts/mysql_install_db   --user=mysql --basedir=/usr/local/mysql  --datadir=/usr/local/mysql/data/
chmod 755 /etc/init.d/mysqld                                            #修改属性
chkconfig --add /etc/init.d/mysqld                                      #添加为服务
chkconfig  mysqld --level 235 on                                        #设置在235



/etc/init.d/mysqld start &> /dev/null
#service mysqld start
netstat -nltp | grep ‘3306‘ &> /dev/null
[ $? -eq 0 ] && c_scc "3306 port open!!" || c_err "3306 port off!!" #检查3306端口是否开通 



#让mysql可以正常执行,需要导入一下命令
echo "PATH=$PATH:/usr/local/mysql/bin"  >> /etc/profile
source /etc/profile
[ $? -eq 0 ] && c_scc "mysql server Can normally access!!" || c_err "mysql server Access failed!!"
. /etc/profile
. /etc/profile
#[[email protected] ~]#mysql 或 /usr/local/mysql/bin/mysql --> 测试mysql是否正常,没有密码直接进入数据库

##################################################################
######                          PHP server install                                              ######
##################################################################

rpm -e php php-cli php-ldap php-common php-mysql --nodeps   &>/dev/null
yum -y install zlib-devel* libxml2-devel*

#安装扩展工具
#安装libmcrypt
cd /usr/local/lamp
tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/
cd /usr/src/libmcrypt-2.5.8/
./configure && make && make install

[ $? -eq 0 ] && echo "success" || echo "fail" exit
ln -s /usr/local/lib/libmcrypt.* /usr/lib/


#安装mhash
cd /usr/local/lamp
tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/
cd /usr/src/mhash-0.9.9.9/
./configure && make && make install

ln -s /usr/local/lib/libmhash* /usr/lib/

安装mcrypt
cd /usr/local/lamp
tar zxf mcrypt-2.6.8.tar.gz -C /usr/src
cd /usr/src/mcrypt-2.6.8/
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
./configure && make && make install
./configure && make && make install
[ $? -eq 0 ] && echo "success" || echo "fail" exit

#安装php
cd /usr/local/lamp
tar zxf php-5.3.6.tar.gz -C /usr/src
cd /usr/src/php-5.3.6/
./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring
make && make install
[ $? -eq 0 ] && echo "success" || echo "fail" exit

#配置php
cp /usr/src/php-5.3.6/php.ini-development /usr/local/php5/php.ini

#安装扩展工具
cd /usr/local/lamp/

tar zxvf  ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src
cd /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/
cp ZendGuardLoader.so /usr/local/php5/lib/php

#修改php.ini配置文件
echo Zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so >> /usr/local/php5/php.ini
echo Zend_loader.enable=1 >> /usr/local/php5/php.ini

#httpd.conf 配置的调整

sed -i ‘310i AddType application/x-httpd-php .php‘ /usr/local/httpd/conf/httpd.conf
sed -i ‘167 s/html/php/‘ /usr/local/httpd/conf/httpd.conf
touch /usr/local/httpd/htdocs/ceshi.php
echo -e "<?php\nphpinfo();\n?>" > /usr/local/httpd/htdocs/ceshi.php  #测试apache与PHP是否可以调试通 
sed -i ‘53 s/^#//‘ /usr/local/httpd/conf/httpd.conf

/usr/local/httpd/bin/apachectl start &> /dev/null
/usr/local/httpd/bin/apachectl restart &> /dev/null

curl http://127.0.0.1/ceshi.php &> /dev/null
[ $? -eq 0 ] && c_scc "web server and php Access Success !!" || c_err "web server and php Access failed!!"

技术分享

需要的包如下,这是我用的包。

[[email protected] lamp]# ls

cmake-2.8.6.tar.gz      mcrypt-2.6.8.tar.gz   php-5.3.6.tar.gz

httpd-2.2.17.tar.gz     mhash-0.9.9.9.tar.gz  phpMyAdmin-3.3.10-all-languages.tar.gz

libmcrypt-2.5.8.tar.gz  mysql-5.5.22.tar.gz   ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

安装wordpress(我是在linux虚拟机里面)

1.安装phpMyadmin,在本地登录创建一个数据库用于wp 的数据库。

2.官网下载wordpress,解压文件。

3.找到安装的http的目录,在httpd的htdocs中创建一个文件夹,任意取名,最好叫wp.

4.把wp解压好的文件移动到该目录下

技术分享

技术分享

5.打开浏览器输入http://localhost/wp/wordpress安装向导安装即可。

本文出自 “IT生活” 博客,请务必保留此出处http://dingxue.blog.51cto.com/12290895/1970683

以上是关于服务====一个lamp的脚本以及基于lamp安装wordpress的主要内容,如果未能解决你的问题,请参考以下文章

实战!基于lamp安装Discuz论坛-技术流ken

基于ansible部署lamp架构(源码安装)

LAMP架构介绍MySQL和MariaDB介绍MySQL安装

基于KVM分机部署LAMP,并安装wordpress

Yum一键安装企业级lamp服务环境-技术流ken

LAMP架构介绍,MYSQL和MariaDB介绍,MYSQL安装