LAMP(源码编译安装)

一 :LAMP

L:linux
A:apache
M:mysql
P:php
三个角色可以在同一台机器也可以分开(Apache和PHP要在一起)

## 1.1 工作模式:

PHP是以模块的形式与Apache结合在一起,Apache通过PHP模块到MySQL上取数据,PHP模块拿到数据后再传给Apache,Apache在传输给用户。(这是一个动态请求)

二 :先上传所需要的源码包

在这里插入图片描述

一 :Apache 安装

pache是一个基金会的名称,httpd是我们需要使用的安装包
安装httpd时需要安装apr和apr-util。这两个是一个通用函数库,可以使httpd不关心底层操作系统平台,方便移植

下载安装包

安装httpd-2.4.39.tar.gz,apr-util-1.6.1.tar.gz,apr-1.6.5.tar.gz 这三个安装包
#安装所需包,解压
yum install apr-devel apr-util-devel -y
tar -xzf httpd-2.4.16.tar.gz -C /root/LAMP/
注:我们这个使用yum安装所需包

#[root@wslinux src]# tar -xzvf apr-1.6.5.tar.gz   
#[root@wslinux src]# tar -xzvf apr-util-1.6.1.tar.gz
#[root@wslinux src]# tar -xzvf httpd-2.4.39.tar.gz

1.1编译脚本

1.2 编译apr

cd apr-1.6.5
./configure --prefix=/usr/local/apr //编译过程报错问题在下面,解决后进行下一步
make && make install

问题一
无法编译
需要下载编译工具

yum install -y gcc gcc-c++

问题二
缺少libtoolT库,需要安装库文件

 yum install -y libtool*

安装完成后可以再次编译查看有无报错

 ./configure --prefix=/usr/local/apr

会提示警告,可以忽略

1.3 安装apr-util

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr ##指定安装路径,--with依赖apr安装文件
make && make install  //安装会报错问题如下

问题一
缺少expat.h文件,下载

 yum install -y expat-devel

安装完成后再进行一次make && make install

1.4 安装httpd

cd httpd-2.4.39

~~~shell
#检查环境
./configure --prefix=/usr/local/apache --enable-so --enable-rewrite   #/usr/local/apache为编译源码位置
#编译
make 
make install

出现这个则表示编译成功
make
请添加图片描述
make install
请添加图片描述

2 .测试是否完成

httpd 路径在

/usr/local/apache/

启动文件在

/usr/local/apache/bin/
#启动
./apachectl start #restart ,stop

如果启动有如下警报则编译配置文件
请添加图片描述
配置目录在

/usr/local/apache/conf
#vim 编辑
vim httpd.conf
#ServerName www.example.com:80
改为自己服务器IP

httpd发布目录在

/usr/local/apache/htdocs

请添加图片描述请添加图片描述
这样就没有了

2.查看进程httpd是否启动

ps -ef |grep httpd

请添加图片描述

3.浏览器测试httpd是否安装完成

http://101.35.115.129/

请添加图片描述

二: MYSQL数据库安装

2.1 知识拓展:
了解MySQL,常见的关系型数据库。mariadb是MySQL的一个分支,MySQL分为社区版本,企业版本,通用版本,开发版本,发行候选版本,开放测试版本,内部测试版本
2.2 安装MySQL
MySQL的常用安装包:rpm,源码包,二进制免编译包。

1.下载二进制免编译包
下载二进制免编译包mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz ,存放到/usr/local/src目录下(此目录用于存放各种安装包文件)

2.解压免编译包
解压二进制免编译包

2.1 解压

#进入你上传MySQL的目录
tar -xzf mysql-5.6.26.tar.gz -C /root/LAMP/
#将解压完成的数据移动到/usr/local目录下,在/usr/local目录下创建mysql目录用于存放mysql的安装信息
#注: /usr/local/mysql/目录mysql的安装脚本文件,配置,配置内容都存放在此目录下

2.2 初始数据库

** 2.2创建数据存放目录**
创建一个用于存放数据的目录

mkdir -p /data/mysql #创建一个用于存放数据的目录

2.3 创建mysql用户
给用户组和用户的权限

useradd -s /sbin/nologin mysql  #创建mysql用户
chown -R mysql:mysql /data/mysql  # 将组和用户都设为mysql
ls -la /data/mysql/

2.4 yum安装编译软件

yum  install  cmake  ncurses-devel  ncurses  -y

