细讲 || 跟着做就会!!LAMP平台部署

LAMP介绍

LAMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和
相关软件,能够提供动态 Web 站点服务及其应用开发环境。LAMP 是一个缩写词,具
体包括 Linux 操作系统、Apache 网站服务器、MySQL 数据库服务器、PHP(或 Perl、
Python)网页编程语言。本章将以源码编译的方式搭建 LAMP 环境,能够满足企业定
制化的需求。
在构建 LAMP 平台时,各组件的安装顺序依次为 Linux、Apache、MySQL、PHP。
其中 Apache 和 MySQL 的安装并没有严格的顺序;而 PHP 环境的安装一般放到最后,
负责沟通 Web 服务器和数据库系统以协同工作。

安装Apache

将编译安装httpd的相关压缩包传到虚拟机

[root@localhost opt]# ls ##查看安装所需压缩包
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.bz2

解压到opt目录

[root@localhost ~]# tar zxf apr-1.6.2.tar.gz -C /opt
[root@localhost opt]# tar zxf /opt/apr-util-1.6.0.tar.gz -C /opt
[root@localhost opt]# tar jxf /opt/httpd-2.4.29.tar.bz2 -C /opt
[root@localhost opt]# ls
apr-1.6.2 apr-util-1.6.0 httpd-2.4.29
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2

将解压好的两个环境包放到httpd源码文件中

[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

安装编译器及其他工具

[root@localhost opt]# yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl \
zlib-devel

配置功能模块

[root@localhost httpd-2.4.29]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]# ls
ABOUT_APACHE BuildAll.dsp configure include LICENSE README test
……省略
[root@localhost httpd-2.4.29]# ./configure
–prefix=/usr/local/httpd \ ‘//指定路径’
–enable-so \ ‘//开启核心功能模块’
–enable-rewrite \ ‘//开启重写功能,如防盗链保护’
–enable-charset-lite \ ‘//开启字符集’
–enable-cgi \ ‘//开启通用网关接口’
–enable-cgid \
–enable-deflate ‘//开启deflate压缩模块’

make编译安装

[root@localhost httpd-2.4.29]# make -j3 && make install

配置启动脚本

[root@localhost ~]# cd /usr/local/httpd/bin/
[root@localhost bin]# ls
ab apr-1-config apxs dbmmanage envvars-std htcacheclean htdigest httpd logresolve
apachectl apu-1-config checkgid envvars fcgistarter htdb htpasswd httxt2dbm rotatelogs

优化httpd服务执行方式需要先优化路径

[root@localhost bin]# ln -s /usr/local/httpd/conf/httpd.conf /etc/ ##可以通过/etc/httpd.conf修改配置
[root@localhost bin]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

优化httpd服务执行方式

[root@localhost ~]# cd /lib/systemd/system/

[root@localhost system]# vim httpd.service  写入优化服务启动项配置
[Unit]
Description=The Apache HTTP Server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart= /usr/local/bin/apachectl $OPTIONS
ExecrReload= /bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

[root@localhost system]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost system]# systemctl is-enabled httpd.service ###检查HTTP单元是否启动优化路径
enabled
[root@localhost bin]# systemctl start httpd
[root@localhost bin]# systemctl enable httpd

测试Apache服务

配置DNS服务器(DNS服务器IP:20.0.0.129)

