1、查看系统版本

[niemx@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

2、安装软件准备

(1)apr-1.5.2.tar.bz2

Apache可移植运行时(APR)是Apache web服务器的支持库。它提供了一组映射到底层操作系统(OS)的应用程序编程接口(api)。如果操作系统不支持特定的功能,APR将提供一个仿真。因此,程序员可以使用APR使程序跨不同平台进行移植。APR对于Tomcat最大的作用就是socket调度。

下载地址http://archive.apache.org/dist/apr/apr-1.5.2.tar.bz2

(2)apr-util-1.5.4.tar.bz2

apr-util和apr都是为上层应用提供的运行库。为没有stl库的C语言提供了一些数据结构和操作系统封装接口。显然apache的许多软件都是以apr/apr-util为基础库进行开发的。apr-util只是在apr的基础上提供了更多的数据结构和操作系统封装接口而已。

下载地址http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.bz2

(3)pcre-8.43.tar.gz

PCRE(PerlCompatibleRegularExpressions)是一个Perl库,包括perl兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl5同样的语法和语义是很有用的。httpd编译过程需要依赖于pcre-devel软件包。

下载地址https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz

(4)httpd-2.4.41.tar.gz

httpd为Apache HTTP服务器程序。直接执行程序可启动服务器的服务。

下载地址http://www.apache.org/dist/httpd/httpd-2.4.41.tar.gz

(5)mysql-5.6.25.tar.gz

先查看linux版本,下载mysql源码包时要选择对应的系统的源码包。

[niemx@localhost ~]$ uname -a
Linux localhost.localdomain 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18 15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

下载地址https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.46.tar.gz

(6)php-5.6.37.tar.bz2

下载地址https://www.php.net/distributions/php-5.6.37.tar.bz2

**直接在linux中下载源码包可能比较慢,可以在windows中下载好,然后安装lrzsz,使用SecureCRT传输到linux服务器**

3、编译安装apache

(1)安装apr

# tar -xjvf apr-1.5.2.tar.bz2
# cd apr-1.5.2
# ./configure --prefix=/usr/local/apr
# make && make install
(2)安装apr-util
# tar -xjvf apr-util-1.5.4.tar.bz2
# cd apr-util-1.5.4
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
(3)安装pcre
# tar -zxvf pcre-8.43.tar.gz
# cd pcre-8.43
# ./configure --prefix=/usr/local/pcre
# make && make install
(4)创建用户、组
# groupadd -r apache
# useradd -r -g apache apache
(5)安装httpd
# tar -zxvf httpd-2.4.41.tar.gz
# cd httpd-2.4.41
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
---------------------------------------------------------------------------------------------------
出现如下错误:
**checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures**
没有安装openssl-devel
解决方式:yum install openssl-devel
然后重新执行./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
---------------------------------------------------------------------------------------------------
#make && make install
(6)配置apache并设置开机启动
# vi /etc/httpd/httpd.conf
(1)搜索ServerName www.example.com:80 去掉前面的注释
(2)修改DocumentRoot到/home/htdocs,以及这一行下面的一句中的<Directory到/home/htdocs 这个是www的根目录设置
# mkdir -p /home/htdocs 
# cp /usr/local/apache/htdocs/index.html /home/htdocs
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
# vi httpd 在第一行下添加如下两行文字(#!/bin/sh下面)
# chkconfig: 2345 90 90 #注意前面要加上#号
# description:http server #注意前面要加上#号
注册该服务
# chkconfig --add httpd #所有开机模式下自启动
# chkconfig httpd on #345开机模式下自启动
(7)关闭防火墙,验证apache是否安装成功
查看防火墙状态
# systemctl status firewalld.service
临时关闭防火墙
# systemctl stop firewalld.service
永久关闭防火墙
# systemctl status firewalld.service
启动apache
# /usr/local/apache/bin/apachectl start
浏览器访问服务器IP地址,出现“It works”表示apache安装成功
关闭apache
# /usr/local/apache/bin/apachectl stop
4、编译安装MySQL
(1)创建用户、组
# mkdir /usr/local/mysql
# mkdir /home/data
# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /home/data mysql
# chown -R mysql:mysql /home/data
# chown -R mysql:mysql /usr/local/mysql
(2)安装
从mysql5.5起,mysql源码安装开始使用cmake了,设置源码编译配置脚本
# yum -y install cmake
# yum -y install ncurses-devel
# tar -xzvf mysql-5.6.46.tar.gz
# cd mysql-5.6.46
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/home/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
# make && make install
(3)初始化mysql数据库
拷贝启动的服务脚本
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
改变环境变量
# echo 'PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
# source /etc/profile
修改配置文件
# vim /etc/my.cnf

[mysqld]
server_id=1
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
log_bin=/usr/local/mysql/mysql-bin
log_error=/var/log/mysql.log
character-set-server=utf8

[client]
socket=/usr/local/mysql/mysql.sock

忘记mysql的登录密码了
vi /etc/my.cnf
在最后一行添加上:skip-grant-tables
保存退出,重启mysql,
mysql>use mysql;

mysql> UPDATE user SET authentication_string= password ( 'root' ) WHERE User = 'root' ;//单引号内的字符即使需要设置的新密码(无password字段的版本)

mysql>update user set password=password('root') where user='root';(有password字段的版本)

mysql>quit;

删除/etc/my.cnf文件里面的“skip-grant-tables”。最后重启,输入新密码就可以了。

5、编译安装PHP

(1)解决依赖关系

# yum -y install bzip2-devel libmcrypt-devel libxml2-devel

安装libmcrypt-devel 需要配置epel源

# rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm

# yum clean all

# yum makecache

# yum update

# yum install -y libmcrypt-devel

(2)安装php

# tar -xjvf php-5.6.37.tar.bz2

# cd php-5.6.37

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts

# make && make install

(3)修改配置

# cp php.ini-production /etc/php.ini

# vim /etc/httpd/httpd.conf

<IfModule unixd_module>

...

User apache
Group apache

...

</IfModule>

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

<IfModule mime_module>

...

AddType application/x-httpd-php  .php

...

</IfModule>

重新启动httpd

# service httpd restart

------------------------------------------------------------------

**/usr/local/apache/bin/apachectl: line 95: lynx: command not found**

错误解决方式: # yum install lynx -y

-----------------------------------------------------------------

(4)编写测试代码

测试页面index.php示例如下:
    <?php
      $link = mysql_connect('127.0.0.1','root','root');
      if ($link)
        echo "mysql connected success.";
      else
        echo "mysql connected faild.";
      mysql_close();
      phpinfo();
    ?>

Centos7 搭建LAMP环境(编译安装)的更多相关文章

  1. linux下搭建lamp环境以及安装swoole扩展

    linux下搭建lamp环境以及安装swoole扩展   一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源  我安装的环境是:apache2.2.15+mysql5 ...

  2. Centos7之LNMP环境编译安装

    Centos7之LNMP环境编译安装 一.系统环境准备 注:安装时间过长,只做参考!!!1.系统信息 [root@localhost ~]# uname -r 3.10.0-957.el7.x86_6 ...

  3. Ubuntu 17.10 用 apt 搭建 lamp 环境、安装 phpmyadmin、redis 服务+扩展、mysql 扩展、开启错误提示、配置虚拟主机

    2018-02-24 13:50:30 更新: 个人喜欢相对原生又不太麻烦,所以用 apt 构建环境.不过,最近使用到现在记得出现过了 3 次 apache 或 mysql 服务器无法启动或无法连接的 ...

  4. lamp环境编译安装curl扩展

    Linux编译安装php扩展包curl 1.curl,主要用于发送http请求,是php的一个扩展包. 2.安装过程: (1)curl下载:http://curl.haxx.se/download.h ...

  5. Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)

    1.搭建MySQL数据库 安装MariaDB yum install mariadb-server -y 启动MySQL服务 emctl start mariadb #启动服务 emtcl enabl ...

  6. Centos7搭建lamp环境

    首先安装apache Centos7默认已经安装httpd服务,只是没有启动. 如果需要重新安装,输入 yum install -y httpd 启动服务: systemctl start httpd ...

  7. CentOS7.X+LAMP环境下安装zabbix4.X

    1.安装zabbix仓库 rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noar ...

  8. Linux lamp环境编译安装

    1.安装准备: 1)httpd-2.0.52.tar.gz 2)mysql-4.1.12.tar.gz 3)libxml2-2.6.27.tar 4)freetype-2.1.10.tar 5)gd- ...

  9. Centos7+Apache2.4+php5.6+mysql5.5搭建Lamp环境——为了wordPress

    最近想搭建个人博客玩玩,挑来挑去发现口碑不错的博客程序是wordpress,简称wp.虽然是学java路线的程序员,但因入行时间太短,至今没有发现较为称手开源的博客程序,如果各位大神有好的推荐,也希望 ...

