源码安装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
常用的的编译参数最好还是记下来
自我建议:源码编译的时候,自己最好是故意犯一些失误,看看报错信息,看看自己是否可以根据报错信息来解决(一般报错信息都会提示少了什么。在编译时,少依赖包,报错提示其实已经就提示的很明显了)
注:内容若有错误,记得给博主留言哦## 标题!