阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

基于源码包搭建LAMP 的脚本

159次阅读
没有评论

共计 4979 个字符,预计需要花费 13 分钟才能阅读完成。

LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的 Web 框架,该框架包括:Linux 操作系统,Apache 网络服务器,MySQL 数据库,Perl、PHP 或者 Python 编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和 Java/J2EE 架构相比,LAMP 具有 Web 资源丰富、轻量、快速开发等特点,微软的.NET 架构相比,LAMP 具有通用、跨平台、高性能、低价格的优势,因此 LAMP 无论是性能、质量还是价格都是企业搭建网站的首选平台。

对于大流量、大并发量的网站系统架构来说,除了硬件上使用高性能的服务器、负载均衡、CDN 等之外,在软件架构上需要重点关注下面几个环节:使用高性能的操作系统(OS)、高性能的网页服务器(Web Server)、高性能的数据库(Databse)、高效率的编程语言等。

我选择的包是 httpd-2.2.25.tar.gz    mysql-5.1.34.tar.gz  php-5.4.19.tar.gz

#!/bin/bash

 

APACHEDIR=/usr/local/apache

MYSQLDIR=/usr/local/mysql

PHPDIR=/usr/local/php

HTTPD=httpd-2.2.25

MYSQL=mysql-5.1.34

PHP=php-5.4.19

TAR=.tar.gz tar 包的压缩类型

APACHEMBER=81 apache 配置失败后返回来的值

APACHENU=82 apache 启动失败后返回来的值

MYSQLMBER=83 mysql 配置失败后返回来的值

MYSQLNU=84 mysql 初始化失败后返回来的值

MYSQLNUMBER=85 mysql 启动失败后返回的值

PHPMBER=86 php 配置失败后返回来的值

HTTPDPORT=$(lsof -i :80 | awk ‘NR==2{print $1}’ ) 占用 apache80 端口的进程名

MYSQLPORT=$(lsof -i :3306 | awk ‘NR==2{print $1}’ ) 占用 mysql3306 端口的进程名

 

netstat -nl | grep :80 &> /dev/null 查看 80 端口是否启用

 

if [$? -eq 0];then

 

pkill -9 $HTTPDPORT 杀死占用 80 端口的进程名

else

echo ” 80 port already by release”

fi

 

netstat -nl | grep :3306 &> /dev/null 查看 mysql3306 端口是否被占用

 

if [$? -eq 0];then

pkill -9 $MYSQLPORT 杀死占用 3306 端口的进程名

else

echo ” 3306 port already by release “

fi

 

for package in {gcc,gcc-c++,openssl-devel,openssl,ncurses-devel,libtermcap-devel,ncurses,libtermcap,libxml2,libxml2-devel} 为安装 LAMP 源码包搭建依懒环境

 

do

rpm -q $package &> /dev/null 判断这些包是否安装

if [$? != 0];then

yum -y install $package 如果没有安装进行安装

else

echo ” $package already install “

 

fi

 

done

 

echo “———————————————————————-“

echo ” install apache “

sleep 3

 

cd /root 进入家目录(因为我将我的源码包放到了自己的家目录下了)

 

tar -zxf /root/$HTTPD$TAR 解压 apache 文件

 

cd /root/$HTTPD 进入解压目录

 

./configure –prefix=$APACHEDIR –enable-so –enable-rewrite \进行配置

–enable-ssl –enable-cgi –enable-charset-lite \

–enable-suexec –with-suexec-caller=daemon \

–with-suexec-docroot=$APACHEDIR/htdocs 首页文件位置

if [$? -eq 0];then

make && make install 编译 完成后 安装

 

else

echo ” apache install failed “

exit $APACHEMBER 配置不成功返回值 值的数字前边已经定义

fi

cp $APACHEDIR/bin/apachectl /etc/init.d/apache 将 apache 启动脚本备考到 /etc/init.d/ 下实现开机启动

sed -i ‘2c # chkconfig: 35 85 15 ‘ /etc/init.d/apache 给 apache 启动脚本添加 开机启动的用户模式

