Linux搭建LAMP,源码安装

标签: linux  centos  php  mysql  apache

Linux搭建LAMP,源码安装

LAMP是Linux Apache MySQL PHP的简写,即把Apache、MySQL以及PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言,通常是网站。Apache 是最常用的Web服务软件,而MySQL是比较小型的数据库软件,这两个软件以及PHP都可以安装到Windows的机器上。
我们可以把Apache+PHP安装在一台机器上,再把MySQL安装在另外一台机器上,也可以把它们三个安装在同一台机器上。但Apache 和PHP需要在同- -台机器上,这是因为PHP是作为Apache的一个模块存在的,它们两个必须在-起。后面安装的时候就会明白。
下面来开始部署LAMP

前期准备

部署环境

所需环境或材料 版本
系统 centos 7.2
mysql mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz 5.6.39
apache httpd-2.4.37.tar.gz apr-util-1.6.1.tar.gz apr-1.6.5.tar.gz 2.4
php php-5.6.6.tar.gz 5.6.6
yum install -y gcc wget perl perl-devel libaio libaio-devel pcre-devel autoconf zlib-devel expat-devel net-tools
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo

安装mysql

在/usr/local/src目录下,下载mysql安装包,

cd /usr/local/src
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

下载好后解压到当前目录

tar -zxf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

创建数据库存放位置

mkdir -p /data/mysql

移动解压后的文件到/usr/local目录下,并命名为mysql

mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql

创建mysql账户

useradd -M mysql -s /sbin/nologin

将/data/mysql的所有者改为mysql用户

chown -R mysql:mysql /data/mysql

切换到/usr/local/mysql目录下

cd /usr/local/mysql

安装mysql

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

输出的字符中出现两个ok表示安装成功
复制mysql的配置文件到/etc目录下更名为my.cnf,因原目录下存在my.cnf所以要确定覆盖原文件(原my.cnf文件是属于mariadb数据库的配置文件所以要覆盖掉)

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

更改配置文件,使数据库的目录改为/data/mysql

sed -i '/^\[mysqld\]$/a\datadir = /data/mysql' /etc/my.cnf

复制启动脚本

cp support-files/mysql.server /etc/init.d/mysqld

更改启动脚本

sed -i 's#^datadir=#datadir=/data/mysql#' /etc/init.d/mysqld

给启动脚本权限

chmod 755 /etc/init.d/mysqld

添加启动命令

chkconfig --add mysqld
chkconfig mysqld on

开启mysql服务

service mysqld start

显示如下内容表示mysql部署成功
在这里插入图片描述

安装httpd

在/usr/local/src目录下,下载httpd、apr、apr-util源码包,并解压

cd /usr/local/src
wget  http://mirrors.sohu.com/apache/httpd-2.4.37.tar.gz
tar -zxf httpd-2.4.37.tar.gz
wget http://apache.fayea.com/apr/apr-1.6.5.tar.gz  && wget http://apache.fayea.com/apr/apr-util-1.6.1.tar.gz
tar -zxf apr-1.6.5.tar.gz && tar -zxf apr-util-1.6.1.tar.gz

复制apr、apr-util解压后的源码包到/usr/local/src/httpd-2.4.37/srclib/目录下并改名

cp -rf apr-1.6.5 /usr/local/src/httpd-2.4.37/srclib/apr && cp -rf apr-util-1.6.1 /usr/local/src/httpd-2.4.37/srclib/apr-util
cd /usr/local/src/apr-1.6.5

在/usr/local/src/apr-1.6.5目录中找到configure文件
编辑配置文件在文件中找到RM=’$RM’这一行修改为RM=‘RM -f’
编译apr并检查

./configure --prefix=/usr/local/apr
echo $?

检查输出为0后安装,并检查

make && make install
echo $?

检查输出为0后切换到apr-util源码目录下编译apr-util,并检查

cd /usr/local/src/apr-util-1.6.1
./configure --prefix=/usr/local/apr-utils --with-apr=/usr/local/apr
echo $?

检查输出为0后安装,并检查

make && make install
echo $?

检查结果输出为0后切换到httpd源码目录下编译httpd,并检查

cd /usr/local/src/httpd-2.4.37
./configure --prefix=/usr/local/apache2 --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre
echo $?

检出输出为0后安装,并检查

make && make install
echo $?

检查输出为0后,表示httpd安装成功

安装php

在/usr/local/src目录下,下载php源码包

cd /usr/local/src
wget http://mirrors.sohu.com/php/php-5.6.6.tar.gz

解压后切换到php源码包目录下

tar zxf php-5.6.6.tar.gz &&   cd php-5.6.6

yum安装编译安装时所需插件

yum install -y openssl-devel bzip2-devel \
libxml2-devel curl-devel libpng-devel \
libjpeg-devel freetype-devel libmcrypt-devel\
libtool-ltdl-devel perl-devel \
epel-release \
libmcrypt-devel

编译php,并检查

./configure \
 --prefix=/usr/local/php \
  --with-apxs2=/usr/local/apache2/bin/apxs \
 --with-config-file-path=/usr/local/php/etc  \
 --with-mysql=/usr/local/mysql \
 --with-libxml-dir \
 --with-gd \
--with-jpeg-dir \
 --with-png-dir \
 --with-freetype-dir \
 --with-iconv-dir \
 --with-zlib-dir \
 --with-bz2 \
 --with-openssl \
 --with-mcrypt \
--enable-soap \
 --enable-gd-native-ttf \
 --enable-mbstring \
--enable-sockets \
--enable-exif \
 --disable-ipv6

echo $?

