目录
LAMP概述及工作过程
LAMP平台概述
各组件的主要作用
构建LAMP平台顺序
工作过程
安装
编译安装的优点
安装Apache----下面两个插件是httpd2.4以后的版本所需要
安装MySQL
安装PHP
LAMP环境指的是在Linux操作系统中分别安装APache网页服务器、Mysql数据库服务器和PHP开发服务器,以及一些对应的扩展软件,AMP也支持win操作系统(SCCM域升级版)
LAMP架构是目前成熟的企业网络应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境
前台Apache:作为LAMP架构前端,是一款功能强大、稳定性好的web服务程序,该服务器直接面向用户,提供网络服务访问,发送网页、图片等内容
后台Mysql:作为LAMP架构的后端,是一款流行的开源类型数据库,在企业网络、业务系统应用中,各种账户信息、产品信息、客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过sql语句来查询,更改这些信息
中间连接PHP/Perl/python:作为三种开发动态的网页编程语言,负责解释动态网页文件,负责沟通web服务器和数据库系统互协同工作,并提供web应用程序的开发运行环境,其中PHP是一种广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于web应用开发
在搭建LAMP的安装顺序一般是Linux APache MySQL、PHP,一般PHP放在最后,负责沟通web服务器和数据库系统以协同工作
工作过程
1、当客户端请求的是静态资源时,web服务器会直接把静态资源返回客户端
2、当客户端请求的是动态资源时。httpd的PHP模块会进行相应的动态资源运算,如果此过程还需要数据库作为运算参数时,PHP会连接MySQL取得数据,然后进行运算,运算的结果转为静态资源由web服务器返回到客户端
apache主要实现如下功能
1、处理HTTP的请求,构建响应报文等自身服务
2、配置让apache支持PHP程序的响应(通过PHP模块或fpm)
3、配置Apache具体处理PHP程序的方法,如通过反向代理将PHP程序交给fcgi处理。
MySQL主要实现如下功能:
1、提供PHP程序对数据的存储
2、提供PHP程序对数据的读取(通常情况下从性能的角度考虑,尽量实现数据库的读写分离)
PHP主要实现如下功能
1、提供apache的访问接口,即CGI或Fast CGI(FPM)
2、提供PHP程序的解释器
3、提供MySQL数据库的连接函数的基本环境
1、具有较大的自由度,功能可定制
2、可及时获得最新的软件版本
3、普遍适用于大多数Linux版本,便于一直使用
apache下载官方地址
Download - The Apache HTTP Server Projecthttp://httpd.apache.org/download.cgi
解压并移动到httpd下面srclib目录下改名
[root@localhost opt]#tar -zxf apr-1.6.2.tar.gz [root@localhost opt]#tar -zxf apr-util-1.6.0.tar.gz [root@localhost opt]#tar -jxf httpd-2.4.29.tar.bz2 [root@localhost opt]#ls apr-1.6.2 apr-util-1.6.0 httpd-2.4.29 Python-3.8.11 rh apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 Python-3.8.11.tgz
[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
安装其他插件
[root@localhost srclib]#yum -y install \
> gcc \ #C语言的编译器
> gcc-c++ \ #C++的编译器
> make \ #源代码编译器(源代码转换成二进制文件)
> pcre-devel \ #perl的接口开发包
> expat-devel \ #用于支持网站解析HTML、XML文件
> perl #perl语言编译器
上传httpd
cd到httpd
[root@localhost httpd-2.4.29]#./configure \
> --prefix=/usr/local/httpd \ #指定 httpd 服务程序的安装路径
> --enable-so \ #启用动态加载核心模块支持,使 httpd 具备进一步扩展功能的能力
> --enable-rewrite \ #启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
> --enable-charset-lite \ #启动字符集支持,以便支持使用各种字符集编码的页面
> --enable-cgi #启用CGI(通用网关接口)脚本程序支持,便于增强网站的外部扩展应用访问能力
编译并安装
[root@localhost httpd-2.4.29]make && make install -j6
#6倍数
优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
[root@localhost httpd-2.4.29]#ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@localhost httpd-2.4.29]#ln -s /usr/local/httpd/bin/* /usr/local/bin/
#便于service管理
[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
#将httpd加入到系统管理器
[root@localhost httpd-2.4.29]#chkconfig --add httpd
继续修改配置文件,修改52行和200行
[root@localhost httpd-2.4.29]#vim /usr/local/httpd/conf/httpd.conf
检查语法
[root@localhost httpd-2.4.29]#httpd -t
Syntax OK
看一下网页内容是什么
[root@localhost httpd-2.4.29]#cat /usr/local/httpd/htdocs/index.html
It works!
开启服务
[root@localhost httpd-2.4.29]#service httpd start
过滤端口
[root@localhost httpd-2.4.29]#netstat -anpt | grep 80
tcp 0 0 192.168.37.102:80 0.0.0.0:* LISTEN 16682/httpd
在网址输入你的IP地址
做到这一步证明你的apache服务安装成功了!
选择Linux安装
MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/解压压缩包
[root@localhost opt]#ls
apr-1.6.2.tar.gz httpd-2.4.29 mysql-5.6.26.tar.gz Python-3.8.11.tgz
apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 Python-3.8.11 rh
[root@localhost opt]#tar -zxf mysql-5.6.26.tar.gz
[root@localhost opt]#ls
apr-1.6.2.tar.gz httpd-2.4.29 mysql-5.6.26 Python-3.8.11 rh
apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 mysql-5.6.26.tar.gz Python-3.8.11.tgz
安装插件gcc gcc++已经安装过了就不需要
[root@localhost opt]#yum install -y ncurses-devel autoconf cmake
#ncurses开发包 #mysql需要用cmake编译安装
autoconf #是一个用于生成可以自动配置软件源代码包以适应多种unix类系统的shell脚本工具。
安装数据库的规则,字符集
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 #指定连接数据库的通讯文件(启动数据库的时候会生成)
编译安装,时间看电脑配置
root@localhost mysql-5.6.26]#make && make install -j6
复制库文件覆盖/etc/my.cnf
[root@localhost mysql-5.6.26]#cp support-files/my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
[root@localhost mysql-5.6.26]#cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.6.26]#chmod 755 /etc/init.d/mysqld #给权限
[root@localhost mysql-5.6.26]#chkconfig --add /etc/init.d/mysqld 将MySQL加到系统管理
[root@localhost mysql-5.6.26]#chkconfig mysqld --level 35 on 3和5开启
[root@localhost mysql-5.6.26]#systemctl enbale mysqld 永久开启MySQL
#创建普通用户管理mysql
[root@localhost mysql-5.6.26]#useradd -s /sbin/nologin mysql
[root@localhost mysql-5.6.26]#chown -R mysql:mysql /usr/local/mysql/
##更改管理主/组
[root@localhost mysql-5.6.26]#chown mysql:mysql /etc/my.cnf
#设置环境变量,申明/宣告mysql命令便于系统识别
[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]#/usr/local/mysql/scripts/mysql_install_db \
> --user=mysql \
> --ldata=/var/lib/mysql \
> --basedir=/usr/local/mysql \
> --datadir=/home/mysql
修改配置文件,指定位置
[root@localhost mysql-5.6.26]#vim /etc/init.d/mysqld
过滤出数据库端口
[root@localhost mysql-5.6.26]#service mysqld start
Starting MySQL. SUCCESS!
[root@localhost mysql-5.6.26]#netstat -anpt | grep 3306
tcp6 0 0 :::3306
给root设置密码,起初没有密码直接回车即可
[root@localhost mysql-5.6.26]#mysqladmin -u root -p password "123123"
Enter password:
Warning: Using a password on the command line interface can be insecure.
[root@localhost 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 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)
数据库安装成功了!!!
PHP官方下载地址
PHP: Downloadshttps://www.php.net/downloads.php解压
[root@localhost opt]#tar -jxf php-5.6.11.tar.bz2
[root@localhost opt]#ls
apr-1.6.2.tar.gz httpd-2.4.29 mysql-5.6.26 php-5.6.11 Python-3.8.11 rh
apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 mysql-5.6.26.tar.gz php-5.6.11.tar.bz2 Python-3.8.11.tgz
安装PHP所需要的动态库
[root@localhost opt]#yum -y install gd libpng libpng-devel libxml2-devel libjpeg-devel
#图像化处理的库 #png格式图片的库 #解析xml标记语言的库 #jpeg格式图片的库
执行php的脚本
[root@localhost opt]#cd php-5.6.11
[root@localhost php-5.6.11]#./configure \
--prefix=/usr/local/php5 \
--with-gd \ #激活gd 库的支持
--with-zlib \ #支持zlib功能,提供数据压缩功能的函式库
--with-apxs2=/usr/local/httpd/bin/apxs \ #指定httpd服务提供的apxs模块支持程序的文件位置
#用于指定Apache可以加载/识别对应的功能模块,此处可以让php服务模块直接提供给apache加载使用
--with-mysql=/usr/local/mysql \ #关联数据库
--with-config-file-path=/usr/local/php5 \ #指定配置文件
--enable-mbstring #启用多字节字符串功能,以便支持中文等代码
编译并安装,耐心等待
[root@localhost php-5.6.11]#make && make install -j6
优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
[root@localhost php-5.6.11]#ln -s /usr/local/php5/bin/* /usr/local/bin/
修改Apache配置文件让Apache支持PHP
[root@localhost php-5.6.11]#vim /etc/httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
创建、编辑php页面文件
[root@localhost php-5.6.11]#vim /usr/local/httpd/htdocs/index.php
重启服务
[root@localhost php-5.6.11]#service httpd stop
[root@localhost php-5.6.11]#service httpd start
在网页测试输入你的IP地址index.php
安装论坛
[root@localhost mysql-5.6.26]#mysql -u root -p
mysql> CREATE DATABASE bbs;
Query OK, 1 row affected (0.01 sec)
mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码// 所有访问来源
Query OK, 0 rows affected (0.01 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> exit
解压论坛包
[root@localhost opt]#unzip /opt/lamp/Discuz_X2.5_SC_UTF8.zip -d /opt/dis
[root@localhost opt]#cd /opt/dis
[root@localhost dis]#cp -r upload/ /usr/local/httpd/htdocs/bbs
[root@localhost dis]#cd /usr/local/httpd/htdocs/bbs
[root@localhost dis]#chown -R daemon ./config
[root@localhost dis]#chown -R daemon ./data
[root@localhost dis]#chown -R daemon ./uc_client
[root@localhost dis]#chown -R daemon ./uc_server/data
这样整个lamp所需的环境已经全部安装好了!!!