源码编译安装lamp——apache服务解析

一 常用的几种web服务

  1. apache 功能完善,资源占用率大,能处理动态请求
  2. nginx 高并发,轻量级别
  3. tomcat 实质是容器(web容器、servlet容器、JS容器)资源占用少,灵活
  4. IIS 微软万维网服务

二 Apache简介

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

软件版本
1.X
目前最高版本是1.3,运行稳定
向下兼容性较好,但缺乏一些较新的功能

2.X
目前最高版本是2.4
具有更多的功能特性
与1.X相比,配置管理风格存在较大差异

三 编译安装httpd服务器

  • 编译安装的优点
    具有较大的自由度,功能可定制
    可及时获得最新的软件版本
    普遍适用于大多数Linux版本,便于移植使用
  • 获得Apache服务器的源码包
    ●参考地址: http://httpd.apache.org/download.cgi

3.1 准备工作

1.卸载httpd及相关依赖环境包安装

rpm -e httpd --nodeps
yum install -y apr-util-devel pcre-devel  bzip2

apr-util-devel :实现跨平台
pcre-devel :让apache支持正则表达式

3.2 源码编译及安装

2.源码解压

[root@www~]# tar zxvf apr-1.6.2.tar-gz
[root@www~]# tar zxvf apr-util-1.6.0.tar.gz
[root@www~]# tar jxvf httpd-2.4.29.tar.bz2
#放到同一目录下
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
  1. 安装源码编译器及多种语言的支持
yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl

gcc gcc-c++ :源码编译器
make :编译工具,把配置文件转化成二进制文件
pcre-devel :使apache支持正则表达式的依赖包
expat-devel :支持底层的开发语言
perl :支持perl语言

4.执行configure脚本对安装模块进行设置

cd httpd-2.4.29
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

解释:
–prefix=/usr/local/httpd :指定安装路径
–enable-so :开启apache核心功能模块
–enable-rewrite :重写功能
–enable-charset-lite :支持字符集
–enable-cgi :通用网关接口,是web服务器运行外部程序的规范

5.make 配置文件构建出二进制文件
6.make install 安装

make && make install

添加系统服务

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
cd /etc/init.d/
vi httpd
编辑模式
#chkconfig: 35 85 21  //3 5级别自动运行 第85个启动 第21个关闭
#description: Apache is a World Wide Web server

查看系统服务

chkconfig --list

添加httpd为系统服务

chkconfig --add httpd

修改配置文件

vi /usr/local/httpd/conf/httpd.conf
ServerName www.yun.com:80
Listen 192.168.175.130:80
#Listen 80

验证语法

httpd -t
或apachectl -t

用软链接简化配置文件路径

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

四 Mysql 的编译安装

4.1 安装依赖环境

[root@localhost opt]# yum -y install ncurses-devel \     //函数库,提供了一系列的函数以便使用者调用它们去生成基于文本的用户界面
autoconf \                           //适应多种Unix类系统的 shell脚本的工具
cmake                               //cmake配置

4.2 解压源码包

tar zxvf mysql-5.6.26.tar.gz 

4.3 cmake配置

进入mysql目录

cd mysql-5.6.26.tar.gz
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

cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //指定安装路径
-DDEFAULT_CHARSET=utf8 \ //指定默认字符集,简体中文
-DDEFAULT_COLLATION=utf8_general_ci \ //指定默认使用的字符集校对规则
-DEXTRA_CHARSETS=all \ //扩展字符集,不但支持简体中文,可以支持所有的字符集
-DSYSCONFIDIR=/etc \ //指定配置文件的目录,还没安装前,配置文件/etc/my.cnf默认存在,需要覆盖此文件
-DMYSQL_DATADIR=/home/mysql/ \ //指定数据库数据的安放位置,当创建了mysql的程序用户时,此目录自动生成
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock/

4.4 make配置文件构建出二进制文件

编译,将源代码转换为可执行的程序

4.5 make install 安装

将编译完的httpd程序及相关目录,文件复制到预设的安装目录

make && make install

