centos 7.6—— 搭建LAMP平台(手工编译Apache、mysql 、PHP、论坛)

白昼怎懂夜的黑 提交于 2020-08-06 13:15:24

centos 7.6—— 搭建LAMP平台(手工编译Apache、mysql 、PHP、论坛)

LAMP平台概述

(1) 什么是LAMP

  • 目前最为成熟的一种企业网站应用模式,可提供动态web站点应用及开发环境

(2) 构成组件

  • Linux、Apache、MySQL、PHP/Perl/Python

(3) LAMP的优势

  • 成本低廉
  • 可定制、易于开发
  • 方便易用、安全和稳定

Apache 起源

  • 源于 A Patchy Server,著名的开源web服务软件
  • 1995年时,发布Apache服务程序的1.0 版本
  • 由Apache软件基金会(ASF)负责维护
  • 最新的名称为 “ Apache HTTP Server ”
  • 官方站点: http://httpd.apache.org/

Apache 简介

(1) 主要特点

  • 开放源代码、跨平台应用
  • 支持多种网页编程语言
  • 模块化设计、运行稳定、良好的安全性

软件版本

1.X

  • 目前最高版本是1.3 ,运行稳定
  • 向下兼容性较好,但缺乏一些较新的功能

2.X

  • 目前最高版本是2.4
  • 具有更多的功能特性
  • 与1.X 相比,配置管理风格存在较大差异

(2) 编译安装的优点

  • 具有较大的自由度,功能可定制
  • 可及时获得最新的软件版本
  • 普遍适用于大多数Linux版本,便于移值使用
  • 获得Apache服务器的源码包
  • 参考地址:http://httpd.apache.org/download.cgi

(3) httpd服务的目录结构

主要目录和文件

  1. 服务目录:/usr/local/httpd/
  2. 主配置文件:/usr/local/httpd/conf/httpd.conf
  3. 网页目录:/usr/local/httpd/htdocs
  4. 服务脚本:/usr/local/httpd/bin/apachectl
  5. 执行程序:/usr/local/httpd/bin/httpd
  6. 访问日志:/usr/local/httpd/log/access_log
  7. 错误日志:/usr/local/httpd/log/error_log

(4) httpd.conf 常用的全局配置参数

  • ServerRoot: 服务目录
  • Listen:监听的IP地址、端口号
  • User:运行服务的用户身份
  • Group: 运行服务的组身份
  • ServerName:网站服务器的域名
  • DocumentRoot:网页文档的根目录
  • DirectoryIndex : 默认的索引页文件
  • Errorlog : 设置错误日志文件的路径
  • LogLevel:记录日志的级别,默认为warn
  • CustomLog:访问日志文件的位置
  • PidFile : 保存httpd进程PID号的文件
  • AddDefaultCharset:设置站点中网页默认的字符集编码
  • Timeout :网络连接超时,默认为300秒
  • KeepAlice:是否保持连接,可选On或Off
  • MaxKeepAliceRequests : 每次连接最多请求文件数
  • KeepAliveTimeout : 保持连接状态时超时时间
  • include : 需要包含进来的其他配置文件

一、手工编译Apache

准备阶段

安装包:apr-1.7.0.tar.gz 、apr-util-1.6.1.tar.gz 、httpd-2.4.25.tar.gz

实验步骤


[root@localhost opt]# tar zxvf apr-1.7.0.tar.gz -C /opt
[root@localhost opt]# tar zxvf apr-util-1.6.1.tar.gz -C /opt
[root@localhost opt]# tar zxvf httpd-2.4.25.tar.gz -C /opt
[root@localhost opt]# mv apr-1.7.0/ httpd-2.4.25/srclib/apr
[root@localhost opt]# mv apr-util-1.6.1/ httpd-2.4.25/srclib/apr-util               
[root@localhost opt]#  yum -y install gcc gcc-c++ make pcre-devel expat-devel perl   ==//安装gcc的编译和pcre 包是per语言==
[root@localhost httpd-2.4.25]#  ./configure \
>--prefix=/usr/local/httpd \
>--enable-so--enable-rewrite\
>--enable-charset-lite\
--enable-cgi
[root@localhost httpd-2.4.25]#make
[root@localhost httpd-2.4.25]#make install
[root@localhost httpd-2.4.25]# cd /usr/local/       //到安装路径
[root@localhost local]# cd httpd/
[root@localhost httpd]# cd conf/



