CentOS 7 编译部署 LAMP 环境

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: CentOS 7 编译部署 LAMP 环境

1、需求以及环境准备

1.1、版本需求

SERVICE VERSION
Linux CentOS 7.6
Apache 2.4.37
Mysql 5.7.25
Php 7.1.33
Openssl 1.1.1i
Curl 7.74.0
  • LAMP=Linux+Apache+Mysql+Php
  • LNMP=Linux+Nginx+Mysql+Php
  • LNMT=Linux+Nginx+Mysql+Tomcat

    • 当然,Mariadb也可以替换Mysql

1.2、环境准备

"内网服务器,没有要求的话,直接把firewalld关了"
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@localhost ~]# sestatus
SELinux status:                 disabled
[root@localhost ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
"主机名看需求修改,不是强制项"
[root@localhost ~]# hostnamectl set-hostname --static LAMP-Server

1.3、安装包准备

[root@LAMP-Server ~]# cd /usr/local/src/
[root@LAMP-Server src]# wget http://archive.apache.org/dist/httpd/httpd-2.4.37.tar.gz
[root@LAMP-Server src]# wget https://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
[root@LAMP-Server src]# wget https://archive.apache.org/dist/apr/apr-util-1.4.1.tar.gz
[root@LAMP-Server src]# wget https://ftp.pcre.org/pub/pcre/pcre-8.10.tar.gz
[root@LAMP-Server src]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.25.tar.gz
[root@LAMP-Server src]# wget https://www.php.net/distributions/php-7.1.33.tar.gz
[root@LAMP-Server src]# wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz
[root@LAMP-Server src]# wget https://github.com/curl/curl/releases/download/curl-7_74_0/curl-7.74.0.tar.gz
[root@LAMP-Server src]# tar xf httpd-2.4.37.tar.gz
[root@LAMP-Server src]# tar xf apr-1.4.5.tar.gz
[root@LAMP-Server src]# tar xf apr-util-1.4.1.tar.gz
[root@LAMP-Server src]# tar xf pcre-8.10.tar.gz
[root@LAMP-Server src]# tar xf mysql-boost-5.7.25.tar.gz
[root@LAMP-Server src]# tar xf php-7.1.33.tar.gz
[root@LAMP-Server src]# tar xf openssl-1.1.1i.tar.gz
[root@LAMP-Server src]# tar xf curl-7.74.0.tar.gz
"都是国外服务器,下载都比较慢,已经打包上传到百度云,担心有问题的,可以自己wget下载,或者使用迅雷下载"
链接:https://pan.baidu.com/s/1i_LZzXnRQsFEbgx8jrA9KA 
提取码:d4pj 

2、编译升级Openssl

"下载编译所需环境"
[root@LAMP-Server src]# yum -y install gcc gcc-c++ glibc make autoconf openssl-devel

2.1、查看当前Openssl版本

[root@LAMP-Server src]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

2.2、备份当前版本Openssl文件

[root@LAMP-Server src]# mv /usr/bin/openssl{,-1.0.2k}

2.3、编译新版本Openssl

[root@LAMP-Server src]# cd openssl-1.1.1i/
[root@LAMP-Server openssl-1.1.1i]# ./config shared --prefix=/usr/local/openssl-1.1.1i && make && make install

2.3、生成新版本Openssl

[root@LAMP-Server openssl-1.1.1i]# ln -s /usr/local/openssl-1.1.1i/bin/openssl /usr/bin/openssl
[root@LAMP-Server openssl-1.1.1i]# echo "/usr/local/openssl-1.1.1i/lib" >> /etc/ld.so.conf
[root@LAMP-Server openssl-1.1.1i]# /sbin/ldconfig
[root@LAMP-Server openssl-1.1.1i]# openssl version
OpenSSL 1.1.1i  8 Dec 2020

3、编译部署Apache

"Apache编译安装依赖apr、apr-util、pcre"
"使用 ./configure --help 命令可以查看相关的模块,有需要的模块,可以在编译的时候加入"
[root@LAMP-Server ~]# mkdir /usr/local/httpd-2.4.37
[root@LAMP-Server ~]# cd /usr/local/src/apr-1.4.5/
[root@LAMP-Server apr-1.4.5]# ./configure --prefix=/usr/local/httpd-2.4.37/apr-1.4.5 && 、
make && \
make install
--------------------------------------------------------------------------------------------------------------
[root@LAMP-Server ~]# cd /usr/local/src/apr-util-1.4.1/
[root@LAMP-Server apr-util-1.4.1]# ./configure --prefix=/usr/local/httpd-2.4.37/apr-util-1.4.1 \
--with-apr=/usr/local/httpd-2.4.37/apr-1.4.5 && \
make && \
make install
--------------------------------------------------------------------------------------------------------------
[root@LAMP-Server ~]# cd /usr/local/src/pcre-8.10/
[root@LAMP-Server pcre-8.10]# ./configure --prefix=/usr/local/httpd-2.4.37/pcre-8.10 && \
make && \
make install
--------------------------------------------------------------------------------------------------------------
[root@LAMP-Server ~]# cd /usr/local/src/httpd-2.4.37/
[root@LAMP-Server httpd-2.4.37]# ./configure --prefix=/usr/local/httpd-2.4.37 \
--with-apr=/usr/local/httpd-2.4.37/apr-1.4.5 \
--with-apr-util=/usr/local/httpd-2.4.37/apr-util-1.4.1 \
--with-pcre=/usr/local/httpd-2.4.37/pcre-8.10 && \
make && \
make install

3.1、启动Apache

[root@LAMP-Server ~]# echo 'export PATH=/usr/local/httpd-2.4.37/bin:$PATH' >> /etc/profile
[root@LAMP-Server ~]# source /etc/profile 
[root@LAMP-Server ~]# apachectl -k start
[root@LAMP-Server httpd-2.4.37]# curl http://192.168.72.128/
<html><body><h1>It works!</h1></body></html>
"可以访问到apache服务默认的内容了"

4、编译部署Mysql

"安装编译所需的环境依赖"
[root@LAMP-Server ~]# yum -y install gcc gcc-c++ cmake ncurses ncurses-devel bison
"创建mysql普通用户,禁止登陆bash"
[root@LAMP-Server ~]# useradd mysql -s /sbin/nologin
[root@LAMP-Server ~]# cd /usr/local/src/mysql-5.7.25/
[root@LAMP-Server mysql-5.7.25]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/src/mysql-5.7.25/boost/boost_1_59_0 \
-DWITH_SYSTEMD=1 && \
make && \
make install
  • 如果在cmake的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新cmake,否则依旧报错

4.1、修改mysql配置文件

"因为使用的是mysql普通用户,所以需要修改mysql目录的用户权限"
[root@LAMP-Server mysql-5.7.25]# chown -R mysql.mysql /usr/local/mysql/
"修改mysql配置文件"
[root@LAMP-Server ~]# cp /etc/my.cnf{,.bak}
[root@LAMP-Server ~]# vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
port=3306
character_set_server=utf8
# lower_case_table_names 让MYSQL不区分表名大小写
lower_case_table_names=1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mysql according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

4.2、mysql数据库初始化

"添加mysql命令到PATH环境变量"
[root@LAMP-Server ~]# echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@LAMP-Server ~]# source /etc/profile
"数据库初始化"
[root@LAMP-Server ~]# mysqld --initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
"数据库初始化后,密码为空"
2021-01-22T17:15:19.994597Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

4.3、启动mysql数据库

[root@LAMP-Server ~]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
[root@LAMP-Server ~]# systemctl daemon-reload
[root@LAMP-Server ~]# systemctl enable mysqld --now

4.4、修改数据库密码

[root@LAMP-Server ~]# mysqladmin -u root -p password 'Test123.com'    # Test123.com是新密码
Enter password:                                                       # 这里直接回车即可,初始密码是空的
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@LAMP-Server ~]# mysql -u root -p
Enter password:                                                      # 这时候需要上面设置的密码Test123.com

