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. Spring Cloud 网关服务 zuul 二

    有一点上篇文章忘了 讲述,nacos的加载优先级别最高.服务启动优先拉去配置信息.所以上一篇服务搭建我没有讲述在nacos 中心创建的配置文件 可以看到服务端口和注册中心都在配置文件中配置化 属性信息 ...

  2. ArangoDB安装方法整理

    目录 方法一:镜像安装 方法二:离线安装 方法三:在线安装 启动与停止服务 一.镜像安装(推荐方法) 安装docker 安装方法参见docker安装方法整理. 安装arangodb镜像: docker ...

  3. [翻译]——MySQL 8.0 Histograms

    前言: 本文是对这篇博客MySQL 8.0 Histograms的翻译,翻译如有不当的地方,敬请谅解,请尊重原创和翻译劳动成果,转载的时候请注明出处.谢谢! 英文原文地址:https://lefred ...

  4. Nginx篇--最初级用法web

    最近很久都没有写博客了,一来主要是时间不够每天回到家都接近晚上11点了,但是以后每天还是保证一篇随笔.好用来整理总结自己的知识. web服务器很有多例如:Apache nginx tengine li ...

  5. 网络安全-主动信息收集篇第二章SNMP扫描

    SNMP扫描: snmp在中大型企业中可以用来做网络管理和网络监控的使用,当开启了snmp简单网络管理后,那么客户机就可以通过这个协议向该设备发送snmp协议内容可以轻松查询到目标主机的相关信息. 以 ...

  6. 「刷题」xor

    说实话这道题没有A掉,不过所有的思路都是我自己想的,我觉得这个思路真的很棒很棒很棒的. 首先这个题的题面描述告诉我这种运算有封闭性,满足结合律和交换率,那么其实这个东西是个群运算了,而且这个群有单位元 ...

  7. CSPS模拟 81

    Z哥的题,真是见题如见人啊.. T1 实际状态数没有那么多,不要被数字吓倒就是了. 另外为什么吧轮廓线给忘了啊 T3 觉得自己是正解但是被hack了? 考试的时候想到了复杂度对的的解法,但是 spfa ...

  8. CSPS模拟 68

    令人kuku的一场考试, T1 令人kuku的贪心,反工了好几次,耗费了1h之久. T2 令人kuku的数据结构,到死也没调出来,还是细节问题,要积累. T3 令人kuku的二分答案. 先二分第一个答 ...

  9. NOIP模拟 32

    我在31反思中膜拜过了B哥 没想到这次又... 我给老姚家丢脸了...STO 首先T1暴力就写挂了... 贪图从$n^3$*$2^n$优化成$n^2$*$2^n$然后打错了 哗哗的扔分 而且正解都想不 ...

  10. FastDFS图片服务器单机安装步骤

    前面已经讲 一张图秒懂微服务的网络架构,通过此文章可以了解FastDFS组件中单机安装流程. 单机版架构图 以下为单机FastDFS安装步骤 一.环境准备 CentOS 7.X libfastcomm ...