源码编译安装LAMP

LAMP平台概述

什么是LAMP
​ 目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境
构成组件
​ Linux;Apache;MySQL;PHP/Perl/Python
LAMP的优势
​ 成本低廉
​ 可定制,易于开发
​ 方便易用,安全和稳定

Apache简介

Apache起源
​ 源于A Patchy Server,著名的开源Web服务软件
​ 1995年时,发布Apache服务程序的1.0版本
​ 由Apache软件基金会(ASF)负责维护
​ 最新的名称为"Apache HTTP Server"
​ 官方站点: http://httpd.apache.org/
主要特点
​ 开放源代码、跨平台应用
​ 支持种网页编程语言
​ 模块化设计、运行稳定、良好的安全性
软件版本
​ 1.X
​ 目前最高版本是1.3,运行稳定
​ 向下兼容性较好,但缺乏一些较新的功能
​ 2.X
​ 目前最高版本是2.4
​ 具有更多的功能特性
​ 与1.X相比,配置管理风格存在较大差异
编译安装httpd服务器
编译安装的优点
​ 具有较大的自由度,功能可定制
​ 可及时获得最新的软件版本
​ 普遍适用于大多数Linux版本,便于移植使用
获得Apache服务器的源码包
​ 参考地址: http://httpd.apache.org/download.cgi
httpd服务的目录结构
主要目录和文件
​ 服务目录: /usr/local/httpd/
​ 主配置文件: /usr/local/httpd/conf/httpd.conf
​ 网页目录: /usr/local/httpd/htdocs/
​ 服务脚本: /usr/local/httpd/bin/apachectl
​ 执行程序: /usr/local/httpd/bin/httpd
​ 访问日志: /usr/local/httpd/log/access-log
​ 错误日志: /usr/local/httpd/log/error-log

Web站点部署过程

​ 1:确定网站名字,IP地址
​ 2:配置并启动httpd服务
​ 3:部署网页文档
​ 4:在客户机中访问Web站点
​ 5:查看Web站点访问情况
httpd.conf配置文件
常见的全局配置参数
​ ServerRoot:服务目录
​ Listen:监听的IP地址、端口号
​ User:运行服务的用户身份
​ Group:运行服务的组身份
​ ServerAdmin:管理员邮箱
​ ServerName:网站服务器的域名
​ DocumentRoot:网页文档的根目录
​ Directorylndex:默认的索引页 文件
​ ErrorLog:设置错误日志文件的路径
​ LogLevel:记录日志的级别,默认为warn
​ CustomLog:访问日志文件的位置
​ PidFile:保存httpd进程PID号的文件
​ AddDefaultCharset:设置站点中网页默认的字符集编码
​ Timeout:网络连接超时,默认为300秒
​ KeepAlive:是否保持连接,可选On或Off
​ MaxKeepAliveRequests:每次连接最多请求文件数
​ KeepAliveTimeout:保持连接状态时的超时时间
​ Include:需要包含进来的其他配置文件

部署Apache平台

root@promote ~]# setenforce 0                 ##关闭linux核心防护

[root@promote ~]# systemctl stop firewalld.service    ##关闭防火墙

[root@promote ~]# cd /opt

[root@promote opt]# mkdir apache mysql php          ##建立三个目录

[root@promote opt]# ls
apache  a.sh  mysql  php  rh  test.txt

[root@promote opt]# cd apache/

[root@promote apache]# ls

[root@promote apache]# rz -E                ##把软件包拖进去
rz waiting to receive.

[root@promote apache]# ls
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2

[root@promote apache]# tar jxvf httpd-2.4.29.tar.bz2        ##解压软件包到当前目录

[root@promote apache]# ls
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29  httpd-2.4.29.tar.bz2

[root@promote apache]# tar zxvf apr-util-1.6.0.tar.gz        ##解压软件包

[root@promote apache]# tar zxvf apr-1.6.2.tar.gz                     ##解压软件包

[root@promote apache]# 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

