CentOS 7.6 源码安装搭建LAMP架构详解

这里写目录标题

    • 一、搭建环境
    • 二、安装apache
    • 三、安装mysql
    • 四、安装php
    • 五、搭建Discuz!论坛

一、搭建环境

一台CentOS 7.6最小化安装虚拟机

二、安装apache

所需源码软件包:

  • apr-1.6.2.tar.gz
  • apr-util-1.6.0.tar.gz
  • httpd-2.4.29.tar.bz2

tips:apr包是apache的依赖包,apr、apr-util软件包支持Apache上层应用跨平台,提供底层接口库

第一步:将软件包拷贝到/opt目录下,解压,然后把apr工具移动到httpd软件包的srclib下面

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

[root@server opt]# 
[root@server opt]# tar xf apr-1.6.2.tar.gz 
[root@server opt]# tar xf apr-util-1.6.0.tar.gz 
[root@server opt]# tar xf httpd-2.4.29.tar.bz2 

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

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

第二步:yum安装gcc gcc-c++ make pcre-devel expat-devel perl(全部安装缺一不可)

[root@server opt]# yum -y install gcc gcc-c++ make pcre-devel expat-devel perl
已安装:
  pcre-devel.x86_64 0:8.32-17.el7        expat-devel.x86_64 0:2.1.0-11.el7                                                                                    

更新完毕:
  expat.x86_64 0:2.1.0-11.el7     gcc.x86_64 0:4.8.5-39.el7    gcc-c++.x86_64 0:4.8.5-39.el7    make.x86_64 1:3.82-24.el7   
  perl.x86_64 4:5.16.3-295.el7   

作为依赖被升级:
  cpp.x86_64 0:4.8.5-39.el7                  gcc-gfortran.x86_64 0:4.8.5-39.el7    libgcc.x86_64 0:4.8.5-39.el7            
  libgfortran.x86_64 0:4.8.5-39.el7          libgomp.x86_64 0:4.8.5-39.el7         libquadmath.x86_64 0:4.8.5-39.el7       
  libquadmath-devel.x86_64 0:4.8.5-39.el7    libstdc++.x86_64 0:4.8.5-39.el7       libstdc++-devel.x86_64 0:4.8.5-39.el7   
  perl-libs.x86_64 4:5.16.3-295.el7         

完毕!
  • gcc、gcc-c++:liunx环境中的c/c++编译器
  • PCRE(Perl Compatible Regular Expressions)是一个轻量级的Perl函数库,包括 perl
    兼容的正则表达式库,功能和性能都很强大
  • expat是一个由C语言编写的XML解析库
  • perl是perl语言解释器,负责解释执行perl语言程序

第三步:配置,定制选项

[root@server opt]# cd httpd-2.4.29
[root@server httpd-2.4.29]# ./configure \
--prefix=/usr/local/httpd \  #指定安装目录
--enable-so \        #启用动态加载模块支持,使httpd具备进一步扩展功能的能力
--enable-rewrite \   #启用网页地址重写功能,用于网站优化及目录迁移维护
--enable-charset-lite \    #启用字符集支持,以便支持使用各种字符集编码的网页
--enable-cgi       #启用CGI脚本程序支持,便于扩展网站的应用访问能力

第四步:编译安装

[root@server httpd-2.4.29]# make && make install

第五步:添加服务让chkconfig管理
为了便于通过chkconfig进行管理httpd系统服务,在文件的开头添加chkconfig识别配置

[root@server bin]# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
#将apachectl复制到init.d目录下便于service管理

[root@server bin]# vim /etc/init.d/httpd 
#!/bin/sh
\# chkconfig:35 85 21   指定运行在3,5级别(init3和init5),启动优先级为85,停止优先级为21,数字越大,优先级越高
\# description: Apache is a World Wide Web server
\# Licensed to the Apache Software Foundation (ASF) under one or more
……

