源码编译安装Apache,MySQL,PHP,LAMP构架

Posted 水木,年華

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源码编译安装Apache,MySQL,PHP,LAMP构架相关的知识,希望对你有一定的参考价值。

一.LAMP介绍

LAMP构架是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或Perl,Python)网页编程语言。
linux :提供操作系统支持/提供一个环境支持
Apache :提供的是静态页面请求
MySQL:持久化保存数据/状态信息
PHP :只会处理动态页面请求

二.Apache简介

2.1Apache起源

源于A Patchy Server,著名的开源Web服务软件
1995年时,发布Apache服务程序的1.0版本。
由Apache软件基金会(ASF)负责维护
最新的名称为“Apache HTTP Server"
官方站点:http://httpd.apache.org/

2.2主要特点

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

2.3编译安装的优点

●具有较大的自由度,功能可定制
可及时获得最新的软件版本
普遍适用于大多数Linux版本,便于移植

三.安装httpd服务器

3.1准备工作

(1)御卸httpd及相关依赖包

rpm -e httpd --nodeps   //忽略软件包依赖性

(2)官网下载 apr-1.7.0.tar.gz apr-util-1.6.1 .tar.gz httpd-2.4.48.tar.bz2 压缩包至 /opt目录下

在这里插入图片描述

3.2.1解包

tar zxf apr-1.7.0.tar.gz
tar zxf apr-util-1.6.1.tar.gz
tar jxf httpd-2.4.48.tar.bz2

3.2.2将apr包一到库文件srclib目录中

apr包是apache最低层的两个工具包,放到此目录下可以供apache去使用

[root@localhost opt]# mv apr-1.7.0   httpd-2.4.48/srclib/apr
[root@localhost opt]# mv apr-util-1.6.1   httpd-2.4.48/srclib/apr-util

在这里插入图片描述

3.2.3安装apache依赖包,解决源码安装的依赖环境

yum -y install gcc gcc-c++ make pcre-devel expat-devel perl //如果软件包已存在则更新软件包,无则下载,同时解决依赖关系,这是yum安装的特性

在这里插入图片描述

3.3 configure配置

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

上述命令中,各选项的含义如下:

--prefix:指定将httpd服务程序的安装路径,如/usr/local/httpd目录下
--enable-so:启用动态加载核心模块支持,使httpd具备进一步扩展功能的能力 //所谓动态加载就是不停止服务就能实现一些模块功能,更新有热更新和冷更新,热更新就是不停止服务
--enable-rewrite:启用网页地址重写功能,防盗链及目录迁移维护
--enable-charset-lite:启用字符集支持,以便支持使用各种字符集编码的网页
--enable-cgi:启用CGI(通用网关)脚本程序支持,便于增强网站的外部扩展应用访问。

3.4 make编译,make install 安装

三.优化httpd配置文件路径

目的:把httpd服务的可执行程序文件放入路径变量的目录中便于系统识别,方便操作
方法:

3.1可执行文件和配置文件做软链接

