LAMP平台的搭建--Apache、MySQL、PHP及论坛的搭建

Apache

Apache简介

Apache起源

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

主要特点

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

编译安装httpd服务器的优点

  • 具有较大的自由度,功能可定制
  • 可及时获得最新的软件版本
  • 普遍使用于大多数Linux版本,便于移植使用

获得Apache服务器的源码包
参考地址:http://httpd.apache.org/download.cgi

手动编译安装步骤

  • 服务器所需环境的准备,相软件包的安装如底层的语言c,编译工具make等
  • Apache服务器软件包、相关支持跨平台apr和apr-util软件包准备
  • 编译安装,此时可自定义服务功能
  • 启动优化
     - 把服务启动控制项加入到系统的/etc/init.d下管理,即可使用service httpd start来启动停止服务
     - 让chkconfig工具可以管理
     - 相关的服务命令,为了方便使用,建立软链接到系统环境变量$PATH下,如果不建立使用命令时则需要跟上命令路径
     - 由于配置文件绝对路径太长,修改不方便,所以链接到/etc/下,方便使用
  • Apache配置文件的修改,网页首页内容的编写

具体配置步骤,见下平台搭建部分

本次实验中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/logs/access_log
  • 错误日志:/usr/local/httpd/logs/error_log

MySQL

编译安装过程

  • 数据库所需环境准备,相关包安装如编译工具cmake
  • 数据库安装包准备
  • 编译安装,
  • 启动优化
      - 启动控制
      - 配置文件
      - 命令管理
  • 创建程序用户管理MySQL服务
  • 数据库初始化
  • 修改启动脚本
  • 启动服务
  • 设置数据库管理源密码

PHP

  • 环境的安装,如gd图片库
  • 安装包准备
  • 编译安装
  • 启动优化
      - 配置文件
      - 命令管理
  • 配置Apache加载PHP功能模块
  • 网页首页编写
  • 启动服务

LAMP平台搭建

Apache

[root@localhost ~]#iptables -F
[root@localhost ~]#setenforce 0
[root@localhost ~]#cd /opt
[root@localhost ~]#mkdir apache php mysql

把相关软件压缩包拷贝进来