sed -i ‘3c # description: Apache is a world web server’ /etc/init.d/apache apache 描述信息

sed -i ‘/#ServerName/s/www.examle.com/\*/’ $APACHEDIR/conf/httpd.conf 允许所有域名 可以不修改 可以修改为自己的域名

 

ln -s $APACHEDIR/bin/* /usr/sbin/ 将 apache 命令做个连接方便以后使用

 

chkconfig –add apache 将 apache 添加为开机启动

service apache start 启动 apache 服务

chkconfig apache on 设置为开机启动

if [$? -eq 0];then

echo “————————————————————————“

echo ” install mysql”

 

sleep 3

 

id mysql &> /dev/null 判断 mysql 这个用户是否存在

 

if [$? != 0];then

useradd mysql

else

echo “user mysql already exist”

 

fi

 

cd /root

 

tar -zxf /root/$MYSQL$TAR

 

cd /root/$MYSQL

 

./configure –prefix=$MYSQLDIR –with-charset=utf8 \

–with-collation=utf8_general_ci \

–with-extra-charsets=all \

–exec-prefix=$MYSQLDIR \

–with-client-ldflags=-all-static \

–with-mysqld-ldflags=-all-static \

–with-innodb –with-plugins=partition

 

if [$? -eq 0];then

make && make install

 

else

echo ” mysql install failed”

 

exit &MYSQLMBER

fi

 

test -f /etc/my.cnf

 

if [$? -eq 0];then

mv /etc/my.cnf /etc/my.conf

cp support-files/my-medium.cnf /etc/my.cnf

 

else

cp support-files/my-medium.cnf /etc/my.cnf

 

fi

 

cp support-files/mysql.server /etc/init.d/mysql && chmod +x /etc/init.d/mysql

cp support-files/mysql.server /etc/rc.d/init.d/mysql && chmod +x /etc/rc.d/init.d/mysql

 

chkconfig –add mysql

 

chown -R mysql.mysql $MYSQLDIR/*

 

ln -s $MYSQLDIR/bin/* /usr/sbin/

ln -s $MYSQLDIR/lib/mysql/* /usr/lib64/

ln -s $MYSQLDIR/include/mysql/* /usr/include/

sed -i ‘s/^skip-federated$/# skip-federated/’ /etc/my.cnf

 

mysql_install_db –user=mysql

 

if [$? -eq 0];then

:

else

echo ” mysql servier initialize failed “

exit $MYSQLNUMBER

fi

else

echo “apache start failed please check up after the continue “

exit $APACHENU

fi

 

service mysql restart

 

chkconfig mysql on

 

if [$? -eq 0];then

 

echo “———————————————————————–“

echo “install php”

sleep 3

 

cd /root

 

tar -zxf /root/$PHP$TAR

 

cd /root/$PHP

 

./configure –prefix=$PHPDIR –with-apxs2=$APACHEDIR/bin/apxs \

–with-mysql=$MYSQLDIR –with-config-file-php=$PHPDIR \

–enable-mbstring –enable-sockets \

 

if [$? -eq 0];then

make && make install

 

else

echo “php install failed”

exit $PHPMBER

fi

 

cp php.ini-development $PHPDIR/php/php.ini

sed -i ‘311a AddType application/x-httpd-php .php’ $APACHEDIR/conf/httpd.conf

sed -i ‘168c DirectoryIndex index.html index.html index.php’ $APACHEDIR/conf/httpd.conf

service apache stop && service apache start && chkconfig apache on

 

else

 

echo “mysql start failed please check up after the continue”

exit $MYSQLNU

 

fi

 

for delete in {$MYSQL,$PHP,$HTTPD}

 

do

rm -rf /root/$delete

 

done

 

测试

vim /usr/local/apache/htdocs/index.php

<?php

phpinfo();

?>

这是 php 测试网页

 

 

vim /usr/local/apache/htdocs/test.php

<?php

$links=mysql_connect(“localhost”,”root”,””);

if($links){

echo“like db ok!!!”;

}

else{

echo“link db no!!!”;

}

?>

mysql 基于 php 测试网页

推荐阅读

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计4979字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中