[root@localhost named]# vi /etc/named.conf 
options {
        listen-on port 53 { 20.0.0.129; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };

[root@localhost named]# vi /var/named/51xit.com.zone 
$TTL    1D
@       IN SOA  51xit.com.       admin.51xit.com. (
                                                0       ; serial
                                                1D      ; refresh
                                                1H      ; retry
                                                1W      ; expire
                                                3H )    ; minium
             NS      @
            A       20.0.0.11
www   IN    A       20.0.0.11

[root@localhost named]# vi /var/named/kgc.com.zone 
$TTL    1D
@       IN SOA  kgc.com.       admin.kgc.com. (
                                                0       ; serial
                                                1D      ; refresh
                                                1H      ; retry
                                                1W      ; expire
                                                3H )    ; minium
            NS      @
            A       20.0.0.11
www   IN    A       20.0.0.11

[root@localhost named]#chown named:named /var/named/kgc.com.zone
[root@localhost named]#chown named:named /var/named/51xit.com.zone

去另一台虚拟机测试网页

[root@localhost opt]# vi /etc/resolv.conf ##配置DNS
nameserver 20.0.0.129

在这里插入图片描述

安装MySQL数据库

[root@localhost opt]# ls  //查看源码包是否准备好
mysql-boost-5.7.20.tar.gz  
……省略部分
[root@localhost opt]# yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
[root@localhost opt]# useradd -s /sbin/nologin mysql  //新增mysql作为禁止登入的程序账号
[root@localhost opt]# tail -1 /etc/passwd  //查看新增用户
mysql: x:1001:1001::/home/mysql:/sbin/nologin
[root@localhost opt]# tar xf mysql-boost-5.7.20.tar.gz  //解压源码包
[root@localhost opt]# ls  查看解压后目录文件
 mysql-5.7.20  mysql-boost-5.7.20.tar.gz  ……省略部分
[root@localhost opt]# cd /opt/mysql-5.7.20
[root@localhost mysql-5.7.20]# cmake \      ##mysql需要用到cmake安装
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ ##指定安装目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ ##指定连接文件
-DSYSCONFDIR=/etc \  ##指定配置文件位置
-DSYSTEMD_PID_DIR=/usr/local/mysql \  ##指定PID文件位置
-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=boost \    ##加载底层一个支持C++的运行库
-DWITH_SYSTEMD=1  ##mysql编号,确定主从关系用

[root@localhost mysql-5.7.20]# make -j3 && make install
[root@localhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/
[root@localhost mysql-5.7.20]# vi /etc/my.cnf
[client]
port = 3306   声明使用的端口号
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
[root@localhost mysql-5.7.20]# chown mysql:mysql /etc/my.cnf

设置环境变量

[root@localhost mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# echo 'export PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# source /etc/profile

[root@localhost mysql-5.7.20]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld
–initialize-insecure
–user=mysql
–basedir=/usr/local/mysql
–datadir=/usr/local/mysql/data
[root@localhost mysql]# systemctl enable mysqld
[root@localhost mysql]# systemctl start mysqld
[root@localhost mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-09-05 18:54:09 CST; 7ms ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
……省略部分
[root@localhost ~]# netstat -ntap|grep 3306
tcp6 0 0 ::3306 ::: LISTEN 50925/mysqld
[root@localhost ~]# mysqladmin -u root -p password “abc123” ‘//给root用户设置密码’
##mysqladmin -u用户名 -p旧密码 password 新密码,初次设置时没有旧密码,因此直接回车就可以了,password后面跟的新密码
[root@localhost mysql]# mysqladmin -u root -p password ##password 后面不跟新密码,则需要进入交互模式中手动输入两次

安装PHP

[root@localhost opt]# ls ##查看压缩包
……省略部分
php-7.1.10.tar.bz2

[root@localhost php-7.1.10]# tar xf php-7.1.10.tar.bz2

安装依赖环境

[root@localhost ~]# yum -y install
libjpeg \
libjpeg-devel \
libpng \
libpng-devel \
freetype \
freetype-devel \
libxml2 \
libxml2-devel \
zlib \
zlib-devel \
curl \
curl-devel \
openssl \
openssl-devel

[root@localhost php-7.1.10]# cd php-7.1.10

配置php

[root@localhost php-7.1.10]# ./configure
–prefix=/usr/local/php \
–with-apxs2=/usr/local/httpd/bin/apxs \
–with-mysql-sock=/usr/local/mysql/mysql.sock \
–with-mysqli \
–with-zlib \
–with-curl \
–with-gd \
–with-jpeg-dir \
–with-png-dir \
–with-freetype-dir \
–with-openssl \
–enable-mbstring \
–enable-xml \
–enable-session \
–enable-ftp \
–enable-pdo \
–enable-tokenizer \
–enable-zip

[root@localhost opt]# cp php.ini-development /usr/local/php/lib/php.ini
[root@localhost opt]# vi /usr/local/php/lib/php.ini
……省略部分
mysqli.default_socket = /usr/local/mysql/mysql.sock //后面填入数据库连接文件路径
……省略部分
date.timezone = Asia/Shanghai 后面写入上海时区(注意前面的”;”分号要删去)
……省略部分

[root@localhost opt]# /usr/local/php/bin/php -m //验证安装的模块,可以查看到各个模块
[PHP Modules]
Core
ctype
curl
date
……省略部分

[root@localhost opt]# vi /etc/httpd.conf 
……省略部分
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php  //插入这行文字(在此处插入方便后期寻找)
    AddType application/x-httpd-php-source .phps  //插入这行文字(方便后期寻找)
……省略部分
<IfModule dir_module>
 DirectoryIndex index.html
 DirectoryIndex index.php index.html  //插入这行文字 (在此处插入方便后期寻找)
</IfModule>
……省略部分
[root@localhost opt]# rm -f /usr/local/httpd/htdocs/index.html  //删去原来的首页文件
[root@localhost opt]# vi /usr/local/httpd/htdocs/index.php  //新增php首页
<?php
phpinfo();
?>

测试

输入Apache服务器地址
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CN_LiTianpeng/article/details/108420765
今日推荐