5、编译部署php

"安装编译所需的依赖"
[root@LAMP-Server ~]# yum -y install epel-release.noarch
[root@LAMP-Server ~]# yum -y install libxml2 libxml2-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel openssl-devel libjpeg-devel libpng libpng-devel freetype-devel 
[root@LAMP-Server ~]# useradd http -s /sbin/nologin
[root@LAMP-Server ~]# cd /usr/local/src/php-7.1.33/
[root@LAMP-Server php-7.1.33]# echo 'export PHP_OPENSSL_DIR=yes' >> /etc/profile
[root@LAMP-Server php-7.1.33]# source /etc/profile
[root@LAMP-Server php-7.1.33]# ./configure \
--prefix=/usr/local/php \
--exec-prefix=/usr/local/php \
--bindir=/usr/local/php/bin \
--sbindir=/usr/local/php/sbin \
--includedir=/usr/local/php/include \
--libdir=/usr/local/php/lib/php \
--mandir=/usr/local/php/php/man \
--with-config-file-path=/usr/local/php/etc \
--with-mysql-sock=/tmp/mysql.sock \
--with-mcrypt \
--with-mhash \
--with-openssl \
--with-mysqli=shared,mysqlnd \
--with-pdo-mysql=shared,mysqlnd \
--with-gd \
--with-iconv \
--with-zlib \
--enable-zip \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache \
--enable-fpm \
--with-fpm-user=http \
--with-fpm-group=http \
--without-gdbm \
--enable-fast-install \
--disable-fileinfo \
--with-php-config=/usr/local/bin/php-config \
--with-pdo-mysql=mysqlnd && \
make && \
make install
[root@LAMP-Server php-7.1.33]# echo 'export PATH=//usr/local/php/bin:$PATH' >> /etc/profile
[root@LAMP-Server php-7.1.33]# source /etc/profile
[root@LAMP-Server php-7.1.33]# php -v
PHP 7.1.33 (cli) (built: Jan 23 2021 01:59:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

5.1、配置php.ini以及php-fpm

[root@LAMP-Server ~]# cp /usr/local/src/php-7.1.33/php.ini-production /etc/php.ini
[root@LAMP-Server ~]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@LAMP-Server ~]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
[root@LAMP-Server ~]# cp /usr/local/src/php-7.1.33/sapi/fpm/php-fpm.service /usr/lib/systemd/system/
[root@LAMP-Server ~]# systemctl enable php-fpm.service --now