4.6 主配置文件、启动脚本、命令文件

主配置文件

[root@localhost mysql]# cp /opt/mysql-5.6.26/support-files/my-default.cnf /etc/my.cnf

启动脚本

[root@localhost mysql]# cp /opt/mysql-5.6.26/support-files/mysql.server /etc/init.d/mysqld
[root@localhost support-files]# chmod +x /etc/init.d/mysqld    //给与执行权限
[root@localhost init.d]# chkconfig --list      //查看到MySQL服务已经开机自启动后,下面的开机自启的命令可以不重复敲
[root@localhost init.d]# chkconfig mysqld --level 35 on   //开机自启动(init 3 ,init 5)

命令文件

[root@localhost ~]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

4.7 创建程序用户管理

[root@localhost ~]# useradd -s /sbin/nologin mysql    //程序用户,在家目录里会生成一个目录,且属主和属组都为自己
[root@localhost home]# ll
total 0
drwx------. 3 liang liang 78 Apr 11  2018 liang
drwx------  3 mysql mysql 78 Sep 29 04:04 mysql       //程序用户
[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql/    递归改变原本mysqld的工作目录的属主和属组为mysql。原本的属主和属组都为root,相当于程序用户mysql 接管了整个mysql

4.8 初始化数据库

[root@localhost scripts]#
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql  \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql                             //数据库初始化后就可以进行逻辑化的管理,比如创建库创建表等

4.9 在启动文件里指明工作目录和数据目录

[root@localhost scripts]# vi /etc/init.d/mysqld
......
basedir=/usr/local/mysql
datadir=/home/mysql
.......                                                           //当mysql启动时,就会关联上这两个目录

4.10 启动mysql

service mysqld start
显示Starting MySQL.. SUCCESS!
netstat -anpt | grep 3306
[root@localhost mysql]# mysqladmin -uroot -p password '123'       //默认数据库是没有密码的,用mysqladmin给数据库设定密码

五 编译安装PHP

5.1 安装依赖包

[root@localhost home]#
cd 
yum -y install \
gd \                          gd库,专门处理图片和图像
libpng \                    截图格式为png
libpng-devel \          专门处理png格式的图片
pcre \                       正则表达式
pcre-devel \             正则表达式
libxml2-devel \         支持xml格式,2是版本2
libjpeg-devel             支持jpg格式

5.2 解压源码包

[root@localhost opt]# tar jxvf  php-5.6.11.tar.bz2

5.3 ./configure 配置

先进入php目录:

cd php-5.6.11
./configure \
--prefix=/usr/local/php5 \               //指定安装路径
--with-gd \                              //开启gd库,专门处理图片和图像
--with-zlib \                            //支持php的函数 
--with-apxs2=/usr/local/httpd/bin/apxs \  //核心模块的命令,关联apache
--with-mysql=/usr/local/mysql \           //关联mysql
--with-config-file-path=/usr/local/php5 \   //配置文件的路径
--enable-mbstring                           //多字节字符串,文本处理

5.4 make配置文件构建出二进制文件

编译,将源代码转换为可执行的程序

5.5 make install 安装

将编译完的httpd程序及相关目录,文件复制到预设的安装目录

make && make install

5.6 主配置文件、启动脚本、命令文件

主配置文件

[root@localhost php-5.6.11]# 
cp php.ini-development /usr/local/php5/php.ini   //php的配置文件是.ini格式

启动脚本

vim /etc/httpd.conf
在AddType application/x-gzip .gz .tgz下面添加两条
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

找到站点首页,把php的首页信息写进去
DirectoryIndex index.php index.html       

命令文件

[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/       //把php的配置文件链接到系统命令的bin目录下,便于使用管理

5.7 首页测试

刷新httpd服务

systemctl restart httpd
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>

六 init 0-6

init 0 :关机
init 1 :单用户模式无网络
init 2 :多用户模式无网络字符终端
init 3 :多用户模式有网络字符终端
init 4 :保留
init 5 :多用户模式有网络图形界面
init 6 :重启系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值