检查输出为0后,安装php,并检查(这里安装的时间有点长,大概五分钟左右)

make && make install
echo $?

复制php配置文件,并改名为php.ini

cp php.ini-production /usr/local/php/etc/php.ini

修改httpd配置文件使httpd能解析php

sed -i '/AddType .*.gz .tgz$/a\AddType application\/x-httpd-php .php' /usr/local/apache2/conf/httpd.conf

sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php index.html index.htm/' /usr/local/apache2/conf/httpd.conf

添加index.php网页文件用于最后的测试

echo -e "<?php\n    phpinfo();\n?>" > /usr/local/apache2/htdocs/index.php

修改php配置文件

sed -i '/;date.timezone =$/a\date.timezone = "Asia\/Chongqing"'  /usr/local/php/etc/php.ini

在httpd.conf文件中找到#ServerName www.example.com:80一行,将开头的#去掉,启动httpd。

/usr/local/apache2/bin/apachectl restart

关闭防火墙

systemctl stop firewalld

在主机上浏览器中输入ip/index.html(ip为提供LAMP服务的主机ip),若显示如下内容表示httpd部署成功
在这里插入图片描述
再输入ip/index.php,若显示如下内容表示php部署成功,并httpd能正常解析php
在这里插入图片描述
至此LAMP部署结束。

版权声明:本文为qq_46028694原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_46028694/article/details/103641515

智能推荐

【学习笔记】03-v-html的学习和示例

v-html的认识和使用 示例: 显示结果: 注意:v-html是有复制的...

Java实现在线考试系统(系统介绍)

1.和现在有的考试系统有以下几种优势: a.和现在有的系统比较起来,本系统有科目、章节、老师、学生、班级等信息的管理,还有批阅试卷查看已批阅试卷等。传统的考试系统划分并不细,业务功能简单。 b.和学校的考试系统还有外面的考试系统比较起来,本系统是B/S结构,学校的考试系统一般为C/S结构,性能方面不如B/S结构,并且C/S接口需要安装客户端,客户端压力很大,我的系统只需要电脑具有浏览器,在同一局域...

计算机视觉--多视几何初步尝试

基础矩阵的原理 K和K’分别是两个相机的参数矩阵。p和p’是X在平面π的坐标表示。所以可以得出 具体计算过程 代码: #!/usr/bin/env python coding: utf-8 from PIL import Image from numpy import * from pylab import * import numpy as np from imp ...

java初学者怎么学习才可以快速入门

java初学者怎么学习才可以快速入门 一、了解JAVA 我们要知道:Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言。 Java之父:詹姆斯·高斯林 1.1 java的三个体系 Java SE(Java Platform Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境...

字段属性之主键&增删改查&自增长&唯一键约束

字段属性之主键&自增长&唯一键约束 主键 主键:primary key 主要的键 一张表中只有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复,这种称之为主键 一张表只能最多一个主键 增加主键 SQL操作中有多种方式增加主键大体分为三种 1.在创建表的时候直接在字段之后跟primary key关键字(主键本身不允许为空) 优点:非常直接:缺点:只能使用一个字段作为...

猜你喜欢

linux下 基于libmad的socket多用户mp3音频在线播放服务器

在众多大神的帮助下,这个在线播放流媒体服务器终于完成啦。。。。 这个mp3流媒体服务器设计的思路是,服务器程序server用多线程实现和多个客户端的通信(这是必然的),然后发送给客户端当前的音频列表公客户端选择,之后根据k客户端的选择给多个客户端传输相应mp3文件的数据,同时,客户端进行实时地音频解码并播放。 关于libmad开源mp3音频解码库的使用,见上一篇博客吧。。。。 在服务器程序这一端,...

Nginx

Nginx Nginx简介: Nginx是一个高性能的http和反向代理服务器,特点是有内存少,并发能力强,事实上Nginx的并发能力确实在同类型网页服务器中表现较好, Nginx用作web服务器:Nginx可以作为静态页面的web服务器,同时还支持CGI语言,但不支持java,java程序只能通过Tomcat配合完成。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受...

SpringCloud Alibaba - Sentinel入门案例(二)(流控规则 | 直接 / 关联 / 链路 / 快速失败 / Warm Up / 排队等待)

SpringCloud Alibaba - Sentinel入门案例(二)(流控规则 | 直接 / 关联 / 链路 / 快速失败 / Warm Up / 排队等待) 回溯 Sentinel 基本概念 正文 环境准备 流控规则介绍 简单介绍 对 阈值类型 / 单机阈值做 测试 流控模式 直接流控模式 关联流控模式 链路流控模式 资源名称的修改 链路模式正文 坑来了,怎么解决? 禁止收敛URL的入口 ...

SQL Server 无法创建索引 因为对象名称和索引名称重复

需求分析:如下图所示,给T_DD_OP1200_Final表的Id字段添加主键,保存时弹出 “T_DD_OP1200_Final”表 - 无法创建索引“PK_T_DD_OP1200_Final”。 因为发现对象名称 ‘dbo.T_DD_OP1200_Final’ 和索引名称 ‘PK_T_DD_OP1200_Fina...

Android中内存泄漏超级精炼详解

一、前期基础知识储备 (1)什么是内存? JAVA是在JVM所虚拟出的内存环境中运行的,JVM的内存可分为三个区:堆(heap)、栈(stack)和方法区(method)。 栈(stack):是简单的数据结构,但在计算机中使用广泛。栈最显著的特征是:LIFO(Last In, First Out, 后进先出)。后来者居上。(跟线程中队列的顺序恰好相反)栈中只存放基本类型和对象的引用(不是对象)。 ...