6、编译部署Curl

"Curl当前版本"
[root@LAMP-Server ~]# curl -V
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.53.1 zlib/1.2.7 libidn/1.28 libssh2/1.8.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
"备份当前版本的Curl"
[root@LAMP-Server ~]# mv /usr/bin/curl{,-7.29.0}
[root@LAMP-Server ~]# mv /usr/bin/curl-config{,-7.29.0}
[root@LAMP-Server ~]# cd /usr/local/src/curl-7.74.0/
./configure \
--prefix=/usr/local/curl-7.74.0  \
--without-nss \
--with-ssl=/usr/local/openssl-1.1.1i && \
make && \
make install
  • –without-nss是因为centos自带的curl支持的https是nss版本的,不是openssl的,我们这里要用openssl版本的
  • –with-ssl后面跟的openssl安装目录
  • 直接./configure,默认是不支持https协议的
"更新curl"
[root@LAMP-Server ~]# ln -s /usr/local/curl-7.74.0/bin/curl /usr/bin/curl
[root@LAMP-Server ~]# ln -s /usr/local/curl-7.74.0/bin/curl-config /usr/bin/curl-config
[root@LAMP-Server ~]# curl -V
curl 7.74.0 (x86_64-pc-linux-gnu) libcurl/7.74.0 OpenSSL/1.1.1i zlib/1.2.7
Release-Date: 2020-12-09
Protocols: dict file ftp ftps gopher http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets
  • 到此,一套完整的LAMP环境已经编译完成
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
监控 前端开发 Linux
centos7系统安装部署zabbix5.0
【9月更文挑战第23天】在CentOS 7系统上部署Zabbix 5.0的步骤包括:安装MariaDB数据库及必要软件包,配置Zabbix仓库,设置数据库并导入Zabbix数据库架构,配置Zabbix服务器与前端参数,启动相关服务,并通过浏览器访问Web界面完成安装向导。
258 0
|
3月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
573 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
2月前
|
Oracle 关系型数据库 MySQL
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
130 3
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
128 2
|
3月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
302 2
|
3月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
【10月更文挑战第7天】本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据自身需求选择合适的方法。
75 3
|
3月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
264 0
虚拟机centos7.9一键部署docker
|
4月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
704 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
3月前
|
安全 Linux 数据库连接
CentOS 7环境下DM8数据库的安装与配置
【10月更文挑战第16天】本文介绍了在 CentOS 7 环境下安装与配置达梦数据库(DM8)的详细步骤,包括安装前准备、创建安装用户、上传安装文件、解压并运行安装程序、初始化数据库实例、配置环境变量、启动数据库服务、配置数据库连接和参数、备份与恢复、以及安装后的安全设置、性能优化和定期维护等内容。通过这些步骤,可以顺利完成 DM8 的安装与配置。
429 0