2.5 编译

cd /root/mysql-5.7.17  #进入源码目录
cmake  .  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql56/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0
make
make install

解释:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql56 	Cmake预编译        #编译后的存放路径
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock 					MYSQL Socket通信文件位置
-DMYSQL_DATADIR=/data/mysql 						MYSQL数据存放路径  #这个是根目录下的data目录,默认是没有的需要手动创建
-DSYSCONFDIR=/etc 									配置文件路径	      #这个也是根目录下的
-DMYSQL_USER=mysql 								    MYSQL运行用户     #没有yum安装过的话是没有mysql这个用户的,需要手动创建
-DMYSQL_TCP_PORT=3306 								MYSQL监听端口
-DWITH_XTRADB_STORAGE_ENGINE=1 						开启xtradb引擎支持
-DWITH_INNOBASE_STORAGE_ENGINE=1  					开启innodb引擎支持
-DWITH_PARTITION_STORAGE_ENGINE=1 					开启partition引擎支持
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 					开启blackhole引擎支持
-DWITH_MYISAM_STORAGE_ENGINE=1 						开启MyISAM引擎支持
-DWITH_READLINE=1 									启用快捷键功能	
-DENABLED_LOCAL_INFILE=1 							允许从本地导入数据
-DWITH_EXTRA_CHARSETS=1 							支持额外的字符集	
-DDEFAULT_CHARSET=utf8 								默认字符集UTF-8	
-DDEFAULT_COLLATION=utf8_general_ci 				检验字符
-DEXTRA_CHARSETS=all 								安装所有扩展字符集
-DWITH_BIG_TABLES=1 								将临时表存储在磁盘上
-DWITH_DEBUG=0										禁止调试模式支持	
make												编译	
make install									![请添加图片描述](https://img-blog.csdnimg.cn/4f412fb0393d455d8e0c01f10d9aa65b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAaHVhaXFpdXlh,size_20,color_FFFFFF,t_70,g_se,x_16)
	安装

请添加图片描述
表示环境没有问题了

开始编译

make
#编译过程片段  等它加载到100%
Scanning dependencies of target INFO_BIN
[  0%] Built target INFO_BIN
Scanning dependencies of target INFO_SRC
[  0%] Built target INFO_SRC
Scanning dependencies of target abi_check
[  0%] Built target abi_check
Scanning dependencies of target zlib
[  0%] Building C object zlib/CMakeFiles/zlib.dir/adler32.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/compress.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/crc32.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/deflate.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/gzio.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/infback.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/inffast.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/inflate.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/inftrees.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/trees.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/uncompr.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/zutil.c.o
#如果服务器性能不行的话过程很漫长
make install

2.6 修改mysql配置文件

cd /usr/local/mysql56/
#拷贝配置文件(拷贝文件)
cp support-files/my-default.cnf /etc/my.cnf
#修改启动脚本拷贝启动脚本(support-files/mysql.server)拷贝到/etc/init.d/mysqld
#
cp support-files/mysql.server /etc/init.d/mysqld 
cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
注:直接拷贝脚本安装包文件里的配置文件(support-files/my-default.cnf)
因为CentOS7安装完成后会有默认的配置文件(/etc/my.cnf)直接覆盖即可

3 修改配置文件

cd /etc/   #进入配置文件目录
cp my.cnf my.cnf.back # 以防万一先备份
vim my.cnf  #编辑mysql配置文件

配置文件:

[client]
port        = 3306   #端口
socket      = /tmp/mysql.sock   #MYSQL Socket通信文件位置

[mysqld]
port        = 3306  #端口 
socket      = /tmp/mysql.sock  #MYSQL Socket通信文件位置
user = mysql    #用户


basedir = /usr/local/mysql57 #mysql源码安装位置
datadir = /data/mysql/   #mysql数据存放位置
pid-file = /data/mysql/mysql.pid  #进程文件存放路径

log_error = /data/mysql/mysql-error.log  #报错日志存放路径
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql-slow.log  #慢查询日志信息存放位置


skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 1024M
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 8K
read_buffer_size = 768K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
query_cache_size = 16M
tmp_table_size = 32M
performance_schema_max_table_instances = 1000

explicit_defaults_for_timestamp = true
#skip-networking
#max_connections = 500
#max_connect_errors = 100
#open_files_limit = 65535
#
#log_bin=mysql-bin
#binlog_format=mixed
#server_id   = 232
#expire_logs_days = 10
#early-plugin-load = ""
#
#default_storage_engine = InnoDB
#innodb_file_per_table = 1
#innodb_buffer_pool_size = 128M
#innodb_log_file_size = 32M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
#
#[mysqldump]
#quick
#max_allowed_packet = 16M
#
#[mysql]
#no-auto-rehash
#
#[myisamchk]
#key_buffer_size = 32M
#sort_buffer_size = 768K
#read_buffer = 2M
#write_buffer = 2M
#

3.1 执行脚本
如果版本为5.7以下,使用以下方法初始化mysql

cd /usr/local/mysql57
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql57/ --datadir=/data/mysql
如果报错:FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
解决方法 :安装autoconf库
命令:yum -y install autoconf
#./mysqld --initialize-insecure  #<---执行脚本
#l --user:指定数据库所属
#l --datadir:指定数据库安装位置(放到大空间分区上)
#注:系统未带安装工具所以需要安装yum intstall -y perl-Module-Install
# 安装完成后可以使用echo$?来监测是否成功若是缺哪些包可以通过yum list查找相关的包
##这些参数路径要和上面的配置文件一致

如果版本为5.7及以上,使用以下方法初始化mysql

#整个命令:
cd /usr/local/mysql57/bin/
#初始化
 ./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/
#解释:
 ./mysqld --initialize-insecure  #<---执行脚本
 --user=mysql     #<---用户
 --basedir=/usr/local/mysql57  #<---数据库安装路径
 --datadir=/data/mysql/    #<---数据库文件路径
 #这些参数路径要和上面的配置文件一致

3.2 尝试启动mysql

systemctl mysql start
/etc/init.d/mysqld start ,restart,stop
Starting MySQL SUCCESS!

测试连接

cd /usr/local/mysql57/bin  #进入可执行文件目录
./mysql -hlocalhost -uroot -p #不需要密码
#嫌全路径麻烦的话可以做个软连接
ln  -s  /usr/local/mysql57/bin/* /usr/bin/
#这样的话不管在那个目录下都可以只输入mysql进入mysql

如果启动MySQL不成功

#先查看进程把进程全部关闭
/etc/init.d/mysqld stop 
ps -ef | grep mysq
mkdir -p /var/lib/mysql
ln -s /tmp/mysql.scok /var/lib/mysql/mysql.scok
/usr/local/mysql56/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql56/ 
/etc/init.d/mysqld start 

三:PHP服务安装,PHP需与Apache、MySQL进行整合

3.1 解压php源码包

tar -jxf php-5.6.8.tar.bz2  -C /root/LAMP/

编译,整合Apache,MySQL

./configure --prefix=/usr/local/php6 --with-config-file-path=/usr/local/php6/etc   --with-apxs2=/usr/local/apache/bin/apxs  --with-mysql=/usr/local/mysql56/make 
# mkdir -p /usr/local/php6 需要手动创建
make 
make install 

检测php环境时如果报错:
请添加图片描述
yum安装

yum install libxml2 libxml2-devel -y 

请添加图片描述
这样就完成了
请添加图片描述
进入/usr/local/php6查看是否有生成文件

cd /usr/local/php6
ll

请添加图片描述

四:Apache+PHP源码整合

了能让Apache发布PHP页面,需要将PHP安装完成后的libphp5.so模块与Apache进行整合,
编辑配置文件/usr/local/apache/conf/vim httpd.conf
加入如下代码:

vim /usr/local/apache/conf/httpd.conf
#在注释下面添加 #搜索关键词/libphp5
#LoadModule         php5_module modules/libphp5.so
AddType         application/x-httpd-php  .php
#搜索关键词/index.htm
#DirectoryIndex    index.html index.htm
DirectoryIndex     index.php index.html index.htm

请添加图片描述请添加图片描述

4.1 测试Apache+PHP环境

创建PHP测试页面,在/usr/local/apache/htdocs目录下创建index.php测试页面,执行如下命令自动创建:

cat >/usr/local/apache/htdocs/index.php<<EOF 
<?php
phpinfo();
?>
EOF

4.2 启动mysql httpd

#启动mysql
/etc/init.d/mysqld start
#启动httpd
/usr/local/apache/bin/apachectl start

4.3 重新启动Apache服务,浏览器输入 Apache WEB的IP访问,如图12-4所示,即代表LAMP源码环境整合成功。

请添加图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值