ln -s /usr/local/httpd/conf/httpd.conf  /etc 将配置文件链接到/etc/下面
ln -s /usr/local/httpd/bin/* /usr/local/bin/ 将httpd的可执行文件链接到/usr/local/bin下// /usr/local/bin /usr/local/snin为外部命令,/bin /sbin为内部命令

3.2httpd产生的文件

/usr/local/httpd/bin       hhtpd命令文件
/usr/local/httpd/htdocs    httpd网页文件
/usr/local/httpd/modules   httpd模式文件
/usr/local/httpd/logs      httpd的日志文件
/usr/local/httpd/bin/apachectl  apache的管理工具//命令文件
/usr/local/httpd/conf/extra     apache的子配置文集

3.3httpd的配置文件

配置文件:修改配置文件可以让让httpd 可以根据我们的需求来运行,来达到我们的需求。
hhtpd配置文件的路径:

/usr/local/httpd/conf/httpd.conf

配置文件主要修改项:
1、监听地址
2、访问策略deny
3、一些重要文件的目录位置(使用的是相对路径)/usr/local/httpd/documentroot——》网站文件的存放/可识别的位置
error logs——》错误曰志位置
4、核心功能

配置文件的常用修改项
注:前面的数字表示行号

184 ServerAdmin you@example.com   邮箱地址
193 #ServerName www.example.com:80  域名

apache的访问控制(相当于黑白名单)

<Directory />
201     AllowOverride none
202     Require all denied
203 </Directory>

网站文件的存放/可识别的位置

217 DocumentRoot "/usr/local/httpd/htdocs"

索引文件

231     Options Indexes FollowSymLinks

访问控制

238     AllowOverride None

指定首页

250 <IfModule dir_module>
251     DirectoryIndex index.html
252 </IfModule>

错误日志

269 ErrorLog "logs/error_log"

日志记录级别

276 LogLevel warn

匹配其他的子配置文件

489 Include conf/extra/proxy-html.conf

3.4设置httpd服务便于service管理

/etc/init.d/ :为service可以识别服务启动脚本的目录问题
/usr/lib/systemd/system/ :是systemctl命令可以识别的服务启动脚本的目录位置

cp -p /usr/local/httpd/bin/apachectl /etc/init.d/httpd
//让service可以管理

3.5修改配置文件

vim /etc/init.d/httpd 

在这里插入图片描述

# chkconfig: 35 85 21  //35级别自动运行  第85个启动 第21个关闭
# description: Apache is a World Wide Web server

3.6添加让系统识别

chkconfig --add httpd  //将httpd加入到系统管理器

将配置文件监听地址改成本地,添加域名启动

vim /usr/local/httpd/conf/httpd.conf 

在这里插入图片描述
在这里插入图片描述

3.7检查语法启动

#检查语法
httpd -t  或 apachectl -t
#service启动
service  httpd start 

注:service 和 systemctl 区别
centos 6中自带 centos7 加入了一外部管理服务的工具 (systemctl)

检查端口:
在这里插入图片描述
此时80端口处于监听状态表示服务已经启动成功
在这里插入图片描述

四.安装MySQL

4.1结果MySQL依赖环境

安装依赖环境命令:

yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake autoconf

命令解释:

yum -y install \\
gcc \\					#编译语言,翻译官
gcc-c++ \\
ncurses \\				#字符终端下图形互动功能的动态库
ncurses-devel \\			#ncurses开发包
bison \\					#语法分析器
cmake \\					#mysql需要用cmake编译安装
autoconf				#是一个用于生成可以自动配置软件源代码包以适应多种unix类系统的shell脚本工具。

4.2解tar包

tar xzvf mysql-5.6.26.tar.gz -C /opt

3.cmake编译

4.3cmake编译命令

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 \\						#指定默认使用的字符集编码,如 utf-8
-DDEFAULT_COLLATION=utf8_general_ci \\			#指定默认使用的字符集校对规则
-DEXTRA_CHARSETS=all \\							#指定支持其他字符集编码
-DSYSCONFIDIR=/etc \\							#/etc/mysql --->系统中有一个默认的配置/etc/my.cnf
-DMYSQL_DATADIR=/home/mysql/ \\					#数据文件
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock		#指定连接数据库的通讯文件(启动数据库的时候会生成)

4.4 make && make install 安装

/usr/local/mysql/scripts/mysql_install_db 为MySQL的默认安装脚本
usr/local/mysql/data/test/db.opt 为基本库的默认数据文件
opt/mysql-5.6.26/support-files 为支持的脚本,里面存放模板型文件(提供模板)

4.5复制MySQL文件

(1)复制 my-default.cnf 文件到 /etc/my.cnf
/etc/my.cnf 系统默认的MySQL的默认配置文件

cp my-default.cnf  /etc/my.cnf

在这里插入图片描述
(2)复制启动脚本 mysql.server /etc/init.d/mysqld

cp mysql.server /etc/init.d/mysqld

4.5赋予启动权限

chmod 755 /etc/init.d/mysqld    

4.6启动

chkconfig --add /etc/init.d/mysqld
chkconfig  mysqld --level 35 on

注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的/opt/mysql-5.6.26
/CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧

4.7创建普通用户管理mysql

useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
#更改管理主/组
chown mysql:mysql /etc/my.cnf

4.8设置环境变量,申明/宣告mysql命令便于系统识别

echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
source /etc/profile

4.9设置环境变量,申明/宣告mysql命令便于系统识别

echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
source /etc/profile

4.10初始化数据库

/usr/local/mysql/scripts/mysql_install_db \\
--user=mysql \\                 管理的用户
--ldata=/var/lib/mysql \\      表示函数库
--basedir=/usr/local/mysql \\   工作路径
--datadir=/home/mysql           存放数据

4.11修改启动脚本

vim /etc/init.d/mysqld 

在这里插入图片描述

4.12启动,查看端口

service mysqld start
netstat -anpt | grep 3306

在这里插入图片描述

4.13给root账号登录Mysql设置密码

#给root账号设置密码
mysqladmin -u root -p password “你设置的密码”
————》直接回车

密码登录:

mysql -u root -p 
mysql -uroot -p你的密码 

查看数据库文件

mysql> show databases;   查看数据信息

在这里插入图片描述

mysql> use mysql   进入数据库
mysql> show tables;  查看表

在这里插入图片描述

五.安装PHP

5.1解决依赖环境

yum -y install gd libpng libpng-devel pcre pcre-devel libxml2-devel libjpeg-devel
yum -y install \\
gd \\					#图像化处理的库
libpng \\				#png格式图片的库
libpng-devel \\
pcre \\					#PCRE库支持正则表达式
pcre-devel \\			#pcre-devel是使用PCRE做二次开发时所需要的开发库,也是编译安装需要的
libxml2-devel \\			#解析xml标记语言的库
libjpeg-devel			#jpeg格式图片的库

5.2 tar解包

tar xjf  php-5.6.11.tar.bz2

5.3configure配置

./configure \\
--prefix=/usr/local/php5 \\
--with-gd \\
--with-zlib \\
--with-apxs2=/usr/local/httpd/bin/apxs \\
--with-mysql=/usr/local/mysql \\
--with-config-file-path=/usr/local/php5 \\
--enable-mbstring 
./configure \\
--prefix=/usr/local/php5 \\
--with-gd \\											#激活gd 库的支持
--with-zlib \\										#支持zlib功能,提供数据压缩功能的函式库
--with-apxs2=/usr/local/httpd/bin/apxs \\			#指定httpd服务提供的apxs模块支持程序的文件位置 
#用于指定Apache可以加载/识别对应的功能模块,此处可以让php服务模块直接提供给apache加载使用
--with-mysql=/usr/local/mysql \\						#关联数据库					
--with-config-file-path=/usr/local/php5 \\			#指定配置文件
--enable-mbstring 									#启用多字节字符串功能,以便支持中文等代码

优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/php5/bin/* /usr/local/bin/

5.4修改Apache配置文件让Apache支持PHP

(1)添加index.php

<IfModule dir_module>
   DirectoryIndex index.html index.php
</IfModule>

在这里插入图片描述

(2)在390行下方插入两行内容,让Apache可以支持.php的网页文件

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

在这里插入图片描述
(3)检查153行默认支持php5的模块是否存在
在这里插入图片描述

5.5创建、编辑php页面文件

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

在这里插入图片描述

5.6重启服务

service httpd stop 
service httpd start

注意:先停止再开启,直接restart有时会卡死

5.7在网页测试“http://192.168.80.2/index.php”

192.168.80.2为本机开启服务的地址

在这里插入图片描述

六.安装论坛

------------------安装论坛-----------------
mysql> CREATE DATABASE bbs;  //创建一个数据库//

mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';   //把bbs数据库里面所有表的权限授予给bbsuser,并设置密码//  所有访问来源/渠道

mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';

mysql>flush privileges; //刷新数据库//

unzip /opt/lamp/Discuz_X2.5_SC_UTF8.zip -d /opt/dis

cd /opt/dis

cp -r upload/ /usr/local/httpd/htdocs/bbs

cd /usr/local/httpd/htdocs/bbs

chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data

在这里插入图片描述

以上是关于源码编译安装Apache,MySQL,PHP,LAMP构架的主要内容,如果未能解决你的问题,请参考以下文章

年终福利,PHP7+Apache2.4+MySQL5.6 源码编译安装,环境配置,搭建你自己的LAMP环境

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装Apache

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装php

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装Mysql

LAMP环境部署:Apache源码安装+MySQL二进制安装+PHP源码安装+Nginx源码安装

CentOS 6.5下源码安装LAMP(Linux+Apache+Mysql+Php)环境