服务器群集——源码编译安装LAMP

一、Apache网站服务

1.Apache简介

(1) Apache起源

  • 源于A Patchy Server,著名的开源Web服务软件
  • 1995年时,发布Apache服务程序的1 .0版本
  • 由Apache软件基金会(ASF) 负责维护
  • 最新的名称为“Apache HTTP Server”
  • 官方站点: ht:/:ttdt .apache.org/
    Apache简介2-2

(2)主要特点

  • 开放源代码、跨平台应用(apr帮助跨平台)
  • 支持多种网页编程语言
  • 模块化设计、运行稳定、良好的安全性

(3)软件版本

1.X

  • 目前最高版本是1.3,运行稳定
  • 向下兼容性较好,但缺乏- 些较新的功能
    2.X
  • 目前最高版本是2.4.
  • 具有更多的功能特性
  • 与1.X相比,配置管理风格存在较大差异

2.编译安装httpd服务器

1.准备工作
[root@www ~]# rpm -e httpd --nodeps  //先卸载rpm安装的httpd,--nodeps忽略软件包依赖性
[root@www ~]# yum install -y apr-util-devel pcre-devel  //安装相关依赖包
2.源码编译及安装
[root@www ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src   //解包,将下载获得的httpd源码包解压并释放到/usr/src目录下
[root@www ~]# cd /usr/src/httpd-2.4.25/      //切换到展开后的源码目录中
[root@www httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi //--prefix:指定将httpd服务程序安装到哪个目录;--enable-so:启动动态加载模块支持,开启核心功能模块,使httpd具备扩展功能能力;--enable-rewrite:启用网页地址重写功能,做防盗链,网站优化及目录迁移维护;--enable-charset-lite:启用字符集支持,支持使用各种字符集编码的网页;--enable-cgi:启用CGI脚本程序支持,定义规范,便于扩展网页的应用访问能力。
[root@www httpd-2.4.25]# make   //编译 
[root@www httpd-2.4.25]# make install  //安装
3.确认安装结果
[root@www ~]# ls /usr/local/httpd
bin cgi-bin eror icons logs manual
build conf htdocs include man modules
bin:存放执行程序文件
conf:存放配置问价
htdoc:存放网页文档
logs:存放日志文件
modules:存放各种模块文件
cgi-bin:存放各种CGI程序文件
4.优化执行路径
[root@www ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin    //为执行程序链接添加符号链接(软链接)
[root@www ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl
Irwxrwxrwx 1 root root 30 5月10 06:20 /usr/ocal/bin/apachectl ->/usr/local/httpd/bin/apachectl
Irwxrwxrwx 1 root root 265月10 06:20 /usr/local/bin/httpd ->/usr/local/httpd/bin/httpd
5.添加httpd系统服务
- 通过systemctl进行管理系统服务
[root@www system]# vim /lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PlFile-/s/locaclttptd/og/httpd.pid
ExecStart=/usr/local/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RetartSec=42s
[Install]
WantedBy=graphical.target

[root@www system]# systemctl enable httpd.service
[root@www system]# systemctl is-enabled httpd.service
enabled

3.httpd服务的目录结构

主要目录和文件
服务目录: /usr/local/httpd/
主配置文件: /usr/local/httpd/conf/httpd.conf //配置文件
网页目录: /usr/ocal/httpd/htdocs/
服务脚本: /s/local/httpd/bin/apachectl //启动脚本
执行程序: /usr/local/httpd/bin/httpd
访问日志: /usr/local/httpd/log/access_ log
错误日志: /sr/locahlttpd/og/error
_log
httpd服务器基本配置

4.Web站点部署过程

1.确定网站名字、 IP地址
2.配置并启动httpd服务
[root@www ~]# vim /uslocal/httpd/confttpd.conf
ServerName www.kgc.com
[root@www ~]# /sr/localhttpd/bin/apachectl -t // 验证语法是否正确
Syntax OK
[root@www ~]# systemctl restart httpd

5.全局配置项:决定httpd服务器的全局运行参数

ServerRoot "/usrlocalttpd"
Listen 80                          //要改的地方
User daemon
Group daemon
ServerAdmin webmaster@kgc.com
ServerName www.kgc.com             //要改的地方
DocumentRoot "/usr/local/httpd/htdocs"
DirectoryIndex index.html index.php
ErrorLog logs/error log
LogLevel warn
CustomLog logs/access_ log common
PidFile logs/httpd.pid
CharsetDefault UTF-8
Include conf/extra/httpd-default.conf
......

6.常用的全局配置参数

  • ServerRoot:服务目录 安装路径
  • Listen:监听的IP地址、端口号
  • User:运行服务的用户身份
  • Group:运行服务的组身份
  • ServerAdmin:管理员邮箱
  • ServerName:网站服务器的域名
  • DocumentRoot:网页文档的根目录
  • DirectoryIndex:默认的索引页文件
  • ErrorLog:设置错误日志文件的路径
  • LogLevel:记录日志的级别,默认为warn
  • CustomLog:访问日志文件的位置
  • PidFile: 保存httpd进程PID号的文件
  • AddDefaultCharset: 设置站点中网页默认的字符集编码
  • Timeout:网络连接超时,默认为300秒
  • KeepAlive:是否保持连接,可选On或Off
  • MaxKeepAliveRequests:每次连接最多请求文件数
  • KeepAlive’ Timeout:保持连接状态时的超时时间
  • Include:需要包含进来的其他配置文件

7.区域配置项

  • 使用一对组合标记,限定了配置项的作用范围
<Directory />
Options FollowSymLinks
AllowOverride none
**Require all denied**
</Directory>

设置黑白名单,允许哪些用户访问

二、mysql服务

1、MySQL的编译安装

1.MySQL 5.X系列版本的使用最为广泛,稳定性、兼容性都不错,此处选用mysql-5.6.36.tar.gz源码包
2.准备工作
- 确认没有使用RPM方式安装mysql-server、mysq|
- 安装光盘自带的ncurses-devel包
- 安装cmake包
[root@www ~]# tar zxf cmake-2.8.6.tar.gz
[root@www ~]# cd cmake-2.8.6
[root@www cmake-2.8.6]# .configure
[rootwww cmake-2.8.6]# gmake && gmake instll
3.源码编译及安装
[root@www ~]# groupadd mysql
[root@www ~]# useradd -M -S /sbin/nologin mysql -g mysql
[root@www ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src
[root@www ~]# cd /usr/src/mysq|-5.6.36
[root@www mysql-5.6.36]# cmake -DCMAKE_ INSTALL PREFIX=/sr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT CHARSET=utf8 -DDEFAULT_ COLLATION=utf8_ general_ ci -DWITH_ EXTRA_ CHARSETS=all
[root@www mysql-5.6.36]# make && make install
4.安装后调整
[root@www mysq|-5.6.36]# chown -R mysql:mysql /usrloca/mysql
[root@www mysq|-5.6.36]# rm -rf /etc/my.cnf
[root@www mysq|-5.6.36]# cp suppor-files/my-default.cnf /etc/my.cnf
[root@www mysq|-5.6.36]# /usr/local/mysql/scripts/mysql install db -user=mysql --basedir=/usrlocal/mysql --datadir-/usr/local/mysql/data/
[root@www mysql-5.6.36]# echo "PATH=$PATH:/usrlocal/mysql/bin"》>>/etc/profile
[root@www mysql-5.6.36]# . /etc/profile
5.启动MySQL服务
[root@www mysql-5.6.36]# cp support-files/mysql.server /etc/rc.d/init.d/ mysqld
[root@www mysql-5.6 36]# chmod +x /etc/rc.d/init.d/mysqld
[root@www mysq|-5.6.36]# chkconfig --add mysqld
[root@www mysql-5. 636]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/uslocal/mysq/daa/www.err'... SUCCESS!
[root@www mysql-5.6 36]# /etc/init.d/mysqld status
SUCCESS! MySQL running (58860)
[root@www mysql-5.6.36]# netstat -anpt I grep mysqld
tcp6	0	0 ::3306	.	LISTEN 41548/mysqld

2、登录及退出MySQL环境

1.连接并登录到MySQL操作环境

mysql -u用户名[p]
提示符: mysq|>

2.设置数据库用户的密码

mysqladmin -u root [-p] password 新密码

3.退出MySQL操作环境

mysql> exit

三、PHP服务

1.准备工作
确认没有使用RPM方式安装PHP及相关依赖包
2.安装扩展工具库
数据加密工具libmcypt. mhash. mcrypt
[root@www ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps
[root@www Packages]# rpm -ivh zlib-devel-1.2.7-17.el7.x86_ 64.rpm libxml2-devel-2.9.1-6.el7_ _2.3.x86 64.rpm xz-devel-5.2.2-1.el7 .x86_ _64.rpm
3.编译安装PHP
[root@www ~]# tar zxf php-5.5.38.tar.gz -C /usr/src
[root@www ~]# cd /usr/src/php-5.5.38
[root@www php-5.5.38]# ./configure --prefix=/usr/local/php5 \
--with-mcrypt \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_ config \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring
[root@www php-5.5.38]# make && make install

四、LAMP机构应用实例

1.LAMP平台概述

  • 什么是LAMP
    目前最为成熟的-种企业网站应用模式, 可提供动态Web站点应用及开发环境
  • 构成组件
    Linux、Apache、 MySQL、 PHP/Per/Python
  • LAMP的优势
    成本低廉
    可定制、易于开发
    方便易用、安全和稳定

2.设置LAMP组件环境

1.php.ini配置调整

[rootwww ~]# tar zxf zend-ladr-p5.5-inux_x86_ 64. _update1.tar.gz C /usr/src/
[roo@www ~]# cd /usr/src/zend-loader-php5.5-linux-x86_64/
[root@www zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php
[root@www php-5.3.x]# vim /usr/local/php5/php.ini
......
zend_ extension=/us/local/php5/lib/php/ZendGuardl oader.so
zend_ loader.enable=1

2.http.conf配置调整
使httpd服务器支持PHP页面解析功能

[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
......
LoadModule php5_ module modules/libphp5.so
AddType application/x-httpd-php .php
DirectoryIndex index.php index.htmI
#Include conf/extra/httpd-vhosts.conf
[root@www ~]# systemctl restart httpd

3.测试LAMP协同工作

  • 测试PHP网页能否正确显示
  • 测试PHP网页能否访问MySQL数据库
    [root@www ~]# vim /usr/local/httpd/htdocs/test1.php
<?php
phpinfo( ); 
?>
  • 测试PHP网页能否正确显示:
  • 测试PHP网页能否访问MySQL数据库

4.使用phpMyAdmin系统

  • 创建新的库、新的表
  • 表及数据记录的管理
  • 直接执行MySQL查询语句

五.实验

实验目的:搭建LAMP架构,完成一个论坛的搭建
实验环境:VMware虚拟机中linux服务器
实验步骤:

[root@promote ~]# iptables -F      //关闭防火墙
[root@promote ~]# setenforce 0      //关闭核心防护
[root@promote ~]# cd /opt
[root@promote opt]# mkdir apache mysql php     //创建新目录
1、安装Apache
[root@promote opt]# cd apache/        //将三个软件压缩包用xshell放入该目录中
[root@promote apache]# tar zxvf apr-1.6.2.tar.gz       //解压三个压缩包
[root@promote apache]# tar zxvf apr-util-1.6.0.tar.gz 
[root@promote apache]# tar jxvf httpd-2.4.29.tar.bz2 
[root@promote apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr    //将apr移入httpd的安装包里面
[root@promote apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@promote apache]#yum -y install gcc gcc-c++ make pcre-devel expat-devel perl //pcre支持正则表达式   expat支持解析xml格式  perl支持perl语言
[root@promote apache]# cd httpd-2.4.29/
[root@promote httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi    //--prefix:指定httpd服务安装目录;--enable-so:启动动态加载模块支持;--enable-rewrite:启动网页地址重写功能;--enable-charset-lite:启动字符集支持;--enable-cgi :启动CGI脚本支持
[root@promote httpd-2.4.29]# make    //编译
[root@promote httpd-2.4.29]# make install   //安装
[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd//将apchectl交给service管理
[root@promote httpd-2.4.29]# vim /etc/init.d/httpd 
# chkconfig: 35 85 21 //服务识别参数,在级别3,5中启动;启动和关闭的顺序分别为85、21
# description: Apache is a World Wide Web server
[root@promote httpd-2.4.29]# chkconfig --add httpd    //将httpd加入到service管理器,将httpd添加为系统服务
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf //设置软连接
[root@localhost httpd-2.4.29]# vim /etc/httpd.conf 
Listen 192.168.200.120:80
#Listen 80
ServerName www.kgc.com:80
:wq    //保存
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin//
[root@localhost httpd-2.4.29]# httpd -t     //验证语法
Syntax OK
[root@localhost httpd-2.4.29]# service httpd start    //启动服务
[root@localhost httpd-2.4.29]# netstat -ntap | grep 80   //查看端口
tcp        0      0 192.168.200.130:80      0.0.0.0:*               LISTEN      44505/httpd
Apache安装完成
2、安装mysql
[root@localhost opt]# cd /opt/mysql/
[root@localhost mysql]# ls   //将压缩包通过xshell拖入目录中
mysql-5.6.26.tar.gz
[root@promote mysql]# tar xzvf mysql-5.6.26.tar.gz //解压缩
[root@promote mysql]# cd mysql-5.6.26/
[root@promote mysql]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \        //指定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@promote mysql-5.6.26]# make
[root@promote mysql-5.6.26]# make install
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf   //覆盖原有配置文件
cp:是否覆盖"/etc/my.cnf"? yes
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld  //将启动脚本交给service管理
[root@localhost mysql-5.6.26]# cd /etc/init.d/     
[root@localhost init.d]# chmod +x mysqld       //增加执行权限
[root@localhost init.d]# chkconfig --add /etc/init.d/mysqld   //告诉service管理
[root@localhost init.d]# chkconfig --level 35 mysqld on       //开机自启动
[root@localhost init.d]# vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin  //插入最后一行,为了方便在任何目录下使用mysql,需要设置环境变量
[root@localhost init.d]# source /etc/profile    //加载配置
[root@localhost init.d]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin    //加载成功
[root@localhost init.d]# useradd -s /sbin/nologin mysql    //添加管理mysql进程的用户mysql
[root@localhost init.d]# id mysql
uid=1001(mysql) gid=1001(mysql) 组=1001(mysql)
[root@localhost init.d]# chown -R mysql.mysql /usr/local/mysql/       //使属主属组都属于mysql用户
[root@localhost init.d]# cd /usr/local/mysql/
[root@localhost mysql]# cd scripts/
[root@localhost scripts]# ls
mysql_install_db
[root@localhost scripts]#/usr/local/mysql/scripts/mysql_install_db \        
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql                      // //以用户mysql身份执行初始化脚本mysql_install_db,指定数据存放目录
[root@localhost scripts]# vim /etc/init.d/mysqld         //编辑启动脚本
basedir=/usr/local/mysql                           //指定根目录
datadir=/home/mysql                               //指定数据存放位置
[root@localhost scripts]# service mysqld start    //开启mysqld服务
Starting MySQL. SUCCESS! 
[root@localhost scripts]# netstat -ntap | grep 3306          //查看端口情况
tcp6       0      0 :::3306                 :::*                    LISTEN      118373/mysqld
[root@localhost scripts]# mysqladmin -u root -p password "abc123"     //设置账户mysql密码
Enter password:    //原始密码为空,空格                                                                                 
Warning: Using a password on the command line interface can be insecure.
3.安装php
[root@localhost scripts]#yum -y install \              //安装环境
gd \
libpng \
libpng-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel     
[root@localhost scripts]# cd /opt/php/
插入压缩包
[root@localhost php]# ls
php-5.6.11.tar.bz2
[root@localhost php]# tar jxvf php-5.6.11.tar.bz2         //解压压缩包
[root@localhost php]# cd php-5.6.11/
[root@localhost php]#./configure \      
--prefix=/usr/local/php5 \               		//php服务安装目录
--with-gd \          					//安装GD库                                   
--with-zlib \						//解压缩工具
--with-apxs2=/usr/local/httpd/bin/apxs \		//设置Apache服务的apxs模块支持程序的文件位置
--with-mysql=/usr/local/mysql \				//设置mysql数据库服务安装位置
--with-config-file-path=/usr/local/php5 \		//设置php配置文件php.ini存放位置
--enable-mbstring					//启用多字节字符串功能
[root@localhost php-5.6.11]# make
[root@localhost php-5.6.11]# 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/      //让系统去识别命令
[root@localhost php-5.6.11]# vim /etc/httpd.conf    //修改Apache配置文件
LoadModule php5_module        modules/libphp5.so   //系统自动添加php5
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html    //添加index.php
[root@promote ~]# service httpd restart    //重启Apache服务
[root@promote ~]# cd /usr/local/httpd/htdocs/
[root@promote htdocs]# ls
index.html
[root@promote htdocs]# vim index.html 
<?php
phpinfo();
?>
[root@promote htdocs]# mv index.html index.php    //改成php
[root@promote htdocs]# vim index.php         //查看
打开谷歌浏览器输入  192.168.200.120/index.php     成功
[root@promote htdocs]# ls /home/mysql/
auto.cnf  ib_logfile0  localhost.localdomain.err  mysql       performance_schema
ibdata1   ib_logfile1  localhost.localdomain.pid  mysql.sock  test   //查看sock
4、安装论坛
[root@promote htdocs]# cd /opt/
[root@promote opt]# ls
apache  Discuz_X2.5_SC_UTF8.zip  mysql  php  rh  //插入论坛压缩包
[root@promote opt]# unzip Discuz_X2.5_SC_UTF8.zip  //解压缩
[root@promote opt]# ls
apache  Discuz_X2.5_SC_UTF8.zip  mysql  php  readme  rh  upload  utility
[root@promote opt]# cp -r upload/ /usr/local/httpd/htdocs/bbs
[root@promote opt]# cd /usr/local/httpd/htdocs/
[root@promote htdocs]# ls
bbs  index.php
[root@promote htdocs]# cd bbs/
[root@promote bbs]# ls
admin.php  config           data         home.php    misc.php    search.php  uc_client
api        connect.php      favicon.ico  index.php   plugin.php  source      uc_server
api.php    cp.php           forum.php    install     portal.php  static      userapp.php
archiver   crossdomain.xml  group.php    member.php  robots.txt  template
[root@promote bbs]# chown -R daemon ./config        //给权限
[root@promote bbs]# chown -R daemon ./data
[root@promote bbs]# chown -R daemon ./uc_client
[root@promote bbs]# chown -R daemon ./uc_server/data
[root@promote bbs]# mysql -uroot -p
Enter password:       //密码abc123
mysql> create database bbs;      //创建数据库
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+-------------- ----- -+
| Database            |
+------------- --- ----+
| information_schema  |
| bbs                 |
| mysql               |
| performance_schema  |
| test                |
+--------------   - -----+
5 rows in set (0.00 sec)
mysql> use bbs;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> 
mysql> grant all on bbs.* to 'bbsuser'@'%' identified by 'admin123';  //设置论坛管理账户名和密码
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;                                //刷新数据库
Query OK, 0 rows affected (0.01 sec)
5、登录浏览器
http://192.168.200.120/bbs/admin.php   后台登录
安装论坛
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值