Web服务器--源码编译安装LAMP(Apache,MySQL与PHP源码编译安装,LAMP平台搭建论坛)

一、LAMPLAMP架构平台

1.1 LAMP平台概述

  • LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境

  • LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言

1.2 LAMP的优势

  • ​ 成本低廉

  • ​ 可定制,易于开发

  • ​ 方便易用,安全和稳定

1.3 构建LAMP平台顺序

  • 在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP

  • 其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作

1.4 编译安装的优点及步骤

  • 具有较大的自由度,功能可定制
  • 可及时获得最新的软件版本
  • 普遍适用于大多数Linux版本,便于一直使用
    在这里插入图片描述

二、Apache网站服务

2.1 Apache简介

Apache起源

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

主要特点

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

软件版本

  • ​ 1.X

    • ​ 目前最高版本是1.3,运行稳定

    • 向下兼容性较好,但缺乏一些较新的功能

  • ​ 2.X

    • 目前最高版本是2.4

    • 具有更多的功能特性

    • 与1.X相比,配置管理风格存在较大差异

2.2 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

2.3 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:需要包含进来的其他配置文件

2.4 部署安装Apache

环境

一台centos 7 虚拟机作为服务端

一台win10 客户机

【1】上传httpd压缩包并解压

[root@localhost ~]# iptables -F   '清空防火墙规则'
[root@localhost ~]# setenforce 0   '关闭linux核心防护'
[root@localhost ~]# cd /opt
[root@localhost opt]# mkdir apache mysql php
[root@localhost opt]# ls
 apache 
[root@localhost opt]# cd apache/

[root@localhost apache]# rz -E       '拖进去三个安装包'
rz waiting to receive.
[root@localhost apache]# ls
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2