[root@promote apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr          ##把解压的软件包移到/srclib/apr下面

[root@promote apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util  ##把解压的软件包移到/srclib/apr-util下面

[root@promote apache]# ls httpd-2.4.29/srclib/
apr  apr-util  Makefile.in

[root@promote apache]# yum -y install \       ##安装环境
> gcc \
> gcc-c++ \
> make \
> pcre-devel \                ##支持正则表达式
> expat-devel \               ##支持解析xml格式
> perl                        ##支持perl语言

[root@promote apache]# ls
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29  httpd-2.4.29.tar.bz2

[root@promote apache]# cd httpd-2.4.29/

[root@promote httpd-2.4.29]# ls
ABOUT_APACHE     CMakeLists.txt  INSTALL         NWGNUmakefile
acinclude.m4     config.layout   InstallBin.dsp  os
Apache-apr2.dsw  configure       LAYOUT          README
Apache.dsw       configure.in    libhttpd.dep    README.cmake
apache_probes.d  docs            libhttpd.dsp    README.platforms
ap.d             emacs-style     libhttpd.mak    ROADMAP
build            httpd.dep       LICENSE         server
BuildAll.dsp     httpd.dsp       Makefile.in     srclib
BuildBin.dsp     httpd.mak       Makefile.win    support
buildconf        httpd.spec      modules         test
CHANGES          include         NOTICE          VERSIONING

[root@promote httpd-2.4.29]# ./configure \        ##进行配置
> --prefix=/usr/local/httpd \       ##指定安装路径
> --enable-so \
> --enable-rewrite \
> --enable-charset-lite \
> --enable-cgi

[root@promote httpd-2.4.29]# make

[root@promote httpd-2.4.29]# make install

[root@promote httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd   ##把启动脚本放到/etc/init.d/httpd目录下

[root@promote httpd-2.4.29]# ls /etc/init.d
functions  httpd  netconsole  network  README

[root@promote httpd-2.4.29]# cd /etc/init.d

[root@promote init.d]# vim httpd       ##进配置文件修改 加入下面两行  进行优化
#chkconfig: 35 85 21    ## //35级别自动运行  第85个启动   第21个关闭
#description: Apache is a World Wide Web server    ## 这个属于描述性信息 可以不写

[root@promote init.d]# chkconfig --add httpd       ## 添加服务名称 便于server所识别

[root@promote init.d]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf    ##建立软连接

[root@promote init.d]# vim /etc/httpd.conf 
##1.进入配置文件查找Listen 监听端口 注释ipv6 开启ipv4  ipv4后面地址改成自己本地地址
##2.                    查找ServerName 修改域名

[root@promote init.d]# ln -s /usr/local/httpd/bin/* /usr/local/bin/    ##建立软连接

[root@promote init.d]# ls /usr/local/httpd/bin/
ab            apu-1-config  dbmmanage    fcgistarter   htdigest  httxt2dbm
apachectl     apxs          envvars      htcacheclean  htpasswd  logresolve
apr-1-config  checkgid      envvars-std  htdbm         httpd     rotatelogs

[root@promote init.d]# httpd -t            ## 验证语法
Syntax OK

[root@promote init.d]# service httpd start   ##启动服务

[root@promote init.d]# netstat -ntap | grep 80    ##查看80端口是否开启
tcp        0      0 192.168.169.100:80      0.0.0.0:*               LISTEN      48546/httpd  

最后进入网页输入网址看是否成功192.168.169.100
在这里插入图片描述

安装Mysql

[root@promote init.d]# cd /opt

[root@promote opt]# ls
apache  a.sh  mysql  php  rh  test.txt

[root@promote opt]# cd mysql/

[root@promote mysql]# ls

[root@promote mysql]# rz -E        ##把软件包拖进去
rz waiting to receive.

[root@promote mysql]# yum install -y ncurses-devel autoconf cmake  ##安装三个包 //Autoconf是一个用于包,以适应多种Unix类系统的 shell脚本的工具

[root@promote mysql]# ls
mysql-5.6.26.tar.gz

[root@promote mysql]# tar zxvf mysql-5.6.26.tar.gz    ##解压缩

[root@promote mysql]# cd mysql-5.6.26/

[root@promote mysql-5.6.26]# ls
BUILD            dbug                 libmysqld    regex          unittest
BUILD-CMAKE      Docs                 libservices  scripts        VERSION
client           Doxyfile-perfschema  man          sql            vio
cmake            extra                mysql-test   sql-bench      win
CMakeLists.txt   include              mysys        sql-common     zlib
cmd-line-utils   INSTALL-SOURCE       mysys_ssl    storage
config.h.cmake   INSTALL-WIN-SOURCE   packaging    strings
configure.cmake  libevent             plugin       support-files
COPYING          libmysql             README       tests

[root@promote mysql-5.6.26]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \     ##指定安装路径
> -DDEFAULT_CHARSET=utf8 \---------------------------------
> -DDEFAULT_COLLATION=utf8_general_ci \------------------##三行都是字符集的设定
> -DEXTRA_CHARSETS=all \-------------------------------------
> -DSYSCONFIDIP=/etc \                                  ##指定配置文件所在的位置
> -DMYSQL_DATADIR=/home/mysql/ \             ##数据文件存放的位置
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock     ##mysql.sock通信文件也是一个连接文件 连接数据库的文件

[root@promote mysql-5.6.26]# make

[root@promote mysql-5.6.26]# make install

[root@promote mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf  ##覆盖  这是配置文件
cp:是否覆盖"/etc/my.cnf"? yes

[root@promote mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld  ##启动脚本  复制

[root@promote mysql-5.6.26]# cd /etc/init.d/

[root@promote init.d]# ls
functions  httpd  mysqld  netconsole  network  README

[root@promote init.d]# chmod +x mysqld   ##给执行权限

[root@promote init.d]# chkconfig --add /etc/init.d/mysqld   ##让server管理mysqld 把名字告诉他

[root@promote init.d]# chkconfig --level 35 mysqld on    ##开机自启动

[root@promote init.d]# vim /etc/profile
进入配置文件在最后一行加入这段话  PATH=$PATH:/usr/local/mysql/bin

[root@promote init.d]# source /etc/profile    ##加载

[root@promote init.d]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

[root@promote init.d]# useradd -s /sbin/nologin mysql  ##添加管理用户

[root@promote init.d]# id mysql
uid=1001(mysql) gid=1001(mysql) 组=1001(mysql)

[root@promote init.d]# chown -R mysql.mysql /usr/local/mysql/  ##把主和组都变成mysql

[root@promote init.d]# cd /usr/local/mysql/

[root@promote mysql]# ls
bin      data  include         lib  mysql-test  scripts  sql-bench
COPYING  docs  INSTALL-BINARY  man  README      share    support-files

[root@promote mysql]# cd scripts/

[root@promote scripts]# ls
mysql_install_db

[root@promote scripts]# /usr/local/mysql/scripts/mysql_install_db \
> --user=mysql \
> --ldata=/var/lib/mysql \     ##数据库的库文件所在位置
> --basedir=/usr/local/mysql \    ##数据库服务文件所在位置 根目录
> --datadir=/home/mysql          ##数据存放位置

[root@promote scripts]# vim /etc/init.d/mysqld 
##进入配置文件查找basedir 去指定两个路径basedir=/usr/local/mysql
                                                            datadir=/home/mysql

[root@promote scripts]# service mysqld start   ##启动服务
Starting MySQL. SUCCESS! 

[root@promote scripts]# netstat -ntap | grep 3306   ##查看端口号
tcp6       0      0 :::3306                 :::*                    LISTEN      64488/mysqld  

[root@promote scripts]# mysqladmin -u root -p password "abc123"   ##设置管理员用户密码
Enter password:        ##这个是原始密码为空
Warning: Using a password on the command line interface can be insecure.

[root@promote scripts]# mysql -u root -p    ##登录数据库
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.26 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> quit
Bye

安装php

[root@promote php-5.6.11]# yum -y install \          ##安装环境
> gd \      ##处理图像的扩展库
> libpng \       ##png图片
> libpng-devel \
> pcre \          ##正则
> pcre-devel \
> libxml2-devel \        ##xml文件 
> libjpeg-devel           ##图片处理

[root@promote scripts]# cd /opt

[root@promote opt]# ls
apache  a.sh  mysql  php  rh  test.txt

[root@promote opt]# cd php/

[root@promote php]# ls

[root@promote php]# rz -E             ##把软件包拖进去
rz waiting to receive.

[root@promote php]# ls
php-5.6.11.tar.bz2

[root@promote php]# tar jxvf php-5.6.11.tar.bz2   ##解压

[root@promote php]# ls
php-5.6.11  php-5.6.11.tar.bz2

[root@promote php]# cd php-5.6.11/

[root@promote php-5.6.11]# ./configure \     ##进行配置
>--prefix=/usr/local/php5 \    ##把php装在 /usr/local/php5这个目录
>--with-gd \
>--with-zlib \
>--with-apxs2=/usr/local/httpd/bin/apxs \
>--with-mysql=/usr/local/mysql \     ##连接数据库 
>--with-config-file-path=/usr/local/php5 \           ##加载php5的模块
>--enable-mbstring   ##多字节字符串的处理

[root@promote php-5.6.11]# make

[root@promote php-5.6.11]# make install

[root@promote php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini    ##把配置文件php.ini复制到php5当中

[root@promote php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/    ##让命令让系统能识别

[root@promote php-5.6.11]# vim /etc/httpd.conf 
##1.进入配置文件查找AddType 在 #AddType application/x-gzip .tgz 这个后面加入两行语句
                                            AddType application/x-httpd-php .php
                                            AddType application/x-httpd-php-source .phps
##2.查找index  在 DirectoryIndex index.html 这段话中做修改   DirectoryIndex index.php index.html

[root@promote htdocs]# service httpd stop  

[root@promote htdocs]# service httpd start

[root@promote php-5.6.11]# cd /usr/local/httpd/htdocs/

[root@promote htdocs]# ls
index.html

[root@promote htdocs]# vim index.html 
进入配置文件加内容
<?php
phpinfo();
?>

[root@promote htdocs]# mv index.html index.php

进网址查看是否成功 192.168.169.100/index.php
在这里插入图片描述

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页