设置配置文件软链接到/etc/init.d

[root@promote bin]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@promote bin]# ls /etc/init.d
functions  httpd  netconsole  network  README
[root@promote bin]# vim /etc/init.d
[root@promote bin]# vim /etc/init.d/httpd 

#!/bin/sh
#chkconfig: 35 85 21 //35级别自动运行  第85个启动  第21个关闭
#description:Apache is a World Wide Web server

[root@promote local]# chkconfig --add httpd    //将httpd加入到service 管理器
[root@promote /]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf   //将http的配置文件做软链接到/etc/httpd.conf

[root@promote local]# cd /usr/local/httpd/conf

[root@promote conf]# vim httpd.conf 

Listen 192.168.75.134:80  //修改Apache服务器的地址
#Listen 80
#ServerName www.kgc.com:80  //设置域名的地址

[root@promote /]# ln -s /usr/local/httpd//bin/* /usr/local/bin  //将http的数据文件软链接到/usr/local/bin目录中
[root@promote /]# ls /usr/local/httpd//bin
ab            checkgid     htcacheclean  httxt2dbm
apachectl     dbmmanage    htdbm         logresolve
apr-1-config  envvars      htdigest      rotatelogs
apu-1-config  envvars-std  htpasswd
apxs          fcgistarter  httpd
[root@promote /]# service httpd start
httpd (pid 66785) already running

[root@promote /]# httpd -t  //检查语法
Syntax OK
[root@promote /]# netstat -ntap | grep 80
tcp        0      0 192.168.75.134:80       0.0.0.0:*               LISTEN      66785/httpd         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      8031/dnsmasq        
[root@promote /]# 
[root@promote /]# iptables -F
[root@promote /]# setenforce 0
[root@promote /]# 


在这里插入图片描述

二、手工编译MySQL

  • MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
  • MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
  • MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

常用数据库的语句

1:使用SHOW语句找出在服务器上当前存在什么数据库:

mysql> SHOW DATABASES;

2:创建一个数据库MYSQLDATA

mysql> CREATE DATABASE MYSQLDATA;

3:选择你所创建的数据库

mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)

4:查看现在的数据库中存在什么表

mysql> SHOW TABLES;

MySQL配置文件目录

准备阶段

安装包

mysql-5.6.26.tar.gz

实验步骤

  • 安装 cmake 编译