[root@localhost apache]# tar jxvf httpd-2.4.29.tar.bz2
[root@localhost apache]# tar zxvf apr-1.6.2.tar.gz 
[root@localhost apache]# tar zxvf apr-util-1.6.0.tar.gz 
[root@localhost 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

【2】源码编译安装

'移动http所需的依赖包到http/srclib目录下'
[root@localhost apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@localhost apache]# ls httpd-2.4.29/srclib/
apr  apr-util  Makefile.in

[root@localhost apache]# yum -y install \       '安装源码编译所需要的软件'
> gcc \  
> gcc-c++ \
> make \
> pcre-devel \                 '支持正则表达式'
> expat-devel \                '支持解析xml格式 '
> perl                        '支持perl语言'

'部署好后,下面是手工编译安装过程'
[root@localhost apache]# cd httpd-2.4.29/       '找到configure的脚本配置'
[root@localhost httpd-2.4.29]# ls
  configure
[root@localhost httpd-2.4.29]# ./configure \     '手动编译安装'
> --prefix=/usr/local/httpd \           ###指定安装路径
> --enable-so \              '开启核心功能模块'
> --enable-rewrite \         '重写功能'
> --enable-charset-lite \       '字符集设定'
> --enable-cgi               '通用网关接口'

[root@localhost httpd-2.4.29]# make       'make 编译,把源码变为二进制可执行文件'
[root@localhost httpd-2.4.29]# make install   

【3】优化执行路径

'配置启动脚本'
[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd   '启动脚本放在init.d目录下'
[root@localhost httpd-2.4.29]# ls /etc/init.d/
functions  httpd  netconsole  network  README

'设置配置文件'
[root@localhost httpd-2.4.29]# cd /etc/init.d/
[root@localhost init.d]# vim httpd

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

[root@localhost init.d]# chkconfig --add httpd       '添加httpd系统服务(可以自动补全了)'

[root@localhost init.d]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf   '创建软链接'

[root@localhost init.d]# vim /etc/httpd.conf     '修改配置文件'

Listen 14.0.0.14:80      '监听地址'
#Listen 80
...
ServerName www.yyc.com:80   '监听域名'

[root@localhost init.d]# ln -s /usr/local/httpd/bin/* /usr/local/bin/     '命令识别设置'
[root@localhost 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@localhost init.d]# httpd -t       '后面加-t,验证语法是否正确'
Syntax OK

【4】启动httpd服务

[root@localhost init.d]# service httpd start    ###启动httpd服务
[root@localhost init.d]# netstat -ntap | grep 80    ###查看系统80端口状态
tcp    0    0 14.0.0.14:80    0.0.0.0:*     LISTEN    48900/httpd

【5】验证(在浏览器上面输入服务器的IP地址)

在这里插入图片描述

三、MySQL的编译安装

3.1 MySQL概述

  • MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
  • MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
    MySQL是一个真正的多线程,多用户的SQL数据库服务,凭借其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
  • MySQL 5.X系列版本的最为广泛,稳定性、兼容性都不错,此处选用mysql-5.6.36.tar.gz源码包

3.2 MySQL源码编译安装过程

环境

一台centos 7 虚拟机作为服务端

一台win10 客户机

【1】上传MySQL服务并解压

[root@localhost init.d]# cd /opt
[root@localhost opt]# ls
 mysql 
[root@localhost opt]# cd mysql/
[root@localhost mysql]# ls
[root@localhost mysql]# rz -E    '拖入mysql软件包'
rz waiting to receive.
[root@localhost mysql]# ls
mysql-5.6.26.tar.gz

[root@localhost mysql]# tar xzvf mysql-5.6.26.tar.gz  '解压包'
[root@localhost mysql]# ls
mysql-5.6.26  mysql-5.6.26.tar.gz

【2】安装编译

[root@localhost mysql]# yum install -y ncurses-devel autoconf cmake   '安装环境包(ncures-devel 终端包、autoconf 处理shell脚本的工具包、cmake 等同于configure )'
[root@localhost mysql]# cd mysql-5.6.26/      '进入到mysql-5.6.26中'

[root@localhost mysql-5.6.26]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \    '指定安装路径'
> -DDEFAULT_CHARSET=utf8 \    '这三行是对字符集的设定'
> -DDEFAULT_COLLATION=utf8_general_ci \ 
> -DEXTRA_CHARSETS=all \
> -DSYSCONFIDIR=/etc \     '指定配置文件所在位置(原本/etc/my.cnf文件要删掉或者覆盖掉)'
> -DMYSQL_DATADIR=/home/mysql/ \    '数据文件存放位置(会建一个用户,用户家目录,mysql享有家目录中所有权限)'
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock   'mysql.sock 是一个通信文件,即使本地连接也要连接这个文件,是连接数据库的文件(属主属组必须都是mysql)'

[root@localhost mysql-5.6.26]# make     '编译(时间最长)'
[root@localhost mysql-5.6.26]# make install

【3】建立配置文件

[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf    '配置文件拎出来覆盖原有的my.cnf文件,yes确认'

【4】添加系统服务

[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld    '启动脚本复制出来'
[root@localhost mysql-5.6.26]# cd /etc/init.d/
[root@localhost init.d]# ls
functions  httpd  mysqld  netconsole  network  README
[root@localhost init.d]# chmod +x mysqld     '加执行权限x'
[root@localhost init.d]# chkconfig --add /etc/init.d/mysqld 
[root@localhost init.d]# chkconfig --level 35 mysqld on    '默认开机自启动'

【5】设置全局环境变量

[root@localhost init.d]# vim /etc/profile
...
PATH=$PATH:/usr/local/mysql/bin   '文件末尾加一行'

[root@localhost init.d]# source /etc/profile   '加载'
[root@localhost init.d]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin  '能够识别mysql'

【6】创建运行用户

[root@localhost init.d]# useradd -s /sbin/nologin mysql   ###创建管理mysql进程的用户mysql
[root@localhost init.d]# id mysql    ###查看到这个用户和组(属主属组都是mysql)
uid=1027(mysql) gid=1027(mysql) 组=1027(mysql)
[root@localhost init.d]# chown -R mysql.mysql /usr/local/mysql/

【7】数据库初始化

[root@localhost init.d]# cd /usr/local/mysql/
[root@localhost mysql]# ls
bin      data  include         lib  mysql-test  scripts  sql-bench
COPYING  docs  INSTALL-BINARY  man  README      share    support-files
[root@localhost mysql]# cd scripts/
[root@localhost scripts]# ls
mysql_install_db

[root@localhost scripts]# /usr/local/mysql/scripts/mysql_install_db \   '数据库初始化'
> --user=mysql \      '用户名'
> --ldata=/var/lib/mysql \    '数据库的库文件'
> --basedir=/usr/local/mysql \    '服务文件的位置:根目录'
> --datadir=/home/mysql     '数据存放位置'

【8】编辑启动脚本

指明两个位置:服务目录位置为根目录,数据存放位置

[root@localhost scripts]# vim /etc/init.d/mysqld 
basedir=/usr/local/mysql
datadir=/home/mysql

[root@localhost scripts]# service mysqld start     '启动数据库服务'
Starting MySQL.. SUCCESS! 
[root@localhost scripts]# netstat -ntap | grep 3306   '查看mysql的服务端口号3306状态'
tcp6     0     0 :::3306      :::*     LISTEN    11434/mysqld        

[root@localhost scripts]# mysqladmin -u root -p password "19961207"   '确定数据库管理员用户的密码'
Enter password:       '第一次设置密码,密码为空,直接回车就行'
Warning: Using a password on the command line interface can be insecure.   '警告你的密码不要显示在控制台上,用history可以查看到'

【9】登录及退出mysql操作环境

[root@localhost scripts]# mysql -u root -p    '登录(-uroot可以连这写,因为只读第一个字符作为可选项)'
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> show databases;     '查看数据库'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

mysql> exit   '退出mysql操作环境'
Bye

四、PHP代码源码编译安装

4.1 PHP概述

  • PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

4.2 PHP源码编译安装过程

环境

一台centos 7 虚拟机作为服务端

一台win10 客户机

【1】安装PHP所需的软件包

[root@localhost scripts]# yum -y install \
> gd \                 'GD库是处理图形的扩展库,提供了一系列用来处理图片的API'
> libpng \             '小图片'
> libpng-devel \       'png开发'
> pcre \               '正则表达式'
> pcre-devel \         '支持正则表达式'
> libxml2-devel \      '识别xml文件'
> libjpeg-devel        '图片处理'

【2】上传php并解压


[root@localhost scripts]# cd /opt
[root@localhost opt]# ls
Apache  mysql   php    rh
[root@localhost opt]# cd php/
[root@localhost php]# ls    '确认没有php软件包'
[root@localhost php]# rz -E     '将php软件包拖入xshell'
rz waiting to receive.
[root@localhost php]# ls
php-5.6.11.tar.bz2

[root@localhost php]# tar jxvf php-5.6.11.tar.bz2    '解压php软件包(bz2格式,用j)'
[root@localhost php]# ls
php-5.6.11  php-5.6.11.tar.bz2

【3】configure配置及编译安装

[root@localhost php-5.6.11]# ./configure \    
> --prefix=/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@localhost php-5.6.11]# make   '编译'
[root@localhost php-5.6.11]# make install  

【4】优化PHP执行路径

'php的配置文件:php.ini配置调整'
[root@localhost php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini
[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/    '让一些命令不能被系统识别'

'让apache支持php'
[root@localhost php-5.6.11]# vim /etc/httpd.conf 
......
LoadModule php5_moudle       moudles/libphp5.so
.......
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
......
    DirectoryIndex index.php index.html

[root@localhost php-5.6.11]# service httpd stop
[root@localhost php-5.6.11]# service httpd start

[root@localhost php-5.6.11]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls 
index.html
[root@localhost htdocs]# vim index.html 
<?php
phpinfo();
?>

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

(一定要清空防火墙规则,关闭核心防护,不然php页面出不来)

【5】验证PHP服务是否启动

在这里插入图片描述

五、安装Discuz论坛

安装完上面三个服务后,接着操作

【1】安装环境

[root@localhost local]# cd /opt
[root@localhost opt]# ls
apache  mysql    php    rh
[root@localhost opt]# rz -E   '拖入Discuz_X2.5_SC_UTF8.zip 论坛软件包到xshell中'
rz waiting to receive.
[root@localhost opt]# ls
apache    Discuz_X2.5_SC_UTF8.zip   mysql    php    rh

[root@localhost opt]# unzip Discuz_X2.5_SC_UTF8.zip    ###解压缩
[root@localhost opt]# ls
apache    Discuz_X2.5_SC_UTF8.zip   mysql    php   readme   rh   upload   utility

[root@localhost opt]# cp -r upload/ /usr/local/httpd/htdocs/bbs  ###把upload复制到/usr/local/httpd/htdocs/bbs文件中

在网页搜索14.0.0.14/bbs,要装的是这个论坛,点击我同意
在这里插入图片描述
会发现好多是当前状态处于不可写状态

(./config的目录、./data/ 的目录、./uc_client/的目录、./uc_server/data的目录都需要给权限)
在这里插入图片描述

【2】添加权限并设置论坛目录的属主为daemon

[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]# ll    '查看属主变成了deamon'
总用量 76
-rw-r--r--.  1 root   root 2603 8月   4 09:55 admin.php
drwxr-xr-x. 11 root   root  163 8月   4 09:55 api
-rw-r--r--.  1 root   root  727 8月   4 09:55 api.php
drwxr-xr-x.  2 root   root   23 8月   4 09:55 archiver
drwxr-xr-x.  2 daemon root   90 8月   4 09:55 config
-rw-r--r--.  1 root   root  922 8月   4 09:55 connect.php
-rw-r--r--.  1 root   root  253 8月   4 09:55 cp.php
-rw-r--r--.  1 root   root  106 8月   4 09:55 crossdomain.xml
drwxr-xr-x. 13 daemon root  216 8月   4 09:55 data
-rw-r--r--.  1 root   root 5558 8月   4 09:55 favicon.ico
-rw-r--r--.  1 root   root 2110 8月   4 09:55 forum.php
-rw-r--r--.  1 root   root  823 8月   4 09:55 group.php
-rw-r--r--.  1 root   root 1223 8月   4 09:55 home.php
-rw-r--r--.  1 root   root 5448 8月   4 09:55 index.php
drwxr-xr-x.  5 root   root   64 8月   4 09:55 install
-rw-r--r--.  1 root   root 1040 8月   4 09:55 member.php
-rw-r--r--.  1 root   root 1381 8月   4 09:55 misc.php
-rw-r--r--.  1 root   root 1757 8月   4 09:55 plugin.php
-rw-r--r--.  1 root   root  985 8月   4 09:55 portal.php
-rw-r--r--.  1 root   root  582 8月   4 09:55 robots.txt
-rw-r--r--.  1 root   root 1158 8月   4 09:55 search.php
drwxr-xr-x. 10 root   root  168 8月   4 09:55 source
drwxr-xr-x.  6 root   root   72 8月   4 09:55 static
drwxr-xr-x.  3 root   root   38 8月   4 09:55 template
drwxr-xr-x.  6 daemon root   92 8月   4 09:55 uc_client
drwxr-xr-x. 13 root   root  241 8月   4 09:55 uc_server
-rw-r--r--.  1 root   root 1691 8月   4 09:55 userapp.php

再进网页刷新一下页面,当前状态变成了可写状态
在这里插入图片描述

后面要连接数据库数据库中现在只有一个管理员,要为论坛单独创建数据库,单独创建管理数据库的用户

【3】创建管理数据库的用户

[root@localhost bbs]# mysql -u root -p    ###进入数据库
Enter password:                     '输入密码'
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
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;     '创建名为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.00 sec)

mysql> grant all on bbs.* to 'bbsuser'@'%' identified by 'admin123';     'grant on提升权限bbs中的所有表格,给指定的用户bbsuser,%代表可以从任意终端登录,密码为admin123'
Query OK, 0 rows affected (0.01 sec)

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

【4】安装登录验证

开始安装,点下一步
在这里插入图片描述
在这里插入图片描述
点击下一步
在这里插入图片描述
管理员密码随便设,19961207
在这里插入图片描述
直接登录bbs
在这里插入图片描述
后台登录为14.0.0.14/bbs/admin.php
在这里插入图片描述
输入密码19961207,点击提交
在这里插入图片描述
在这里插入图片描述
下面退出登录,到主页面点击立即注册
在这里插入图片描述
点击完提交后就进入yyc用户界面
在这里插入图片描述
搭建完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值