源码安装LAMP步骤简述

一 、环境介绍及软件包下载链接

1.操作系统:centos7
2.搭建环境的基本设置
	1)配置网络环境
	2)系统光盘开机自动挂载
	3)永久关闭selinux
	4)配置本地yum源
	5)更新CentOS-Base.repo源
	6)安装epel扩展源
3.软件包下载链接
	apr下载链接:
		https://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
	apr-util下载链接:
		https://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
	pcre下载链接:
		https://ftp.pcre.org/pub/pcre/pcre-8.37.tar.gz
	apache下载链接:
		http://archive.apache.org/dist/httpd/httpd-2.4.16.tar.gz
	mysql下载链接:
		https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.46.tar.gz
	php下载链接:
		https://www.php.net/distributions/php-5.6.13.tar.gz

二 、解决依赖包

(安装开发包组可以解决大部分的依赖关系,然后再安装gcc,gcc-c++,openssl-devel)

yum grouplist
yum groupinstall "Development Tools" -y  #开发包组可以解决大部分的依赖
yum install gcc gcc-c++ openssl-devel -y  #必要的依赖包

三、源码安装apr(1.5.2)步骤:

1.解压到/usr/local/src

2.进入apr的解压目录下,进行configure源码安装

3.源码安装三步骤(这里只需指定apr的安装路径,/usr/local/apr。-j后面跟的数字是cpu核心数+1)

4.echo $?验证
tar zxvf apr-1.5.2.tar.gz -C /usr/local/src
cd !$/apr-1.5.2  # !$:表示上一次使用的路径
cat /proc/cpuinfo | grep processor | wc -l  #查看cpu的核心数
./configure --prefix=/usr/local/apr && make -j 5 && make install
echo $?  #结果为0说明没有问题

四、源码安装apr-util(1.5.4)步骤:

1.解压到/usr/local/src

2.进入到apr-util的解压目录下,进行源码安装

3.源码安装三步骤(需要指定apr-util的安装路径,和apr依赖包的安装路径,因为apr-util是依赖apr包的)

4.echo $?验证
tar zxvf apr-util-1.5.4.tar.gz -C /usr/local/src/
cd !$/apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make -j 5 && make install
echo $?

五、源码安装pcre(8.37)步骤:

1.解压到/usr/local/src

2.进入到pcre的解压目录下,进行源码安装

3.源码安装三步骤(只需指定pcre的安装路径)

4.echo $?验证
tar zxvf pcre-8.37.tar.gz -C /usr/local/src/
cd !$/pcre-8.37
./configure --prefix=/usr/local/pcre && make -j 5 && make install
echo $?

六、源码安装apache(2.4.16)步骤:

1.解压到/usr/local/src

2.进入到apache的解压目录下,进行源码安装

