Centos7 LAMP服务源码搭建
前言:
记录一下源码安装LAMP服务的过程
准备工作
安装编译环境
yum -y install gcc*
关闭防火墙\SELinux
iptables -F
setenforce 0
加载软件包镜像
在虚拟机上将这个镜像换上连接即可
复制文件到/usr/src/lamp
目录
cp -rf lamp-php5.4/ /usr/src/lamp
这里在目录下写一个shell脚本,自动解压一下
#!/bin/bash
/bin/ls *tar.gz > ls.list
/bin/ls *tgz >> ls.list
for a in `cat ls.list`
do/bin/tar -zxf $a
done
rm -rf ls.list
解压完成
df -h
确认磁盘空间是否充足
安装一些必须软件
注意事项: 目录名不要更改 顺序不要更改
0x01:安装python-devel
#首先需要python的底层环境
yum -y install python-devel
[root@localhost lamp]# cd lib
libmcrypt-2.5.8/ libpng-1.2.31/ libxml2-2.9.1/
[root@localhost lamp]# cd libxml2-2.9.1/
[root@localhost libxml2-2.9.1]# ./configure --prefix=/usr/local/libxml2/
再输入make
再次输入make install
即可
0x02:安装libmcrypt
提供加密算法
[root@localhost lamp]# cd libmcrypt-2.5.8/
[root@localhost libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt/
make
make install
0x03:安装libltdl
[root@localhost lamp]# cd libmcrypt-2.5.8/libltdl/
[root@localhost libltdl]# ./configure --enable-ltdl-install
make
make install
0x04:安装mhash
提供加密方式的扩展
前提条件:安装 lib
[root@localhost lamp]# cd mhash-0.9.9.9/
[root@localhost mhash-0.9.9.9]# ./configure
0x05:安装mcrypt
提供php相关的加密支持拓展库
[root@localhost mcrypt-2.6.8]# LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib \./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
make
make install
0x06:安装zlib
提供压缩用途的函数库
t@localhost lamp]# cd zlib-1.2.3/
[root@localhost zlib-1.2.3]# ./configure
make
make install
0x07:libpng
支持png格式图片的库
[root@localhost zlib-1.2.3]# cd ../
[root@localhost lamp]# cd libpng-1.2.31/
[root@localhost libpng-1.2.31]# ./configure --prefix=/usr/local/libpng
make
make install
0x08:jpeg6
提供jpeg格式的图片
先创建目录
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6/bin
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6/lib
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6/include
[root@localhost libpng-1.2.31]# mkdir -p /usr/local/jpeg6/man/man1
root@localhost lamp]# cd jpeg-6b/
[root@localhost jpeg-6b]# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
发现报错,报错原因是因为缺失libtool
按照下面博客的方法可以解决
解决linux64位安装jpeg 出错make: ./libtool: Command not found
安装完成
0x09:安装字体freetype
[root@localhost freetype-2.3.5]# ./configure --prefix=/usr/local/freetype
0x10:安装GD
提供PHP图形拓展库
[root@localhost lamp]# mkdir /usr/local/gd2
[root@localhost lamp]# cd /usr/src/lamp/gd-2.0.35/
[root@localhost gd-2.0.35]# ./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype/ --with-png=/usr/local/libpng/
出现错误
解决方法:
编辑gd_png.c文件
[root@localhost gd-2.0.35]# vim gd_png.c
指定一下配置文件路径即可,安装完成
make
make install
安装Apache
在此之前需要装两个工具包
[root@localhost lamp]# cp -r apr-1.4.6 httpd-2.4.7/srclib/apr
[root@localhost lamp]# cp -r apr-util-1.4.1 httpd-2.4.7/srclib/apr-util
#这两个工具也需要安装一下,具体查百度吧,百度有很详细的安装
cd pcre-8.34/
./configure
make
make install
[root@localhost lamp]# cd httpd-2.4.7/
[root@localhost httpd-2.4.7]# ./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc --with-include-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared
但是在make install时报错(类似这种的)
按照老师发的方法试一下:
./configure \
> --prefix=/usr/local/apache2 \
> --sysconfdir=/etc/httpd \
> --with-z=/usr/local/zlib \
> --with-included-apr \
> --disable-userdir \
> --enable-so \
> --enable-deflate=shared \
> --enable-expires=shared \
> --enable-rewrite=shared \
> --enable-static-support
因为之前编译过,所以要清除下
make clean
但又遇到一个错误,Apache安装是编译安装,安装路径不是默认路径,Apache服务没有添加到Linux服务中
可以参考下面的方法
注意我这里
httpd
要换成
Apache2
#存放的位置不同,但功能都一样
启动服务发现成功
安装mysql
首先需要安装这个工具
oot@localhost lamp]# yum -y install cmake
其次安装下语法解释器
[root@localhost lamp]# yum -y install bison
然后建立一个用户来使数据库运行
useradd mysql
接下来按照老师的命令
执行发现报错
解决方法
[root@localhost mysql-5.5.23]# yum -y install ncurses-devel
[root@localhost lamp]# cd ncurses-5.9/
[root@localhost ncurses-5.9]# ./configure --with-shared --without-debug --with-ada --enable-overwrite
make make install
缺失的包我们已经安装了但如果还是报错就按照下面的进行操作
#删掉原来的目录
rm -rf mysql-5.5.23
#再次解压
tar -zxf mysql-5.5.23.tar.gz
查看一下包是否安好
[root@localhost lamp]# rpm -q ncurses
ncurses-5.9-14.20130511.el7_4.x86_64
[root@localhost lamp]# rpm -q ncurses-devel
ncurses-devel-5.9-14.20130511.el7_4.x86_64
再进入mysql目录中,进行编译
安装成功,说明这里的这个软件包是有先后顺序的,必须先安装ncurses
和ncurses-devel
才行
接下来就是
make&&make install
进入mysql目录更改一些权限
cd /usr/local/mysql/
chown -R mysql:mysql .
#数据库初始化
[root@localhost mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql
数据库初始化成功,接下来授权一下表和库的权限
t@localhost mysql]# chown -R root .
[root@localhost mysql]# chown -R mysql data/
#复制一下配置文件
[root@localhost mysql]# cp support-files/my-medium.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
开启MySQL
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql
如果开启没成功,就用上面的初始化的命令再来一次
如果卡到这里的话,用下面的命令杀死mysql的进程,再初始化一遍数据库再启动即可
ps aux | grep mysql
netstat -anpt
发现3306端口已经打开了,数据库已经启动了
添加开机自启
[root@localhost mysql]# vim /etc/rc.d/rc.local
登陆mysql
/usr/local/mysql/bin/mysql
直接登陆会不那么安全,设置一个密码
[root@localhost mysql]# /usr/local/mysql/bin/mysqladmin -u root password '123456'
再次登陆就需要密码了,记住要删除history,因为会记录设置的密码
history -c
#清楚所有记录
安装PHP
接下来就是最后一步了,安装PHP
#预先准备好的环境,先要安装上
yum -y install libtool*
接下来修改一下配置文件以支持数据库的内容
[root@localhost /]# vim /usr/local/gd2/include/gd_io.h
(注:这里的位置是错的,正确位置往下面看)
添加上这一行代码,保存退出
接下来就是安装php,需要指定之前安装过的软件路径,所以有点长
./configure --prefix=/usr/local/php/ \
--with-config-file-path=/usr/local/php/etc/ \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-libxml-dir=/usr/local/libxml2 \
--with-jpeg-dir=/usr/local/jpeg6/ \
--with-png-dir=/usr/local/libpng/ \
--with-freetype-dir=/usr/local/freetype/ \
--with-gd=/usr/local/gd2/ \
--with-mcrypt=/usr/local/libmcrypt/ \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql --without-pear
但这里会报错configure: error: png.h not found.
,按道理说上面我们已经安装过了libpng
,但是还是不行,查了百度,发现还需要libpng-devel
,所以也要安装一下
yum install libpng-devel
安装成功,接下来make
的时候又报错了
老师也出现了这个问题,最后发现是我们在vim /usr/local/gd2/include/gd_io.h
编辑这个文件的时候,那一行加错位置了,应该加在这个地方
修改好之后保存,再次进入php目录进行make编译
出现这个页面就没什么问题了继续make insatll
终于不报错了
创建一个存放配置文件的目录
[root@localhost php-5.4.25]# mkdir /usr/local/php/etc
复制一下主配置文件
[root@localhost php-5.4.25]# cp php.ini-production /usr/local/php/etc/php.ini
#老师的配置文件存在的目录
vim /usr/local/apache2/etc
#但我的是在/etc目录下
vi /etc/httpd/httpd.conf
#只是目录不同而已,其他修改都一样
往下面拉,找了好久才找到,添加指定的那一行即可保存退出
重启apache
/usr/local/apache2/bin/apachectl restart
测试
apache与php
下面就进行测试,在/usr/local/apache2/htdocs/
目录下创建一个index.php
,写入
<?phpphpinfo();
>
进行访问
OK,说明apache能与php一同工作了
apache与MySQL
下面进行测试apache是否能和MySQL一起工作
在index.php页面写入如下代码即可测试
<?php
$link=mysql_connect('localhost','root','123456');
if($link) echo "hello,lemon";
mysql_close();
?>
说明mysql能与apache一起工作
因为命令式的mysql很难去操作,所以安装一下phpmyadmin
[root@localhost mysql]# cd /usr/src/lamp/
[root@localhost lamp]# cp -r phpMyAdmin-4.1.4-all-languages /usr/local/apache2/htdocs/phpmyadmin
进入phpmyadmin目录,生成它的配置文件
[root@localhost phpmyadmin]# cp config.sample.inc.php config.inc.php
#修改下访问类型
vim config.inc.php
#将cookie改成http
进行访问
到此,源码安装LAMP服务全部搞好了(哇真的真的真的太恶心了)
总结
感觉自己独立解决问题的能力真的提高了不少,耐心也增加了,也感觉搭建好之后挺爽的!!!
Centos7 LAMP服务源码搭建相关推荐
- LAMP环境源码搭建
准备环境 1.设置网卡:IP地址,网关,dns. 2.看情况设置自己的yum本地源或者网络源 3.关闭所有防护,防火墙与selinux 4.安装gcc* 和make工具 5.下载lamp环境源码包与依 ...
- LAMP/LNMP源码搭建(rockylinux8.6+php7.4.32+mysql8.0.30)
序号 主机 系统 作用 备注 1 stu:192.168.3.81 rockylinux8.6最小化安装 LAMP 2 stu:192.168.3.82 rockylinux8.6最小化安装 LNM ...
- Web服务 源码编译安装LAMP架构
Web服务 源码编译安装LAMP架构 一.LAMP架构 1.LAMP架构是什么 2.各组件的主要作用 二.编译安装Apache httpd服务 1.关闭防火墙,将安装Apache所需软件包传到/opt ...
- Centos6.5 LAMP环境源码包安装与配置,附安装包百度网盘地址
Centos6.5 LAMP环境源码包安装与配置 http://pan.baidu.com/s/1nvNruzv 安装包百度网盘地址 LAMP是一种web网络应用和开发环境,是linux,Apache ...
- 直播源码搭建教程5 分钟完成(直播 + 分流 + 画面水印)
直播源码搭建教程5 分钟完成(直播 + 分流 + 画面水印) 部署运行 服务器 安装docker(Centos7,其他系统请发挥你的搜索功能) $ yum -y install docker #安装d ...
- tp 扫码点餐 源码_同城跑腿系统小程序源码搭建平台模式案例
点击上方关注我们! 外卖跑腿配送软件开发,找[金经理:157-6875-2419微电],外卖跑腿配送系统开发,外卖跑腿配送系统小程序开发,外卖跑腿配送系统平台搭建,外卖跑腿配送系统开发模式,外卖跑腿配 ...
- 神兽大厅源码搭建SLB最佳实践
一.SLB概念 负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(Elastic Compute Service,简称 ECS)的流量分发控制服务. ...
- CentOS 6.7 源码搭建LNMP架构部署动态网站环境
源码搭建LNMP架构部署动态网站环境 Nginx 简介 Nginx是一款相当优秀的用于部署动态网站的服务程序,Nginx具有不错的稳定性.丰富的功能以及占用较少的系统资源等独特特性. Nginx (& ...
- 直播平台开发时iOS 开发内购功能,直播平台源码搭建
1.首先登录苹果账号,在直播平台源码搭建完成好后,进入后台管理中心添加商品,选择功能----App内购买项目------添加商品类型.商品的ID.以及说明信息. 2.在直播平台源码搭建后台创建沙盒测试 ...
最新文章
- 【seaborn】(1) 数据可视化,绘图风格、布局
- 智课雅思词汇---五、优词词根字典
- VMware Server 2.0简单学习!
- (转)同一服务器部署多个tomcat时的端口号修改详情
- Java栈内存溢出代码实例
- linux内核模块配置,如何为linux内核模块开发配置clang_complete?
- 数组合并假设有 n 个长度为 k 的已排好序(升序)的数组,请设计数据结构和算法,将这 n 个数组合并到一个数组,且各元素按升序排列。即实现函数-C-icoding-排序-数据结构
- 什么是IPsec协议
- java获取method,2.5 反射——Class对象功能_获取Method
- Kafka消费者组内各消费者分区分配
- 如何简单粗暴地上手 TensorFlow 2.0?
- 【BZOJ4660】Crazy Rabbit 结论+DP
- Linux下DNS服务器的基本搭建
- 怎样远程连接Access数据库
- 用阿里网盘有一段时间了,说说总体感受吧
- Google设置应用专用密码
- python元组是什么意思_python元组是什么意思
- 阿里云Win虚拟机挂载本地计算机硬盘
- android模拟器比较好,安卓模拟器哪个好用,好用的安卓模拟器有哪些
- Structure Boundary Preserving Segmentation for Medical Image with Ambiguous Boundary
热门文章
- 四十三、在Vue使用router,路由的管理
- 十四、爬取天气气温,制作最低气温排行榜
- SVM支持向量机(下)
- 2020-2-15技术积累-时间插件-前端获取后端数据生成表格
- 强烈推荐十大NLP主流经典项目:预训练BERT、知识图谱、智能问答、机器翻译、文本自动生成等...
- 2021年下半年,你还可以把论文投给这 9 个国际会议
- NLP免费直播 | 两周讲透图卷积神经网络、BERT、知识图谱、对话生成
- CVPR 2020 | 港中文提出3D目标检测新框架DSGN
- 基于DGCNN和概率图的轻量级信息抽取模型
- python画一个点_pygame学习笔记(2):画点的三种方法和动画实例