LAMP框架是由Linux、Apache+Mysql+PHP组成的框架,一一对应首字母。
Linux:提供操作系统支持/提供一个环境支持
Apache:提供的是静态页面的请求
PHP:处理动态页面的请求
MySQL:持久化保存数据/状态信息
Apache主要特点:开放源代码、跨平台应用,支持多种网页编程语言HTML、HTML5,模块化设计、运行稳定、良好的安全性。
1、卸载httpd及相关依赖包
rpm -e httpd --nodeps //消除残存文件,避免程序冲突
[root@localhost ~]# cd /opt
[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 //安装apache
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr //把这两个工具放在apache目录底下可以让apache识别,提供底层环境
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
3、安装依赖包
yum -y install \
gcc \ #C语言的编译器
gcc-c++ \ #C++的编译器
make \ #源代码的编译器(源代码转换成二进制文件)
pcre \ #pcre是一个Perl函数库,包括perl兼容的正则表达式库
pcre-devel \ #perl 的接口开发包
expat-devel \ #用于支持网站解析HTML、XML文件
perl #perl语言编译器
4、配置apache编译
[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \ //指定安装目录
> --enable-so \ //开启动态加载核心模块支持,使httpd具备进一步扩展功能的能力
> --enable-rewrite \ //支持网页重写功能,用于网站优化、防盗链及目录迁移维护
> --enable-charset-lite \ //启用字符集支持,以便支持使用各种字符集编码的页面
> --enable-cgi //启用CGI(通用网关接口)脚本程序支持,便于增强网站的外部扩展应用访问能力
5、把配置编译(翻译给系统)
[root@localhost httpd-2.4.29]# make && make install
文件夹 | 用途 |
---|---|
bin | 存放httpd服务的执行文件 |
conf | 存放httpd服务的配置文件 |
extra | 子配置文件 |
htdocs | 存放网页文件 |
logs | 存放httpd服务的日志文件 |
modules | 存放httpd服务的日志文件 |
cgi-bin | 存放CGI程序文件 |
6、优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/ 优化管理 可以缩短路径直接到/etc里面看conf配置文件
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ 把命令直接做软链接到系统可以识别的命令存放路径
/bin和/sbin 系统所能识别的内部命令
/usr/local/bin 和 /usr/local/sbin 系统所能识别外部命令
默认注释掉的内容主要分为两块:1、描述性信息,描述我的这个服务能干什么,一些介绍性信息,介绍怎么使用等等 2、模板
7、在配置文件中加入监听地址
vim /usr/local/httpd/conf/httpd.conf
httpd -t 检测语法(前提在init.d添加了httpd)或者 apachectl -t
8、便于系统管理
也就是可以通过service或者systemctl命令管理,start stop restart reload 等等。
**/etc/init.d/ :service可以识别服务启动脚本的目录位置
/usr/lib/systemd/system/ :是systemctl命令可以识别的服务启动脚本的目录位置 **
此处就用便于service管理
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd 把命令绝对路名复制到init.d目录下 以便用service管理
设置httpd服务开机自启
vim /etc/init.d/httpd
# chkconfig: 35 85 21 35级别自动运行 第85个启动 第21个关闭
# description: Apache is a World Wide Web server
chkconfig --add httpd
然后就可以使用service进行管理了
** service 和 systemctl 区别:
centos 6中自带service ,centos7加入了一外部管理服务的工具(systemctl) **
提供持久化存储
1、安装环境
yum -y install \
gcc \ #编译语言,翻译官
gcc-c++ \
ncurses \ #字符终端下图形互动功能的动态库
ncurses-devel \ #ncurses开发包
bison \ #语法分析器
cmake \ #mysql需要用cmake编译安装
autoconf #是一个用于生成可以自动配置软件源代码包以适应多种unix类系统的shell脚本工具。
2、解压mysql包
tar xzvf mysql-5.6.26.tar.gz -C /opt
3、cmake 编译配置
cd /opt/mysql-5.6.26/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装路径
-DDEFAULT_CHARSET=utf8 \ #指定默认使用的字符集编码,如 utf-8
-DDEFAULT_COLLATION=utf8_general_ci \ #指定默认使用的字符集校对规则
-DEXTRA_CHARSETS=all \ #指定支持其他字符集编码
-DSYSCONFIDIR=/etc \ #/etc/mysql --->系统中有一个默认的配置/etc/my.cnf
-DMYSQL_DATADIR=/home/mysql/ \ #数据文件
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock #指定连接数据库的通讯文件(启动数据库的时候会生成)
注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧
4、make 编译
make && make install
5、到mysql里复制模板文件
[root@localhost data]# cd /opt/mysql-5.6.26/
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf #my-default.cnf mysql配置文件的模板 /etc/my.cnf 系统默认的mysql默认配置文件
6、便于服务器管理
此处用service
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld 给予执行权限
chkconfig --add /etc/init.d/mysqld 让service识别这个命令
chkconfig mysqld --level 35 on 设置成开机自启
systemctl enbale mysqld
7、添加mysql管理用户
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/ 没有-M指定家目录 给予/usr/local/mysql下文件管理mysql的权限
chown mysql:mysql /etc/my.cnf #更改管理主和组
8、设置环境变量,申明/宣告mysql命令便于系统识别
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
另一种方式就是ln -r
9、初始化数据库
/usr/local/mysql/scripts/mysql_install_db \ #要初始化的脚本
--user=mysql \ #管理的用户
--ldata=/var/lib/mysql \ #函数库
--basedir=/usr/local/mysql \ #工作路径
--datadir=/home/mysql #存放数据路径
10、修改启动脚本文件配置
vim /etc/init.d/mysqld
#46-47行
basedir=/usr/local/mysql #写上工作文件路径
datadir=/home/mysql #写上数据存放路径
service mysqld start 启动
netstat -anpt | grep 3306 #3306是mysql服务端口
11、设置密码用户 登录数据库
mysqladmin -u root -p password "abc123"
————》直接回车
mysql -u root -pabc123 #登录用户
php 处理动态请求,在此处他是一个后台的代码程序,不是一个服务(所以不需要启动脚本)
1、安装依赖环境
yum -y install \
gd \ #图像化处理的库
libpng \ #png格式图片的库
libpng-devel \
pcre \ #PCRE库支持正则表达式
pcre-devel \ #pcre-devel是使用PCRE做二次开发时所需要的开发库,也是编译安装需要的
libxml2-devel \ #解析xml标记语言的库
libjpeg-devel #jpeg格式图片的库
2、解压php包
cd /opt
tar xjvf php-5.6.11.tar.bz2
3、配置PHP编译配置
./configure \
--prefix=/usr/local/php5 \
--with-gd \ #激活gd 库的支持
--with-zlib \ #支持zlib功能,提供数据压缩功能的函式库
--with-apxs2=/usr/local/httpd/bin/apxs \ #指定httpd服务提供的apxs模块支持程序的文件位置
#用于指定Apache可以加载/识别对应的功能模块,此处可以让php服务模块直接提供给apache加载使用 (和httpd建立关联的方式)
--with-mysql=/usr/local/mysql \ #关联数据库(和mysql建立关联的方式)
--with-config-file-path=/usr/local/php5 \ #指定配置文件路径
--enable-mbstring #启用多字节字符串功能,以便支持中文等代码
4、make编译
make && make install
5、优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/php5/bin/* /usr/local/bin/
6、修改Apache配置文件让Apache支持PHP
vim /etc/httpd.conf
#添加index.php
255 <IfModule dir_module>
256 DirectoryIndex index.html index.php
257 </IfModule>
#在392行下方插入一下内容,让Apache可以支持.php的网页文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
##检查156行默认支持php5的模块是否存在
---->wq
应该是 php5_module文件是否存在 上图画错。
7、创建、编辑php页面文件
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
8、重启服务
service httpd stop
service httpd start
在网页测试“http://192.168.100.22/index.php”
mysql -u root -pabc123
mysql> CREATE DATABASE bbs; #创建一个数据库
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; #把bbs数据库里面所有表的权限授予给bbsuser,并设置密码// 所有访问来源/渠道 (%标识所有)
mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123'; #再给本地授予权限
mysql>flush privileges; #刷新数据库
cd /opt
把Discuz文件拖进来
unzip /opt/Discuz_X2.5_SC_UTF8.zip -d /opt/dis 解压论坛文件
cd /opt/dis/
cp -r upload/ /usr/local/httpd/htdocs/bbs 把安装论坛的配置复制到htdocs里
cd /usr/local/httpd/htdocs/bbs
chown -R daemon ./config #给予apache授权
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data
L :linux平台上
A:静态页面处理使用了Apache
P:动态处理——》后台程序
M:MySQL 数据库 存储PHP数据信息
Apache 怎么和PHP对接支持
1、支持php 网页文件的格式 index.php
2、开启识别index.php网页格式文件的支持
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
PHP 如何和Apache去做对接
./configure
–with-apxs2=/usr/local/httpd/bin/apxs
#可以让php服务模块直接提供给apache加载使用
php 如何与mysql 对接
–with-mysql=/usr/local/mysql
对接mysql
MySQL为PHP 提供了哪些支持
1、给php动态处理的一些数据,提供了一个数据库(bbs) 和访问的用户权限@登陆方式
2、给bbsuser 进行了提权 grant all