源码编译安装Apache,MySQL,PHP,LAMP构架
Posted 水木,年華
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源码编译安装Apache,MySQL,PHP,LAMP构架相关的知识,希望对你有一定的参考价值。
源码编译安装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