一. apache的简介
lamp是一个常用的web架构
所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Perl/Python的一组动态网站或者服务器的开源软件,除Linux外其它各部件本身都是各自独立的程序,但是因为经常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。
LAMP指的是Linux(操作系统)、Apache(HTTP服务器)、MySQL(也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台。
apache的特点
开放源代码
跨平台应用
支持各种Web编程语言
模块化设计
运行非常稳定
良好的安全性
二. apache的源码编译安装
2.1 依赖环境包安装
[root@localhost opt]#
yum -y install
gcc \ //编译器
gcc-c++ \ //编译器
make \ //编译工具,把配置文件转化成二进制文件
pcre-devel \ //使apache支持正则表达式的依赖包
expat-devel \ //支持底层的开发语言
perl //支持perl语言
关闭防火墙,关闭核心防护
[root@localhost httpd-2.4.29]# systemctl stop firewalld
[root@localhost httpd-2.4.29]# setenforce 0
setenforce: SELinux is disabled
2.2 源码解压
[root@localhost opt]# tar xf apr-1.6.2.tar.gz
[root@localhost opt]# tar xf apr-util-1.6.0.tar.gz
[root@localhost opt]# tar xf httpd-2.4.29.tar.bz2
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
注意:apr 和 apr-util 两个依赖包的作用是使apache支持跨平台的依赖包
2.3 配置 configure
[root@localhost opt]# cd /opt/httpd-2.4.29/
[root@localhost opt]#
./configure
–prefix=/usr/local/httpd \ //安装路径
–enable-so \ //动态加载模块
–enable-rewrite \ //网页地址重写功能
–enable-charset-lite \ //启用字符集支持
–enable-cgi //启用cgi脚本程序支持
2.4 make 配置文件构建出二进制文件
[root@localhost opt]# make //编译,将源代码转换为可执行的程序
2.5 make install 安装
[root@localhost opt]# make install //将编译完的httpd程序及相关目录,文件复制到预设的安装目录
2.6 优化路径
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/ //配置文件优化到/etc/下,方便管理
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ //把可执行的命令复制到系统命令里,升级为全局变量
[root@localhost httpd-2.4.29]# httpd -v //查看一下安装的版本
2.7 添加httpd 系统服务
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vi /etc/init.d/httpd
chkconfig: 35 85 21 //35级别自动运行 第85个启动 第21个关闭
description: Apache is a World Wide Web server
chkconfig --add httpd ###添加为系统服务
chkconfig --list httpd ###查看http服务自启状态 该输出结果只显示Sysv服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖
2.8 修改配置文件:修改Listen项和ServerName
vi /usr/local/httpd/conf/httpd.conf
…省略
Listen 20.0.0.23:80
#Listen 80
ServerName www.peihua.com:80
…省略
[root@localhost httpd-2.4.29]# httpd -t //检查配置文件的语法
Syntax OK
[root@localhost httpd-2.4.29]# apachectl -t //与上面一样用来检查配置文件的语法
Syntax OK
2.9 开启服务
[root@localhost httpd-2.4.29]# service httpd start
[root@localhost httpd-2.4.29]# chkconfig --level 35 httpd on //开机自启动
[root@localhost httpd-2.4.29]# lsof -i:80 //查看80端口的程序名,以及守护程序
[root@localhost httpd-2.4.29]# netstat -anpt | grep httpd //查看httpd服务是否开启
注意:init 0 :关机
init 1 :单用户模式无网络,只有管理员可以登录
init 2 : 多用户无网络
init 3 : 字符终端,多用户有网络
init 4 : 被保留
init 5 : 图形界面,多用户有网络
init 6 : 重启
三. Mysql 的编译安装
3.1 安装依赖环境
[root@localhost opt]# yum -y install ncurses-devel \ //函数库,提供了一系列的函数以便使用者调用它们去生成基于文本的用户界面
autoconf \ //适应多种Unix类系统的 shell脚本的工具
cmake //cmake配置
3.2 解压源码包
tar zxvf mysql-5.6.26.tar.gz
3.3 ./ cmake 配置
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //指定安装路径
-DDEFAULT_CHARSET=utf8 \ //指定默认字符集,简体中文
-DDEFAULT_COLLATION=utf8_general_ci \ //指定默认使用的字符集校对规则
-DEXTRA_CHARSETS=all \ //扩展字符集,不但支持简体中文,可以支持所有的字符集
-DSYSCONFDIR=/etc \ //指定配置文件的目录,还没安装前,配置文件/etc/my.cnf默认存在,需要覆盖此文件
-DMYSQL_DATADIR=/home/mysql/ \ //指定数据库数据的安放位置,当创建了mysql的程序用户时,此目录自动生成
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock/ //通讯文件,没有此文件,mysql不能进行登录
3.4 make 编译成二进制文件
[root@localhost opt]# make //编译,将源代码转换为可执行的程序
3.5 make install 安装
[root@localhost opt]# make install //将编译完的httpd程序及相关目录,文件复制到预设的安装目录
3.6 三个文件
3.61 主配置文件
[root@localhost mysql]# cp /opt/mysql-5.6.26/support-files/my-default.cnf /etc/my.cnf
3.62 启动脚本
[root@localhost mysql]# cp /opt/mysql-5.6.26/support-files/mysql.server /etc/init.d/mysqld
[root@localhost support-files]# chmod +x /etc/init.d/mysqld //给与执行权限
[root@localhost init.d]# chkconfig --list //查看到MySQL服务已经开机自启动后,下面的开机自启的命令可以不重复敲
[root@localhost init.d]# chkconfig mysqld --level 35 on //开机自启动(init 3 ,init 5)
3.63 命令文件
[root@localhost ~]# echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
3.7 创建程序用户管理
[root@localhost ~]# useradd -s /sbin/nologin mysql //程序用户,在家目录里会生成一个目录,且属主和属组都为自己
[root@localhost home]# ll
total 0
drwx------. 3 liang liang 78 Apr 11 2018 liang
drwx------ 3 mysql mysql 78 Sep 29 04:04 mysql //程序用户
[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql/ 递归改变原本mysqld的工作目录的属主和属组为mysql。原本的属主和属组都为root,相当于程序用户mysql 接管了整个mysql
3.8 初始化数据库
[root@localhost scripts]#
/usr/local/mysql/scripts/mysql_install_db
–user=mysql
–ldata=/var/lib/mysql
–basedir=/usr/local/mysql
–datadir=/home/mysql //数据库初始化后就可以进行逻辑化的管理,比如创建库创建表等
3.9 在启动文件里指明工作目录和数据目录
[root@localhost scripts]# vi /etc/init.d/mysqld
…省略
basedir=/usr/local/mysql
datadir=/home/mysql
…省略 //当mysql启动时,就会关联上这两个目录
3.10 启动mysql
service mysqld start
显示Starting MySQL… SUCCESS!
netstat -anpt | grep 3306
[root@localhost mysql]# mysqladmin -uroot -p password ‘123’ //默认数据库是没有密码的,用mysqladmin给数据库设定密码
四. 编译安装PHP
4.1 安装依赖包
[root@localhost home]#
cd
yum -y install
gd \ gd库,专门处理图片和图像
libpng \ 截图格式为png
libpng-devel \ 专门处理png格式的图片
pcre \ 正则表达式
pcre-devel \ 正则表达式
libxml2-devel \ 支持xml格式,2是版本2
libjpeg-devel 支持jpg格式
4.2 解压源码包
[root@localhost opt]# tar jxvf php-5.6.11.tar.bz2
4.3 ./configure 配置
./configure
–prefix=/usr/local/php5 \ //指定安装路径
–with-gd \ //开启gd库,专门处理图片和图像
–with-zlib \ //支持php的函数
–with-apxs2=/usr/local/httpd/bin/apxs \ //核心模块的命令,关联apache
–with-mysql=/usr/local/mysql \ //关联mysql
–with-config-file-path=/usr/local/php5 \ //配置文件的路径
–enable-mbstring //多字节字符串,文本处理
4.4 make 编译成二进制文件
[root@localhost opt]# make //编译,将源代码转换为可执行的程序
4.5 make install 安装
[root@localhost opt]# make install //将编译完的httpd程序及相关目录,文件复制到预设的安装目录
4.6 三个文件
4.61 主配置文件
[root@localhost php-5.6.11]#
cp php.ini-development /usr/local/php5/php.ini //php的配置文件是.ini格式
4.62 启动脚本
php的启动依赖于apache的启动而启动,所以需要将php的启动写在apache的配置文件里
vim /etc/httpd.conf
在AddType application/x-gzip .gz .tgz下面添加两条
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
找到站点首页,把php的首页信息写进去
DirectoryIndex index.php index.html
4.63 命令文件
[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/ //把php的配置文件链接到系统命令的bin目录下,便于使用管理
1
4.7 写一个简单的php格式的首页进行测试
vim /usr/local/httpd/htdocs/index.php
网页测试: 20.0.0.23/index.php
五. LAMP架构进行论坛的部署
5.1 解压论坛的安装包
[root@localhost opt]# uzip Discuz_X3.4_SC_UTF8.zip
5.2 把论坛的代码复制到站点目录
[root@localhost opt]# cd dir_SC_UTF8/
[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/httpd/htdocs/bbs
1
5.3 修改论坛目录的权限
cd /usr/local/httpd/htdocs/bbs/
chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data
5.4 授权一个登陆用户登录论坛
mysql -uroot -p123
给个权限
create database bbs;
grant all on bbs.* to ‘bbsuser’@’%’ identified by ‘123123’;
flush privileges;
5.5 测试
网页访问:20.0.0.23/bbs
根据提示安装
################填写数据库信息####
数据库服务器: localhost ###本地架设就用localhost, 如何不是在在本机上就要填写IP地址和端口号
数据库名字: bbs ###CREATE DATABASE bbs;这条的时候告诉你名字叫bbs
数据库用户名: bbsuser ###谁来管理这个数据库 (GRANT all ON bbs.* TO ‘bbsadm’@’%’ IDENTIFIED BY ‘123123’;)
数据库密码: 123123
数据表前缀:pre_
管理员账号:admin
管理员密码:自己设置