重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一、LAMP架构概念
成都创新互联服务项目包括垫江网站建设、垫江网站制作、垫江网页制作以及垫江网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,垫江网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到垫江省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
二、LAMP结构的安装与配置
2-1 手工编译安装http服务
2-2 手工编译安装MySQL数据库
2-3 手工编译安装PHP工具
三、安装Discuz论坛(开源论坛)
四、小福利
LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:
是目前最为成熟的一-种企业网站应用模式,可提供动态Web站点应用及开发环境。
本次实验所需的所有服务的源码包均已上传到网盘,各位可自行拷贝使用(都是开源软件)
链接:https://pan.baidu.com/s/1H_k-1lXH4Pjkrsl2EN4CNA 提取码:r0pi
使用mount.cifs
将整个软件目录挂载到Linux中或者直接将整个目录拷贝进Linux均可。(本次实验挂载点为/mnt/目录)
安装Apache服务
解压Apache服务所需的三个软件包
[root@localhost ~]#cd /mnt
[root@localhost mnt]# tar xf apr-1.6.2.tar.gz -C /opt //将压缩包解压到opt目录下
[root@localhost mnt]# tar xf apr-util-1.6.0.tar.gz -C /opt
[root@localhost mnt]# tar xf httpd-2.4.29.tar.gz -C /opt
将apr、apr-util两个插件移入httpd的指定位置
[root@localhost mnt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost mnt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
全部进行移动后,开始安装所需的环境包(\为换行显示)
[root@localhost mnt]# yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
其中,
gcc、gcc-c++:c语言和c++的编译器
make:编译工具
pcre、pcre-devel:pcre语言的开发、编译器
expat-devel:使新建的网站能够解析xml格式的文件
安装结束后,移动到http软件包内,对“configure”文件进行手工编译(一定要进软件包内!!)
[root@localhost mnt]# cd httpd-2.4.29
[root@localhost httpd-2.4.29]# ./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
[root@localhost httpd-2.4.29]# make && make install //编译并进行安装(需要等待一定时间)
其中:
--prefix:后面为自定义安装的路径
--enable-so :开启核心模块
--enable-rewrite :开启重写功能
--enable-charset-lite :开启字符集支持
--enable-cgi:开启通用网关接口(cgj为一种编码格式)
完成后,开始添加启动脚本,方便系统能够更好的控制服务的开启与关闭,并顺手将httpd加入到SERVICE管理器中。
[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
//添加启动脚本
[root@localhost httpd-2.4.29]# chkconfig --add httpd //将httpd加入到SERVICE管理器
接着进入Apache服务的配置文件中,按照下图进行修改
最后为便于管理我们可以将配置文件与启动相关文件做软链接(可以不加),关闭防火墙,并启动Apache服务
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
[root@localhost httpd-2.4.29]# systemctl stop firewalld.service
[root@localhost httpd-2.4.29]# setenforce 0
[root@localhost httpd-2.4.29]# service httpd start
安装Mysql数据库
[root@localhost ~]# yum install -y ncurses-devel autoconf cmake //安转环境包以及cmake编译器
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# tar xzvf mysql-5.6.26.tar.gz -C /opt //对mysql源码包进行解压
对源码包进行编译(\为换行)
[root@localhost mnt]# cd /opt/mysql-5.6.26
[root@localhost mysql-5.6.26]# cmake \ //对源码包进行编译
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
[root@localhost mysql-5.6.26]# make && make install //编译安装
其中,
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql :指定数据库安装目录
-DDEFAULT_CHARSET=utf8 :指定字符集
-DDEFAULT_COLLATION=utf8_general_ci :指定默认字符集
-DEXTRA_CHARSETS=all :指定扩展字符集
-DSYSCONFIDIR=/etc :指定配置文件目录
-DMYSQL_DATADIR=/home/mysql/ :指定数据库中数据文件存放位置
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock:定义sock文件
配置MySQL
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.6.26]# chmod 755 /etc/init.d/mysqld //授予执行权限
[root@localhost mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld //将数据库服务添加到管理器中
[root@localhost mysql-5.6.26]# chkconfig mysqld --level 35 on //开启数据库的3,5运行级别
[root@localhost mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile //启用数据库命令到系统环境变量
[root@localhost mysql-5.6.26]# source /etc/profile //启用系统环境变量
[root@localhost mysql-5.6.26]# echo $PATH //查看系统环境变量
[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql //创建mysql程序用户,禁止用于登录
[root@localhost mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/ //给/usr/local/mysql/目录下所有用户提权
[root@localhost mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql //初始化数据库,并指定用户数据信息到指定目录
[root@localhost mysql-5.6.26]# vim /etc/init.d/mysqld //编辑数据库配置文件
basedir=/usr/local/mysql //指定数据库自身安装路径
datadir=/home/mysql //指定指定数据库存放位置
开启数据库,并设置登录密码
[root@localhost mysql-5.6.26]# service mysqld start
[root@localhost mysql-5.6.26]# mysqladmin -u root -p password "123123" //给root账号设置密码
安装环境包,并解压源码包
[root@localhost mysql-5.6.26]# cd /mnt/
[root@localhost mnt]# yum -y install \
gd \
libpng \
libpng-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel
[root@localhost mnt]# tar xjvf php-5.6.11.tar.bz2 -C /opt
其中,
gd :图像化处理工具
libxml2-devel :支持解析,标签性语言
libjpeg-devel:支持jpg图片格式
编译并安装PHP工具
[root@localhost mnt]# cd /opt/php-5.6.11
[root@localhost php-5.6.11]# ./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring
[root@localhost php-5.6.11]# make && make install
[root@localhost php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini //对初始化文件进行覆盖,注意路径
[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/ //建立PHP命令软链接
[root@localhost php-5.6.11]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/
其中,
--prefix=/usr/local/php5 :指定PHP工具安装路径
--with-gd :gd库,用于图形化处理
--with-zlib :函数库
--with-apxs2=/usr/local/httpd/bin/apxs :用于给apache提供功能性模块
--with-mysql=/usr/local/mysql :关联已安装的数据库
--with-config-file-path=/usr/local/php5 :关联PHP配置
--enable-mbstring:将功能性模块进行加载
修改apache配置文件,并建立PHP主页
[root@localhost php-5.6.11]# vim /etc/httpd.conf
按G定位末行,添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
搜索DirectoryIndex,更改为
DirectoryIndex index.php index.html
wq保存退出
[root@localhost php-5.6.11]# vim /usr/local/httpd/htdocs/index.php //PHP主页
按i进行添加
wq保存退出
[root@localhost php-5.6.11]# service httpd restart //重启httpd服务
验证PHP网页
在浏览器中输入192.168.116.131/index.php
,能够出现下面的网页即视为成功
将论坛源码解压并放置到http站点中
[root@localhost php-5.6.11]# cd /mnt
[root@localhost mnt]# unzip Discuz_X2.5_SC_UTF8.zip -d /opt/Discuz
[root@localhost mnt]# cp -r /opt/Discuz/upload/ /usr/local/httpd/htdocs/bbs //放置于http站点中
建立bbs相关的数据库,并进行管理员密码的设置
[root@localhost mnt]# mysql -u root -p //进入MySQL数据库,密码为之前设定的
mysql> create database bbs; //在数据库中创建名为bbs的子数据库
mysql> GRANT all ON bbs.* TO 'zhy'@'%' IDENTIFIED BY '123123'; //对zhy用户进行提权,并设定密码为123123
mysql> flush privileges; //刷新数据库
mysql> quit
[root@localhost mnt]# cd /usr/local/httpd/htdocs/bbs/ //进入bbs目录
[root@localhost bbs]# chown -R daemon ./config/
[root@localhost bbs]# chown -R daemon ./data/
[root@localhost bbs]# chown -R daemon ./uc_client/data/cache/
[root@localhost bbs]# chown -R daemon ./uc_server/data/
//为各程序用户提升权限
完成论坛的安装
在浏览器中输入192.168.116.131/bbs
,即可进入安装流程
然后即可完成安装。
能看到这里,有没有觉得很烦?有没有能一键进行全自动、免交互的安装过程?
答案当然是有的!
#!/bin/bash
#一键自动构建LAMP架构(请使用source执行或者使用.命令执行)
#数据库默认密码为123123
#远程挂载
df -hT | grep -o "cifs"
if [ $? -ne 0 ];then
echo "Start mount"
yum install expect -y
read -p "请输入提供硬盘主机IP:" gongip
/usr/bin/expect <<-EOF
spawn mount.cifs //$gongip/LAMP-C7 /mnt/
expect {
"Password*"
{send "\r"}
}
expect eof
EOF
fi
#安装apache服务
cd /mnt/
tar zxf apr-1.6.2.tar.gz -C /opt
tar zxf apr-util-1.6.0.tar.gz -C /opt/
tar jxf httpd-2.4.29.tar.bz2 -C /opt/
cd /opt/
mv apr-1.6.2/ httpd-2.4.29/srclib/apr
mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
yum -y install gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
cd /opt/httpd-2.4.29/
./configure --prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
make && make install
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
sed -i -e '2a# chkconfig: 35 85 21\n# description: Apache is a World Wide Web server' /etc/init.d/httpd
chkconfig --add httpd
sed -i -e '197d' -e '196aServerName www.kgc.com:80' /usr/local/httpd/conf/httpd.conf
ip=`ifconfig ens33 | awk 'NR==2{print $2}'`
sed -i -e '52s/^/#/' -e '51d' -e "50aListen $ip:80" /usr/local/httpd/conf/httpd.conf
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
systemctl stop firewalld.service
setenforce 0
service httpd start
netstat -ntuap | grep httpd
if [ $? -eq 0 ];then
echo Apache服务启动
else
echo 启动失败
exit 1
fi
#安装mysql服务
echo "================================="
echo "安装mysql数据库,请稍后。。。"
sleep 3
yum install -y ncurses-devel autoconf cmake
cd /mnt/
tar zxf mysql-5.6.26.tar.gz -C /opt/
cd /opt/mysql-5.6.26
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
echo "进行编译安装,要很久,请稍后。。。"
make && make install
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add /etc/init.d/mysqld
chkconfig --level 235 mysqld on
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
echo $PATH | grep -o "mysql"
if [ $? -eq 0 ];then
echo "添加成功"
else
echo "失败"
exit 1
fi
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql
sed -i -e '47d' -e '46d' -e '45abasedir=/usr/local/mysql\ndatadir=/home/mysql' /etc/init.d/mysqld
service mysqld start
netstat -ntuap | grep mysqld
if [ $? -eq 0 ];then
echo Mysql数据库启动
else
echo 启动失败
exit 1
fi
/usr/bin/expect < /usr/local/httpd/htdocs/index.php <<-EOF
EOF
service httpd stop
service httpd start
rm -rf /opt/*
umount /mnt
echo "LAMP架构完成。脚本执行结束~~~~"