[root@localhost ~]#cd /apache
[root@localhost apache]#
[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 zxvf apr-1.6.2.tar.gz          ##apr软件包用于跨平台
[root@localhost apache]#tar zxvf apr-util-1.6.0.tar.gz    ##
[root@localhost apache]#tar jxvf httpd.2.4.29.tar.bz2
[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

移动apr和apr-util

[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]# yum -y install \
>gcc \
>gcc-c++ \
> make \
> pcre-devel \
> expat-devel \
> perl

编译安装

[root@localhost apache]# cd httpd-2.4.29/
[root@localhost apache]#./configure \
--prefix=/usr/local/httpd \      ##指定安装位置
--enable-so \                          ##开启核心模块
--enable-rewrite \                  ##重写
--enable-charset-lite \            ##字符集
--enable-cgi                           ##通用网关接口

[root@localhost apache]#make &&make install

启动优化
启动管理

[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@localhost httpd-2.4.29]# vim /etc/init.d/httpd
#!/bin/sh
#chkconfig:35 85 15                     ##添加后,可使用chkconfig
#description:Apache is a World Wide Web
#
...省略部分信息
保持退出
[root@localhost httpd-2.4.29]# chkconfig --add httpd
[root@localhost httpd-2.4.29]# chkconfig httpd on
[root@localhost httpd-2.4.29]# chkconfig --list
....

httpd          	0:关	1:关	2:开	3:开	4:开	5:开	6:关

命令管理

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

配置文件

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/http.conf 
[root@localhost httpd-2.4.29]# vim /etc/httpd.conf
...

Listen 20.0.0.21:80   ##服务器地址
#Listen 80
...
#
ServerName www.family.com:80
#
...
[root@localhost ~]#vim /usr/local/httpd/htdocs/index.html
<html><body><h1>It works</h1></body></html>

MySQL

环境准备

[root@localhost ~]# yum -y install autoconf ncurses-devel cmake   ##autoconf处理shell包的 cmake是编译用的相当与configure ncurses-devel字符终端屏幕控制的基本库是TTY下登录主机上的MySQL所需要的

安装包
放到之前创建的/opt/mysql下

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

编译安装

[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/ \                           ##数据文件
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock       ##数据库连接文件,想要连接数据库就需要这个文件
 
  Manually-specified variables were not used by the project:

    SYSCONFIDIR


-- Build files have been written to: /opt/mysql/mysql-5.6.26

[root@localhost mysql-5.6.26]# make &&make install
等待加载到百分百

启动优化
启动控制

[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 
[root@localhost init.d]# chkconfig --add /etc/init.d/mysqld 
[root@localhost init.d]# chkconfig --level 35 mysqld on
[root@localhost init.d]# chkconfig --list

配置文件

[root@localhost init.d]# cd /opt/mysql/mysql-5.6.26/
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? yes
[root@localhost mysql-5.6.26]# 

命令管理

[root@localhost mysql-5.6.26]# echo "PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
[root@localhost mysql-5.6.26]# source /etc/profile
[root@localhost mysql-5.6.26]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
[root@localhost mysql-5.6.26]# 

创建程序用户管理MySQL服务

[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql
[root@localhost mysql-5.6.26]# id mysql
uid=1001(mysql) gid=1001(mysql) 组=1001(mysql)
[root@localhost mysql-5.6.26]# chown -R mysql.mysql /usr/local/mysql
[root@localhost mysql-5.6.26]# ls -l /usr/local/mysql/

数据库初始化

[root@localhost mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \
> --user=mysql \
> --ldata=/var/lib/mysql \
> --basedir=/usr/local/mysql \
> --datadir=/home/mysql

WARNING: Default config file /etc/my.cnf exists on the system
This file will be read by default by the MySQL server
If you do not want to use this, either remove it, or use the
--defaults-file argument to mysqld_safe when starting the server

[root@localhost mysql-5.6.26]# 

修改启动脚本

[root@localhost mysql-5.6.26]# vim /etc/init.d/mysqld

basedir=/usr/local/mysql
datadir=/home/mysql

启动服务

[root@localhost support-files]# service mysqld start
Starting MySQL. SUCCESS! 
[root@localhost support-files]# netstat -antp |grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      63673/mysqld        
[root@localhost support-files]# 

设置数据库管理员密码

[root@localhost support-files]# mysqladmin -u root -p password "123456"
Enter password: 
Warning: Using a password on the command line interface can be insecure.
[root@localhost support-files]# 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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

mysql> 

PHP

环境的安装

[root@localhost opt]# yum -y install \
> gd \
> libpng \
> libpng-devel \
> pcre \
> pcre-devel \
> libxml2-devel \
> libjpeg-devle 

安装包准备
将下载好的安装包,移动到/opt/php目录下,我使用的方法是直接将下载好的安装包往xshell里拖

[root@localhost php]# ls
 php-5.6.11.tar.bz2
[root@localhost php]# tar jxvf  php-5.6.11.tar.bz2
...
[root@localhost php]# ls
php-5.6.11  php-5.6.11.tar.bz2 ##apache加载模块

编译安装

[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 \
> --enable-mbstring
...加载信息
Thank you for using PHP.
...
config.status: creating main/php_config.h
config.status: executing default commands
[root@localhost php-5.6.11]# 
[root@localhost php-5.6.11]# make &&make install
Build complete.
Don't forget to run 'make test'.

/opt/php/php-5.6.11/build/shtool install -c ext/phar/phar.phar /usr/local/php5/bin
ln -s -f phar.phar /usr/local/php5/bin/phar
Installing PDO headers:          /usr/local/php5/include/php/ext/pdo/

配置文件

[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/http.conf
...
<IfModule dir_module>
    DirectoryIndex index.html index.php      ##首页支持PHP
</IfModule>
...
LoadModule php5_module        modules/libphp5.so     ##这个在Apache配置文件里一定要有,让Apache支持PHP,如果没有请重头来过
...
#
    AddType application/x-compress .Z        ##找到这两行,在他们的下面添加
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php     ##支持PHP 源码
    AddType application/x-httpd-php-source .phps
#
...
保存退出
重新加载服务,设置网页首页

[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
[root@localhost php-5.6.11]# service httpd stop
[root@localhost php-5.6.11]# service httpd start

客户端访问
http://20.0.0.21/index.php
在这里插入图片描述

论坛安装

为论坛创建一个数据库

[root@localhost dis]# mysql -u root -p
Enter password: 
mysql> CREATE DATABASE bbs;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> use bbs;             ##创建的数据库内容是空的
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> 

mysql> exit
Bye

论坛安装包准备

[root@localhost ~]# mkdir dis
[root@localhost dis]# ls
Discuz_X2.5_SC_UTF8.zip
[root@localhost dis]# 
[root@localhost dis]# unzip Discuz_X2.5_SC_UTF8.zip
[root@localhost dis]# ls
Discuz_X2.5_SC_UTF8.zip  readme  upload  utility
[root@localhost dis]# 

捞出upload

[root@localhost dis]# cp -r upload/ /usr/local/httpd/htdocs/bbs
[root@localhost dis]# cd /usr/local/httpd/htdocs/bbs                             ##这里面由论坛的所有文件
[root@localhost bbs]# ls
admin.php  config           data         home.php    misc.php    search.php  uc_client
api        connect.php      favicon.ico  index.php   plugin.php  source      uc_server
api.php    cp.php           forum.php    install     portal.php  static      userapp.php
archiver   crossdomain.xml  group.php    member.php  robots.txt  template
[root@localhost bbs]# 

修改权限

[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/

如果没有修改权限的话,在安装论坛的时候会出现以下状况在这里插入图片描述
处理上述的情况,就是修改权限,看下http进程应该由是谁启动的,所以改成daemon用户

[root@localhost bbs]# ps aux |grep httpd
root     103263  0.0  0.1 149784  5496 pts/0    S+   17:39   0:00 vim /etc/httpd.conf
root     103638  0.0  0.1 219728  7192 ?        Ss   18:59   0:00 /usr/local/httpd/bin/httpd -k start
daemon   103639  0.0  0.3 836076 13252 ?        Sl   18:59   0:00 /usr/local/httpd/bin/httpd -k start
daemon   103640  0.0  0.2 965884  9640 ?        Sl   18:59   0:00 /usr/local/httpd/bin/httpd -k start
daemon   103641  0.0  0.3 836596 13076 ?        Sl   18:59   0:00 /usr/local/httpd/bin/httpd -k start
daemon   103725  0.0  0.3 902188 13428 ?        Sl   19:00   0:00 /usr/local/httpd/bin/httpd -k start
root     103776  0.0  0.0 112824   980 pts/1    S+   19:12   0:00 grep --color=auto httpd

可以去浏览器访问 http://20.0.0.21/bbs/install/index.php

论坛安装过程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数据库服务器要填我们刚刚搭建的服务器地址20.0.0.21 不填就报错了说找不了socket文件
数据库名填之间创建的bbs
数据库用户名填创建的bbsuser
密码之前填的123456
管理员的账号和密码自己填就好了
在这里插入图片描述
http://20.0.0.21/bbs/
在这里插入图片描述
http://20.0.0.21/bbs/admin.php 后台管理员
在这里插入图片描述
网站上安装完之后 在数据库中就有数据了

mysql> show tables;
+-----------------------------------+
| Tables_in_bbs                     |
+-----------------------------------+
| pre_common_admincp_cmenu          |
| pre_common_admincp_group          |
| pre_common_admincp_member         |
| pre_common_admincp_perm           |
| pre_common_admincp_session        |
| pre_common_admingroup             |
| pre_common_adminnote              |
| pre_common_advertisement          |
| pre_common_advertisement_custom   |
| pre_common_banned    

相关软件包

Apache相关
链接:https://pan.baidu.com/s/1cTmxkEOi9Et73rO7GTi8-g
提取码:0808
MySQL相关
链接:https://pan.baidu.com/s/1H3ZRR7TqiYPhXXiFdXBTRQ
提取码:0808
PHP相关
链接:https://pan.baidu.com/s/1G51ZkDinUvizpm-nSfsuDg
提取码:0808
论坛
链接:https://pan.baidu.com/s/1iPk7Lwxts4phblp2yeS6ZQ
提取码:0808

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页