随机推荐

  1. solr学习篇(三) solr7.4 连接MySQL数据库

    目录 导入相关jar包 配置连接信息 将数据库导入到solr中 验证是否成功 创建一个Core,创建Core的方法之前已经很详细的讲解过了,如果还是不清楚请参考 solr7.4 安装配置篇: 1.导入 ...

  2. Java基础(十七)日志(Log)

    1.日志的概念 在调试有问题的代码时,经常需要插入一些System.out.println方法来观察程序运行的操作过程.但是,一旦发现了问题并且解决了问题,就需要将这些System.out.print ...

  3. 读effection java

    1.考虑用静态工厂方法代替构造器 public static Boolean valueOf(boolean b){ return b?Boolean.TRUE:Boolean.FALSE; } 静态 ...

  4. Nginx、WSGI、 uWSGI、 uwsgi的区别

    当我们部署完一个应用程序,浏览网页时具体的过程是怎样的呢?首先我们得有一个 Web 服务器来处理 HTTP 协议的内容,Web 服务器获得客户端的请求,交给应用程序,应用程序处理完,返回给 Web 服 ...

  5. iOS开发 swift 3dTouch实现 附代码

    iOS开发 swift 3dTouch实现 附代码 一.What? 从iphone6s开始,苹果手机加入了3d touch技术,最简单的理解就是可以读取用户的点击屏幕力度大小,根据力度大小给予不同的反 ...

  6. 如何往Spark社区做贡献,贡献代码

    随着社区正在努力准备Apache Spark的下一版本3.0,您可能会问自己“我如何参与其中?”.现在的Spark代码已经很庞大,因此很难知道如何开始自己做出贡献.Spark PMC & Co ...

  7. 安装实时查看日志工具 log.io

    官网:http://logio.org/ 一.环境 [root@centos ~]# cat /etc/system-release CentOS release 6.5 (Final) [root@ ...

  8. Bash 通配符、正则表达式、扩展正则表达式

    BASH中的通配符(wildcard) *:任意长度的任意字符. ?:任意单个字符 []:匹配范围 [^]:排除匹配范围 [:alnum:]:所有字母和数字 [:alpha:]:所有字母 [:digi ...

  9. 学习笔记29_MVC异步上传图片

    前台 <script type="text/javastript"> $(fuction(){ $("#btnsub").click(fuction ...

  10. Go defer使用

    defer使用语法 //defer后面必须是函数调用语句或方法调用语句,不能是其他语句,否则编译器会出错. package main import ( "fmt" ) func f ...