3.源码安装三步走(需要指定apache的安装路径,apr和apr-util的安装路径,然后启用一些功能和模块

常见启用的功能和模块(具体的模块,调优讲的多):
--enable-so:启用动态模块
--enable-rewirte:启用重定向
--enable-ssl:启用加密功能
--enable-modules=most:启用most模块
--enable-mpms-shared=all:启用多进程处理模块(apache有三个模块)
mpm:multiprocessing module:多进程模块
--with-mpm=event:apache有三个模块,这里使用event模块

4.echo $?验证

5.拷贝apache的启动脚本到系统标准启动目录下并重命名,

修改启动脚本,添加参数chkconfig和description,chkconfig:启动级别、开机顺序(network之后)和关机顺序(network之前)

6.启动apache脚本(会有一个友情提醒),netstat去查看apache的端口号

7.apache添加到开机自启动中,ps查看运行用户(当前运行用户:daemon,需要将daemon改为apache)

centos6下:chkconfig apache2.4 on  centos7下:systemctl enable apache2.4?

8.创建apache用户,修改配置文件

(用户和组都改为apache),用apache的用户来接管apache2.4这个服,apache用户:没有登录的shell,没有家目录

9.把apache软件的家目录(及家目录下的所有目录)的主和属组也改为apache

10.重启apache服务(可以reload重新加载),然后ps查看进程查看运行用户

11.防火墙放行端口,浏览器访问检查
tar zxvf httpd-2.4.16.tar.gz -C /usr/local/src/
cd !$/httpd-2.4.16/
./configure --prefix=/usr/local/apache2.4 
	--enable-so 
	--enable-rewrite 
	--enable-ssl 
	--with-pcre=/usr/local/pcre 
	--with-apr=/usr/local/apr 
	--with-apr-util=/usr/local/apr-util 
	--enable-modules=most 
	--enable-mpms-shared=all 
	--with-mpm=event && make -j 5 && make install
#编译的时候,如果少依赖包报错,根据提示安装缺少的依赖包

echo $?
cp /usr/local/apache2.4/bin/apachectl /etc/init.d/apache2.4
vim /etc/init.d/apache2.4

vim /etc/init.d/apache2.4

#!/bin/sh
# chkconfig:2345 12 49
# description: Apache 2.4.16 start script
# 在脚本开头添加chkconfig和description两行内容,这是服务脚本中必要得两行
service apahce2.4 start  #前者是centos6得启动命令,7上兼容,或者/etc/init.d/apache2.4 start
chkconfig apache2.4 on   #添加到开机自启动中
chkconfig --list apache2.4   #查看服务的启动级别
netstat -antup | grep 80   #或者lsof -i :80   查看服务是否启来
ps -aux | grep 80     #查看占用80端口的运行用户(当前为daemon,查看第一列)
useradd -M -s /sbin/nologin apache   #不创建家目录,不登陆系统
vim /usr/local/apache2.4/conf/httpd.conf
				User apache  #运行用户
				Group apahce  #运行组
chown -R apache:apache /usr/local/apache2.4/
ll -d !$   #查看目录的属主和属组

#重启apache2.4服务
service apache2.4 stop
service apache2.4 start 
ps -aux | grep 80    #此时的运行用户变成了apache 

#防火墙放行80端口
iptables -A INPUT -p tcp -m -multiport 80,3306 -j ACCEPT
service iptables save  #保存写如防火墙的规则
curl 192.168.226.64   #或者浏览器验证

七、源码安装MySQL(5.6.46)步骤:

1.移除之前安装的MySQL
	安装之前确认系统中没有MySQL

2.解决依赖
	安装gcc、cmake和ncurses-devel
	(5.5.15之后使用cmake来源码安装MySQL,就没有用configure的方式了,gcc相关的依赖包,之前安装apache的时候已经安装过了,所以不需要再次安装了)

3.解压到/usr/local/src

4.创建MySQL的运行用户
	(没有家目录,没有登录的shell)

5.进入解压目录中,源码安装
	(cmake的方式,然后再make –j 和make install)
	cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  
	-DMYSQL_UNIX_ADDR=/tmp/mysql.sock 
	-DDEFAULT_CHARSET=utf8  
	-DDEFAULT_COLLATION=utf8_general_ci 
	-DWITH_EXTRA_CHARSETS=all  
	-DWITH_MYISAM_STORAGE_ENGINE=1 
	-DWITH_INNOBASE_STORAGE_ENGINE=1 
	-DWITH_MEMORY_STORAGE_ENGINE=1 
	-DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 
	-DMYSQL_DATADIR=/usr/local/mysql/data  
	-DMYSQL-USER=mysql

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql   #指定MySQL的安装路径,这个值也可以在服务器启动时,用--basedir来设置
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock  #服务器与本地客户端进行通信的Unix套接字文件,必须是绝对路径,默认位置/tmp/mysql.sock,可以在服务器启动时,用--socket改变
-DDEFAULT_CHARSET=utf8  #mysql默认使用的字符集,不指定将默认使用Latin1西欧字符集
-DDEFAULT_COLLATION=utf8_general_ci   #默认字符校对   collation:校验,校对
-DWITH_EXTRA_CHARSETS=all   #制定mysql拓展字符集,默认值也是all支持所有的字符集

-DWITH_MYISAM_STORAGE_ENGINE=1  
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
#静态编译MYISAM,INNOBASE,MEMORY存储引擎到MYSQL服务 器,这样MYSQL就支持这三种存储引擎

-DWITH_READLINE=1  #支持readline库
-DENABLED_LOCAL_INFILE=1   #允许本地倒入数据,启用加载本地数据
-DMYSQL_DATADIR=/usr/local/mysql/data  #mysql数据库存放路径  这个比较重要
-DMYSQL-USER=mysql   #运行mysql的用户

6.修改MySQL安装目录的属主和属组
	改为mysql用户接管

7.拷贝默认的配置文件my-default.cnf
	cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
	之前yum安装的已经生成了my.cnf,直接覆盖。

8.拷贝启动脚本mysql.server并进行重命名。
	(启动脚本和默认的配置文件都是在/usr/local/mysql/support-files/目录下)
	cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

9.修改启动脚本
	(basedir=mysql的安装路径,
	datadir=mysql数据的存放路径)

10.把mysql添加到开机自启动中

11.初始化数据库
	/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf 
	--basedir=/usr/local/mysql 
	--datadir=/usr/local/mysql/data 
	--user=mysql

12.配置mysql的环境变量
	可以用软连接的方式,也可以手写配置文件
	ln –sv /usr/local/mysql/bin/* /bin/       v:显示软链接指向

13.数据的安全初始化
	mysql_secure_installation(设置用户和密码),安全初始化之前确定已经启动了mysql服务
tar zxvf mysql-5.6.46.tar.gz -C /usr/local/src/
cd !$/mysql-5.6.46
yum install gcc gcc-c++ cmake openssl-devel ncurses-devel bison-devel -y
useradd -M -s /sbin/nologin mysql
id mysql
cmake  
	-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  
	-DMYSQL_UNIX_ADDR=/tmp/mysql.sock  
	-DDEFAULT_CHARSET=utf8  
	-DDEFAULT_COLLATION=utf8_general_ci  
	-DWITH_EXTRA_CHARSETS=all  
	-DWITH_MYISAM_STORAGE_ENGINE=1 
	-DWITH_INNOBASE_STORAGE_ENGINE=1 
	-DWITH_MEMORY_STORAGE_ENGINE=1 
	-DWITH_READLINE=1 
	-DENABLED_LOCAL_INFILE=1 
	-DMYSQL_DATADIR=/usr/local/mysql/data  
	-DMYSQL-USER=mysql
	
echo $?
make -j `grep processor /proc/cpuinfo | wc -l` && make install
echo $?
ll -d /usr/local/mysql/
chown -R mysql:mysql /usr/local/mysql/
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld
                     basedir=/usr/local/mysql #指定mysql的安装路径
                     datadir=/usr/local/mysql/data #指定mysql的数据存放的路径
chkconfig mysqld on
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf 
	--basedir=/usr/local/mysql 
	--datadir=/usr/local/mysql/data 
	--user=mysql   #有两个ok说明初始化成功

echo $?
ls /usr/local/mysql/data
ln -sv /usr/local/mysql/bin/* /bin/   #配置环境变量
/etc/init.d/mysqld start
ps -axu | grep mysqld
netstat -antup | grep 3306
mysql_secure_installation
mysql -uroot -p123456

八、源码安装PHP(5.6.13)步骤:

1.决解依赖

2.解压到/usr/local/src

3.进入解压路径,源码安装

4.源码安装三步走
(--prefix=/usr/local/php  指定php的安装路径
--with-mysql=/usr/local/mysql  指定mysql的安装路径,如果后面不跟路径,编译出来的版本将是低版本
--with-config-file-path=/usr/local/php 指定php主配置文件php.ini的路径
--with-apxs2=/usr/local/apache2.4/bin/apxs  用apache的apxs工具将php编译成一个模块)

5.拷贝默认主配置文件php.ini-production并重命名
	cp /usr/local/src/php-5.6.13/php.ini-production /usr/local/php/php.ini

6.检查apache是否支持解析php
	只需检查两个模块/usr/local/apache2.4/modules/httpd.exp模块和/usr/local/apache2.4/modules/libphp5.so。如果有这两个模块就可以和php进行结合。

7.修改apache的配置文件
	AddType application/x-httpd-php .php   让.php后缀的文件可以执行php
	AddType application/x-httpd-php-source .phps
	使其能够解析php的页面

8.添加php文件到网站根目录下,重启apache服务,浏览器验证
tar zxvf php-5.6.13.tar.gz /usr/local/src/
cd !$/php-5.6.13
yum install -y libxml2-devel
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php
echo $?
make -j 5 && make install
echo $?
ls /usr/local/apache2.4/modules/httpd.exp
ls /usr/local/apache2.4/modules/libphp5.so
vim /usr/local/apache2.4/conf/httpd.conf
					AddType application/x-httpd-php .php
					AddType application/x-httpd-php-source .phps   #在apache的主配置文件的379行添加这两行内容
rm -rf /usr/local/apache2.4/htdocs/index.html  #源码安装apache的网站根目录在htdocs目录下
echo "<?php phpinfo() ?>" > /usr/local/apache2.4/htdocs/index.php					

#重启apache服务
service apache2.4 stop
service apache2.4 start

netstat -antup | grep 80
ps -aux | grep apache
curl 192.168.226.64   #或者浏览输入网址验证

九、源码安装可能涉及到面试题

1.软件的安装分为源码编译和yum(rpm)安装,请说出选择源码编译的几个原因?

2.apache的工作原理

3.你们一般源码安装LAMP或者LNMP都是用的什么版本?apache、MySQL、PHP、nginx用的都是什么版本?(源码安装最好还是记住版本号)

4.源码编译时,三种mpm的优缺点?什么情况下用哪种mpm,面试的时候也可能问到?

十、总结与建议

1.安装apache
先安装apache的依赖包,apr,apr-util,pcre(正则),而apr-util包依赖于apr包
常用的编译参数最好还是记一记
2.安装mysql
编译时的参数没有必要记下来,按照自己的笔记来就可以了,但要知道参数的含义是什么
3.安装PHP
常用的的编译参数最好还是记下来

自我建议:源码编译的时候,自己最好是故意犯一些失误,看看报错信息,看看自己是否可以根据报错信息来解决(一般报错信息都会提示少了什么。在编译时,少依赖包,报错提示其实已经就提示的很明显了)

注:内容若有错误,记得给博主留言哦## 标题!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值