[root@server bin]# chkconfig --add httpd   #添加服务

tips:因为第一次安装apache报错重装以后目录改变为/usr/local/apache2,如果第一次正确安装目录为/usr/local/httpd

第六步:修改apache配置文件

[root@server bin]# vim /usr/local/apache2/conf/httpd.conf
ServerName www.kgc.com:80   #指定域名
Listen 192.168.100.120:80    #指定监听ip和端口(本机)

[root@server httpd]# ln -s /usr/local/apache2/conf/httpd.conf /etc/
[root@server httpd]# ln -s /usr/local/apache2/bin/* /usr/local/bin/
#建立软链接,/usr/local/bin/是系统环境变量,存放可执行命令,否则需要用绝对路径才能运行命令

第七步:关闭防火墙和selinux

[root@server httpd]# systemctl stop firewalld.service
[root@server httpd]# setenforce 0

第八步:检查配置文件语法

[root@server local]# httpd -t
Syntax OK

第九步:启动httpd服务

[root@server local]# service httpd start
[root@server local]# netstat -anpt| grep 80
tcp        0      0 192.168.100.120:80      0.0.0.0:*               LISTEN      66657/httpd     

三、安装mysql

所需源码包:mysql-5.6.26.tar.gz

第一步:yum安装ncurses-devel、autoconf、cmake

[root@server ~]# yum -y install ncurses-devel autoconf cmake
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
软件包 autoconf-2.69-11.el7.noarch 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 cmake.x86_64.0.2.8.12.2-2.el7 将被 安装
--> 正在处理依赖关系 libarchive.so.13()(64bit),它被软件包 cmake-2.8.12.2-2.el7.x86_64 需要
---> 软件包 ncurses-devel.x86_64.0.5.9-14.20130511.el7_4 将被 安装
--> 正在检查事务
---> 软件包 libarchive.x86_64.0.3.1.2-14.el7_7 将被 安装
--> 解决依赖关系完成
已安装:
  cmake.x86_64 0:2.8.12.2-2.el7                         ncurses-devel.x86_64 0:5.9-14.20130511.el7_4                        

作为依赖被安装:
  libarchive.x86_64 0:3.1.2-14.el7_7                                                                                         

完毕!
  • ncurses库是一个Linux系统下的图形支持的函数库,字符终端处理库,包括面板和菜单。
  • autoconf是一个用于生成可以自动地配置软件源码包,用以适应多种UNIX类系统的shell脚本工具
  • cmake:允许开发者编写一种平台无关的 CMakeList.txt
    文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件

第二步:使用cmake配置参数

[root@server ~]# cd mysql-5.6.26
[root@server mysql-5.6.26]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   #指定安装目录
> -DDEFAULT_CHARSET=utf8 \  #指定默认字符集是utf8,支持中文
> -DDEFAULT_COLLATION=utf8_general_ci \  #指定默认编码为utf8
> -DEXTRA_CHARSETS=all \   #指定额外的编码,一般都是all
> -DSYSCONFIDIR=/etc \   #指定配置文件目录
> -DMYSQL_DATADIR=/home/mysql/ \    #指定数据库的数据目录
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock    #指定socket文件

第三步:编译安装

[root@server mysql-5.6.26]#make && make install

第四步:进行如下配置,优化mysql服务管理

