LAMP概述
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。
各组件作用
- -L:很显然L代表Linux系统,但此L需注意系统的版本号,如Centos6.9或Centos7.3;
- -A:表示apache,在传统行业中,多数采用Apache服务器,因此也很有必要了解学习Apache;
- -M:表示数据库,多数采用mysql或mariadb,作为专业的数据库工程师需经多年的历练;
- -P:表示PHP、python、perl等等编程语言。
apache主要实现如下功能
一:处理http的请求、构建响应报文等自身服务;
二:配置让Apache支持PHP程序的响应(通过PHP模块或FPM);
三:配置Apache具体处理php程序的方法,如通过反向代理将php程序交给fcgi处理。
mariadb主要实现如下功能
一:提供PHP程序对数据的存储;
二:提供PHP程序对数据的读取(通常情况下从性能的角度考虑,尽量实现数据库的读写分离)。
php主要实现如下功能
一:提供apache的访问接口,即CGI或Fast CGI(FPM);
二:提供PHP程序的解释器;
三:提供mairadb数据库的连接函数的基本环境。
由此可知,要实现LAMP在配置每一个服务时,安装功能需求进行配置,即可实现LAMP的架构,当然apache、mariadb和php服务都可配置为独立服务,安装在不同服务器之上。
编译安装Apache httpd服务
将安装的Apache所需软件包传到/opt目录下
apr组件包用于支持Apache上层应用跨平台,提供底层接口库,能有效的降低并发连接数、降低进程和减少访问堵塞。
解压跨平台组件包和源码包
cd /opt/
tar zxf apr-1.6.2.tar.gz //在/opt目录下解压这三个包
tar zxf apr-util-1.6.0.tar.gz
tar jxf httpd-2.4.29.tar.bz2
将跨平台组件包移动到源码包目录下
mv apr-1.6.2 /opt/httpd-2.4.29/srclib/apr //将解压出来的apr目录移动到httpd目录下并改名
mv apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util
安装编译器和其他工具
yum -y install \
gcc \ //C语言的编译器
gcc-c++ \ //C++的编译器
make \ //源代码编译器(源代码转换成二进制文件)
pcre \ //pcre是一个Perl函数库,包括perl 兼容的正则表达式库
pcre-devel \ //perl的接口开发包
expat-devel \ //用于支持网站解析HTML、XML文件
perl //perl语言编译器
yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl
- 安装之前先检查DNS有没有配(没有配则无法安装)
configure配置
cd /opt/httpd-2.4.29/ //切换到httpd目录下
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
//指定httpd服务程序安装路径及启动多项功能
./configure \
--prefix=/usr/local/httpd \ //指定将 httpd 服务程序的安装路径
--enable-so \ //启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力
--enable-rewrite \ //启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \ //启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi //启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力
make编译和makeinstall
make //编译
make install //安装
创建配置文件的软链接
优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
配置启动脚本
- 将启动脚本复制到/etc/init.d/初始化脚本文件中,并重命名为httpd
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd //在行首插入下两行内容,并保存退出
# chkconfig: 35 85 21 //35级别自动运行 第85个启动 第21个关闭
# description: Apache is a World Wide Web server
:wq
chkconfig --add httpd //将httpd服务加入到service管理器
systemctl start httpd.service //启动httpd服务
或
service httpd start
修改httpd服务配置文件
vim /usr/local/httpd/conf/httpd.conf
--52行--修改 //改为监听IP为自己服务器IP
Listen 192.168.41.128:80
--197行--取消注释,修改 //取消注释,并随便修改一个域名
ServerName www.kgc.com:80
--221行--默认首页存放路径 // 无需修改
DocumentRoot "/usr/local/httpd/htdocs"
--255行--默认首页文件名设置 // 无需修改
DirectoryIndex index.html
:wq
关闭防火墙,开启服务
systemctl stop firewalld.service
setenforce 0
httpd -t 或 apachectl -t //检查语法
cat /usr/local/httpd/htdocs/index.html //查看httpd服务默认首页文件内容
netstat -anpt | grep 80 //查看服务器tcp服务状态
登录验证,Apache服务启动成功
echo "192.168.41.128 www.520.com" >> /etc/hosts
//将IP和域名追加到 /etc/hosts文件中;/etc/hosts文件为主机映射文件,是将IP和主机对应的文件
编译安装mysqld 服务
- 功能 ——提供持久化存储
将安装mysql 所需软件包传到/opt目录下
安装环境依赖包
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake autoconf
yum -y install \
gcc \ //编译语言,翻译官
gcc-c++ \
ncurses \ //字符终端下图形互动功能的动态库
ncurses-devel \ //ncurses开发包
bison \ //语法分析器
cmake \ //mysql需要用cmake编译安装
autoconf //是一个用于生成可以自动配置软件源代码包以适应多种unix类系统的
配置软件模块
tar xzvf mysql-5.6.26.tar.gz -C /opt //解压软件包
cd mysql-5.6.26
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //指定mysql的安装路径
-DDEFAULT_CHARSET=utf8 \ //指定默认使用的字符集编码,如 utf-8
-DDEFAULT_COLLATION=utf8_general_ci \ //指定默认使用的字符集校对规则
-DEXTRA_CHARSETS=all \ //指定支持其他字符集编码
-DSYSCONFIDIR=/etc \ //指定配置文件的存储路径
-DMYSQL_DATADIR=/home/mysql/ \ //数据文件
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock //指定连接数据库的通讯文件(启动数据库的时候会生成)
make编译和安装
make && make install
复制配置文件和脚本文件
cp support-files/my-default.cnf /etc/my.cnf //配置文件的模板覆盖到系统默认mysql配置文件
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld //给他启动权限
chkconfig --add /etc/init.d/mysqld //让系统去识别mysqld
chkconfig mysqld --level 35 on //指定mysqld开机自启动
- 注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧
useradd -s /sbin/nologin mysql //创建普通用户管理mysql
chown -R mysql:mysql /usr/local/mysql/ //递归更改管理主/组
- 设置环境变量,申明/宣告mysql命令便于系统识别
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile //使命令不需重启立即生效
echo $PATH //查看环境
初始化数据库
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql
编辑启动脚本
vim /etc/init.d/mysqld
#46-47行
basedir=/usr/local/mysql //工作目录路径
datadir=/home/mysql //数据存放路径
service mysqld start
netstat -anpt | grep 3306
启动服务并设置用户密码
mysqladmin -u root -p password "abc123" //给root用户设置密码
mysql -u root -p //输入刚设置的密码abc123
Enter password: //原本密码为空,直接回车即可
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
#授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限
show databases; #查看当前已有的数据库
编译安装PHP 解析环境
安装GD库和GD库关联程序,用来处理和生成图片
yum -y install \
gd \ #图像化处理的库
libpng \ #png格式图片的库
libpng-devel \
pcre \ #PCRE库支持正则表达式
pcre-devel \ #pcre-devel是使用PCRE做二次开发时所需要的开发库,也是编译安装需要的
libxml2-devel \ #解析xml标记语言的库
libjpeg-devel #jpeg格式图片的库
configure配置
cd /opt
tar xjvf php-5.6.11.tar.bz2
cd php-5.6.11
编译及安装
make && make install
编辑配置文件
ln -s /usr/local/php7/bin/* /usr/local/bin/ //创建命令软链接
--256行--修改首页文件名设置
DirectoryIndex index.html index.php
--393行--插入以下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
---检查支持php5的模块是否存在------
LoadModule php5_module modules/libphp5.so
创建、编辑php页面文件
vim index.html
<?php
phpinfo();
?>
#重启服务
service httpd stop
service httpd start
restart --> stop start
检查PHP是否搭建成功
LAMP构架搭建论坛
解压论坛压缩包,设置权限
cd /opt/dis
cp -r upload/ /usr/local/httpd/htdocs/bbs
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
创建MySQL数据库并添加用户
[root@www ~]# mysql -uroot -pabc123
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'@'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> quit
Bye
cd /opt/dis
cp -r upload/ /usr/local/httpd/htdocs/bbs //上传站点更新包
//更改论坛目录的属主
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/
论坛搭建网页设置
总结
- LAMP 架构组件包括 Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。
- httpd服务器的主配置文件是 httpd.conf,通过Include配置项可以加载其他配置文件。
- httpd服务支持三种类型的虚拟Web主机,分别是基于域名、基于IP地址、基于端口的虚拟主机。
- 安装PHP软件包时,通过--with-apxs2、--with-mysql配置选项分别可指定httpd、mysql的相关路径。
- 要使httpd服务支持PHP网页,应编辑httpd.conf文件,确认加载libphp5.so模块,并添加“.php”类型文件的识别。
- phpMyAdmin是一个使用PHP语言编写,用来管理MySQL数据库的Web应用系统。
- 使用YUM仓库基于CentOS 7.3安装最新版本来搭建LAMP环境。