[root@promote mysql]# yum install ncurses-devel autoconf cmake -y   //安装编译器
[root@promote mysql]# cd mysql-5.6.26/
[root@promote mysql-5.6.26]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   //设置安装路径
> -DDEFAULT_CHARSET=utf8 \        //设置字体样式
> -DDEFAULT_COLLATION=utf8_general_ci \       // 指定默认使用的字符集校对规则
> -DEXTRA_CHARSETS=all \     //字符集的设置
> -DSYSCONFIDIR=/etc \     //指定初始化参数文件目录(数据库的配置文件)
> -DMYSQL_DATADIR=/home/mysql/ \    //指定数据库的数据存在家目录
> -DMYSQL_UNIX_ADDR=/home/mysql/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"? y
[root@promote mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld    //添加系统服务
[root@promote mysql-5.6.26]# chmod 755 /etc/init.d/mysqld   //给mysqld 文件添加权限
[root@promote mysql-5.6.26]# 
[root@promote mysql-5.6.26]# vim /etc/profile   //设置环境变量
PATH=$PATH:/usr/local/mysql/bin
[root@promote mysql-5.6.26]# source /etc/profile  //环境变量文件生效
[root@promote mysql-5.6.26]# echo $PATH   //查看环境变量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
[root@promote mysql-5.6.26]# useradd -s /sbin/nologin mysql   //新建用户
[root@promote mysql-5.6.26]# id mysql
uid=1001(mysql) gid=1001(mysql)=1001(mysql)
[root@promote mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/   //数据库的文件进行权限设置
[root@promote mysql-5.6.26]# cd /usr/local/mysql/scripts
[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

在这里插入图片描述

[root@promote scripts]# service mysqld start   //开启mysqld 服务
Starting MySQL SUCCESS! 
[root@promote scripts]# netstat -ntap | grep 3306   //查看端口号是否开启
tcp6       0      0 :::3306                 :::*                    LISTEN      32064/mysqld        
[root@promote scripts]# mysqladmin -u root -p password "abc123"  //设置MySQL用户的密码
Enter password: 
Warning: Using a password on the command line interface can be insecure.
[root@promote scripts]# mysql -u root -p   //登录数据库
Enter password:   //密码是之前设置的‘abc123’
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> show databases;  //查看数据库信息
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
[root@promote scripts]# quit   //退出数据库


三、手工编译PHP

gd 库是 PHP 处理图形的扩展库,它提供了一系列用来处理图片的 API(应用程序编程接口),使用 gd 库可以处理图片或者生成图片。在网站上,gd 库通常用来生成缩略图,或者对图片加水印,或者生成汉字验证码,或者对网站数据生成报表等。

zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发。

[root@promote scripts]#cd /opt/php
[root@promote php]# yum -y install \
> gd \    //gd 库是 PHP 处理图形的扩展库
> libpng \
> libpng-devel \
> pcre \   
> pcre-devel \     //正则表达式
> libxml2-devel \
> libjpeg-devel 

[root@promote php]# tar jxvf 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 \   //设置安装路径
> --with-gd \   ////gd 库是 PHP 处理图形的扩展库
> --with-zlib \     //zlib 函数库提供了对处理器和内存使用控制的能力
> --with-apxs2=/usr/local/httpd/bin/apxs \    //设置Apache HTTPS Server提供的apxs模块支持程序的文件位置
> --with-mysql=/usr/local/mysql \  //设置MySQL数据库服务程序的安装位置
> --with-config-file-path=/usr/local/php5 \   //设置PHP的配置文件php.ini将要存放的位置
> --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   
[root@promote php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin  //PHP配置文件做软链接目的路径是/usr/local/bin

[root@promote php-5.6.11]# vim /etc/httpd.conf

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

[root@promote php-5.6.11]# systemctl restart httpd   //修改httpd配置文件,需要重启Apache服务
[root@promote php-5.6.11]# cd /usr/local/httpd/htdocs/
[root@promote htdocs]# vim index.html 
<?php
phpinfo();
?>
[root@promote htdocs]# mv index.html index.php   //更改文件属性,将.html 改为.php


192.168.65.134/index.php

查看index.php 网页,PHP搭建成功

在这里插入图片描述

四、搭建论坛


***************将论坛的压缩包拖至/opt的目录下********************

[root@localhost opt]# unzip Discuz_X2.5_SC_UTF8.zip
[root@localhost php]# ll
总用量 23332
-rw-r--r--.  1 root root  9799758 83 14:31 Discuz_X2.5_SC_UTF8.zip
drwxr-xr-x. 18 ttyy ttyy     4096 83 21:53 php-5.6.11
-rw-r--r--.  1 root root 14081292 83 14:31 php-5.6.11.tar.bz2
drwxr-xr-x.  2 root root      102 427 2012 readme
drwxr-xr-x. 12 root root     4096 427 2012 upload
drwxr-xr-x.  4 root root       72 427 2012 utility

[root@localhost php]# cp -r upload/ /usr/local/httpd/htdocs/bbs
[root@localhost php]# cd /usr/local/httpd/htdocs/bbs/
[root@localhost htdocs]# ll
总用量 8
drwxr-xr-x. 12 root root 4096 84 08:45 bbs
-rw-r--r--.  1 root root   21 83 22:07 index.php

***************给论坛的配置文件添加权限***********************

[root@localhost bbs]# chown -R daemon ./config     
[root@localhost bbs]# chown -R daemon ./data
[root@localhost bbs]# chown -R daemon ./uc_client
[root@localhost bbs]# chown -R daemon ./uc_server/data/

在这里插入图片描述

[root@localhost bbs]# mysql -u root -p   //登录数据库
Enter password:    //密码是之前设置的‘abc123’
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
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> show databases;   //查看数据库用户
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

mysql> create database bbs;   //创建数据库的用户
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
mysql> use bbs;   //切换用户bbs
Database changed
mysql> show tables;   //查看用户的数据库的内容为空
Empty set (0.01 sec)

mysql> grant all on bbs.* to 'bbsuser'@'%' identified by 'admin123';   //给用户bbs添加数据库的
Query OK, 0 rows affected (0.04 sec)

mysql> flush privileges;   //刷新数据库
Query OK, 0 rows affected (0.00 sec)

mysql> quit  //退出




(1)安装论坛

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(2)登录论坛主页

浏览器输入

192.168.75.134/bbs

在这里插入图片描述

(3)登录后台

192.168.75.134/bbs/admin.php

在这里插入图片描述
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!