[root@server mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf" yes
[root@server mysql-5.6.26]# 
[root@server mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld
[root@server mysql-5.6.26]# chmod 755 /etc/init.d/mysqld

[root@server mysql-5.6.26]# chkconfig --add /etc/init.d/mysqld
[root@server mysql-5.6.26]# chkconfig mysqld --level 35 on

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

注意:
my-default.cnf是mysql源码安装的默认配置文件
mysql.server是服务端工具,主要作用就是为了方便启动和关闭mysql服务
mysql.server启动,默认使用/etc/my.cnf配置文件信息

第五步:新建一个mysql用户,把/usr/local/mysql/下的所有属主属组都改成mysql,并完成mysql的初始化

[root@server mysql-5.6.26]# useradd -s /sbin/nologin mysql
[root@server mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/

[root@server mysql-5.6.26]# /usr/local/mysql/scripts/mysql_install_db \
> --user=mysql \  #指定运行mysqld进程用户名,所有通过mysqld进程创建的文件都会属于这个用户,可以是别的名字,mysql便于管理
> --ldata=/var/lib/mysql \
> --basedir=/usr/local/mysql/ \ #指定Mysql安装的绝对路径
> --datadir=/home/mysql/    #指定Mysql数据存放的绝对路径

mysql_install_db:用于完成mysql的初始化

第六步:完善mysql启动文件

[root@server mysql-5.6.26]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/home/mysql

第七步:启动mysql,mysql的服务端口:tcp:3306

[root@server mysql-5.6.26]# service mysqld start
Starting MySQL. SUCCESS! 
[root@server mysql-5.6.26]# 
[root@server mysql-5.6.26]# netstat -anpt | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      81847/mysqld  

第八步:指定mysql的管理用户为root,密码为abc123

[root@server mysql-5.6.26]# mysqladmin -u root -p password "abc123"
Enter password: (输入旧的密码,默认密码为空,所以直接回车)
Warning: Using a password on the command line interface can be insecure.

第九步:用root登进mysql

[root@server mysql-5.6.26]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
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> quit  #退出,exit也可以
Bye

四、安装php

所需源码软件包:php-5.6.11.tar.bz2

第一步:yum安装gd libpng libpng-devel pcre pcre-devel libxml2-devel libjpeg-devel

[root@server ~]# yum -y install gd libpng libpng-devel pcre pcre-devel libxml2-devel libjpeg-devel
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
软件包 2:libpng-1.5.13-7.el7_2.x86_64 已安装并且是最新版本
软件包 pcre-8.32-17.el7.x86_64 已安装并且是最新版本
软件包 pcre-devel-8.32-17.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 gd.x86_64.0.2.0.35-26.el7 将被 安装
……
  • gd 库是 PHP 处理图形的扩展库,它提供了一系列用来处理图片的 API(应用程序编程接口),使用 gd库可以处理图片或者生成图片。在网站上,gd 库通常用来生成缩略图,或者对图片加水印,或者生成汉字验证码,或者对网站数据生成报表等。
  • libpng是一个跨平台的png解码库,方便易用。基本上如果是支持fopen之类函数的平台都可以支持
  • libxml2是一个用来解析XML文档的函数库。它用 C 语言写成,并且能被多种语言所调用,可移植性非常好
  • libjpeg是ijg组织推出的jpeg图片工具套件,采用C语言编写,其内含的jpegtran工具是google官方推荐的无损jpeg图片压缩工具

第二步:解压php软件包

[root@server opt]# tar xjvf php-5.6.11.tar.bz2

第三步:切换到解压目录,定制配置

[root@server opt]# cd php-5.6.11/
[root@server php-5.6.11]# 
[root@server php-5.6.11]# ./configure \
--prefix=/usr/local/php5 \   #指定php安装目录
--with-gd \     #指定安装所依赖的gd库文件
--with-zlib \  #指定安装所依赖的zlib库文件,zlib是提供数据压缩用的函式库
--with-apxs2=/usr/local/apache2/bin/apxs \   #指定Apache服务能够支持访问PHP页面
--with-mysql=/usr/local/mysql/ \           #指定php的数据库为mysql
--with-config-file-path=/usr/local/php5 \       #指定php的配置文件路径
--enable-mbstring       #开启mbstring扩展,使之可以支持中文等语言

第四步:编译安装

[root@server php-5.6.11]#make && make install

第五步:优化php管理

[root@server php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini
[root@server php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/

php.ini-development:php配置文件

第六步:编辑Apache的配置文件,找到两行AddType配置,在后面再插入两行内容,作用是让apache支持php文件

[root@server php-5.6.11]# vim /etc/httpd.conf
385     AddType application/x-compress .Z
386     AddType application/x-gzip .gz .tgz
387     AddType application/x-httpd-php .php
388     AddType application/x-httpd-php-source .phps


<IfModule dir_module>
    DirectoryIndex index.php index.html    #apache默认不支持php页面,添加就可以访问了
</IfModule>

第七步:在apache的默认站点目录下编写一个php的页面

[root@server php-5.6.11]# vim /usr/local/apache2/htdocs/index.php
<?php
phpinfo();
?>

第八步:重启Apache的服务

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

第九步:验证访问网站:http://192.168.100.120/index.php
出现如下网页说明LAMP架构已经搭建完成了!
CentOS 7.6 源码安装搭建LAMP架构详解_第1张图片

五、搭建Discuz!论坛

第一步:新建一个数据库bbs,并新建一个登陆用户bbsuser,密码是admin123,授权让其可以在任何主机上登录, 并对所有数据库有查询、插入、修改、删除的权限,%表示任意

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”

mysql> CREATE DATABASE bbs;
Query OK, 1 row affected (0.00 sec)

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

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

mysql> show databases;   #查看数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> quit
Bye

第二步:解压Discuz软件包,指定解压到/opt/dis

[root@server bbs]# unzip /opt/Discuz_X2.5_SC_UTF8.zip -d /opt/dis

第三步:将解压目录下的网站相关页面拷贝到apache默认站点下的bbs目录下

[root@server opt]# cd dis
[root@server dis]# cp -r upload/ /usr/local/apache2/htdocs/bbs

第四步:改变相关目录的属主属组否则无法安装

[root@server dis]# cd /usr/local/apache2/htdocs/bbs
[root@server bbs]# chown -R daemon ./config/
[root@server bbs]# chown -R daemon ./data/
[root@server bbs]# chown -R daemon ./uc_client/
[root@server bbs]# chown -R daemon ./uc_server/

第五步:访问192.168.100.120/bbs/ 安装向导一步步安装Discuz
如果第四步没有修改属主属组的话,这里权限会显示不可写
CentOS 7.6 源码安装搭建LAMP架构详解_第2张图片

CentOS 7.6 源码安装搭建LAMP架构详解_第3张图片
CentOS 7.6 源码安装搭建LAMP架构详解_第4张图片

CentOS 7.6 源码安装搭建LAMP架构详解_第5张图片

CentOS 7.6 源码安装搭建LAMP架构详解_第6张图片
第六步:安装完成后验证登陆前台页面
CentOS 7.6 源码安装搭建LAMP架构详解_第7张图片
第七步:安装完成后验证登陆后台
用户名:admin
密码:abc123

CentOS 7.6 源码安装搭建LAMP架构详解_第8张图片
CentOS 7.6 源码安装搭建LAMP架构详解_第9张图片
第八步:注册一个新的用户
CentOS 7.6 源码安装搭建LAMP架构详解_第10张图片
CentOS 7.6 源码安装搭建LAMP架构详解_第11张图片
CentOS 7.6 源码安装搭建LAMP架构详解_第12张图片
第九步:进入服务器上的数据库中查看刚才新建的用户信息

[root@server dis]# mysql -u root -p 
Enter password: 

mysql> use bbs;    //进入bbs数据库
Database changed
mysql> 
mysql> show tables;   //查看所有表

mysql> desc pre_common_member;   //  desc命令查看表的结构信息

//  用户信息存在于pre_common_member表中

mysql> select uid,email,username,password,status from pre_common_member;
//查询用户的id,邮箱,用户名和密码还有状态

CentOS 7.6 源码安装搭建LAMP架构详解_第13张图片

你可能感兴趣的:(Linux,LAMP,apache,mysql,php,LAMP架构)