共计 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