玩架构怎能不了解LAMP,快来看看吧,超级详细,让你秒懂的节奏!!!
LAMP介绍LAMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态 Web 站点服务及其应用开发环境。LAMP 是一个缩写词,具体包括 Linux 操作系统、Apache 网站服务器、MySQL 数据库服务器、PHP(或 Perl、Python)网页编程语言。本章将以源码编译的方式搭建 LAMP 环境,能够满足企业定制化的需求。在构建 LAMP 平台时,
LAMP介绍
LAMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和
相关软件,能够提供动态 Web 站点服务及其应用开发环境。LAMP 是一个缩写词,具
体包括 Linux 操作系统、Apache 网站服务器、MySQL 数据库服务器、PHP(或 Perl、
Python)网页编程语言。本章将以源码编译的方式搭建 LAMP 环境,能够满足企业定
制化的需求。
在构建 LAMP 平台时,各组件的安装顺序依次为 Linux、Apache、MySQL、PHP。
其中 Apache 和 MySQL 的安装并没有严格的顺序;而 PHP 环境的安装一般放到最后,
负责沟通 Web 服务器和数据库系统以协同工作。
Apache 简介
“Apache HTTP Server”是开源软件项目的杰出代表,基于标准的 HTTP 网络协议提供
网页浏览服务,在 Web 服务器领域中长期保持着超过半数的份额。Apache 服务器可以运
行在 Linux、UNIX、Windows 等多种操作系统平台中。
Apache 服务器是针对之前出现的若干个 Web 服务器程序进行整合、完善后形成的软
件,其名称来源于“A Patchy Server”,意思是“基于原有 Web 服务程序的代码进行修改(补
丁)后形成的服务器程序”。
1995 年, Apache 服务程序发布了 1.0 版本,之后一直由“Apache Group”负责该项目
的管理和维护;直到 1999 年,在“Apache Group”的基础上成立了 Apache 软件基金会
(Apache Software Foundation,ASF)。目前,Apache 项目一直由 ASF 负责管理和维护。
ASF 是非盈利性质的组织,最初只负责“Apache Web”服务器项目的管理,随着 Web
应用需求的不断扩大,ASF 逐渐增加了许多与 Web 技术相关的开源软件项目,因此 Apache
现在不仅仅代表着 Web 服务器,更广泛地代表着 ASF 管理的众多开源软件项目。ASF 基
金会的官方网站是 http://www.apache.org/。
“Apache HTTP Server”是 ASF 旗下著名的软件项目之一,其正式名称是“httpd”,也就
是历史上的 Apache 网站服务器。在后续内容中,若未作特殊说明,使用“Apache”或者“httpd”,
均指的是“Apache HTTP Server”。
Apache 的主要特点
1、开放源代码:这是 Apache 服务器的重要特性之一,也是其他特性的基础。
Apache 服务程序由全世界的众多开发者共同维护,并且任何人都可以自由使
用,这充分体现了开源软件的精神。
2、跨平台应用:这个特性得益于 Apache 的源代码开放。Apache 服务器可以运
行在绝大多数软硬件平台上,所有 UNIX 操作系统都可以运行 Apache 服务
器,甚至 Apache 服务器可以良好地运行在大多数 Windows 系统平台中。
Apache 服务器的跨平台特性使其具有被广泛应用的条件。
3、支持各种Web 编程语言:Apache服务器可支持的网页编程语言包括Perl、PHP、
Python、Java 等,甚至微软的 ASP 技术也可以在 Apache 服务器中使用。支
持各种常用的 Web 编程语言使 Apache 具有更广泛的应用领域。
4、模块化设计:Apache 并没有将所有的功能集中在单一的服务程序内部,而是
尽可能地通过标准的模块实现专有的功能,这为 Apache 服务器带来了良好的
扩展性。其他软件开发商可以编写标准的模块程序,从而添加 Apache 本身
并不具有的其他功能。
5、运行非常稳定:Apache 服务器可用于构建具有大负载访问量的 Web 站点,很
多知名的企业网站都使用 Apache 作为 Web 服务软件。
6、良好的安全性:Apache 服务器具有相对较好的安全性,这是开源软件共同具
有的特性。并且,Apache 的维护团队会及时对已发现的漏洞提供修补程序,
为 Apache 的所有使用者提供尽可能安全的服务器程序。
编译安装HTTP服务
安装Apache所需软件
apr-1.6.2.tar.gz 软件包的作用让apache支持正则表达式
apr-util-1.6.0.tar.gz 实现apache跨平台的软件包
httpd-2.4.29.tar.gz
可以通过xftp软件将3个包传到opt目录下
[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
[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
如果让apache支持跨平台进行使用,需要将俩个软件包挪到apache目录下,让其有这个功能
[root@localhost opt]#
yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
注释:gcc \
gcc-c++ \ 就是一个编译器
make \ 把人编写的配置文件变成二进制文件
expat-devel \
perl
这俩个是开发的语音,意思就是让apache支持多种语音
[root@localhost opt]# cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
####配置模块解释####
--prefix:指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd
--enable-so:启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力。
--enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网
--enable-cgi:启用 CGI 脚本程序支持,便于扩展网站的应用访问能力。
编译及安装
make && make install
优化执行路径
ln -s /usr/local/httpd/conf/httpd.conf /etc/
注释:这条命令也就是优化路劲,直接在/etc目录下就可以管理,比如现在直接可以vi /etc/httpd.conf
ln -s /usr/local/httpd/bin/* /usr/local/bin/
注释:这条命令就是相对于把apache下面所有命令执行文件,放在/urs/local/bin 的环境变量下,这样任何路径下都可以执行
建立[service].service 配置文件添加系统给服务
在/lib/systemd/system/目录下,建立一个以.service 结尾的单元(unit)配置文件,
用于控制由 systemd 管理或监控的 httpd 服务
[root@localhost ~]# cd /lib/systemd/system/
[root@localhost system]# vim httpd.service
[Unit]
Description=The Apache HTTP Server // 描述
After=network.target // 网络服务模式
[Service]
Type=forking //forking服务类型,一般start开启这个服务,后天会有一个守护进行去支撑他,让他持续在线工作
PIDFile=/usr/local/httpd/logs/httpd.pid //进程文件,里面存放着每次开启或者关闭的进程信息
ExecStart= /usr/local/bin/apachectl $OPTIONS 启动文件
ExecrReload= /bin/kill -HUP $MAINPID //重载
[Install]
WantedBy=multi-user.target //多用户登录模式
[root@localhost system]# systemctl start httpd.service
[root@localhost system]# systemctl enable httpd.service ###开机自启http
[root@localhost system]# systemctl is-enabled httpd.service ###检查HTTP单元是否启动
vi /usr/local/httpd/conf/httpd.conf
ServerName www.51xit.top:80 ###更改下
systemctl restart httpd####重启httpd服务
用系统的浏览器验证
netstat -anpt | grep 80 看能不能过滤到80端口或者直接用浏览器直接输入虚拟机的ip看还能否进行访问
安装5.6版本的数据库MYSQL
#######如果是直接安装mysql数据库请先安装下面的环境,如已经安装跳过下面一步
yum -y install
gcc
gcc-c++ \
make
pcre-devel
expat-devel
perl
注释:gcc
gcc-c++ \ 编译器 ,pcre-devel \ 让apache支持正则表达式
expat-devel \ perl 让apache支持开发的语言,也就是支持多种语音
yun -y install ncurses-devel autoconf cmake
注释:ncurses-devel 计算机语言,指的是提供字符终端处理库,每个开发的语言都会有一个专门的数据函数库,如果没有这个库没有意思了
tar xzcf mysql-5.6.26.tar.gz 解压mysql数据包
cd mysql-5.6.26 切到解压的目录下
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 指定安装路径
-DDEFAULT_CHARSET=utf8 默认字符集,能够识别简体中文
-DDEFAULT_COLLATION=utf8_general_ci 通用型的字符控制,也就是不规矩的中文
-DEXRRA_CHARSETS=all 支持所有字符
-DSYSCONFIDIR=/etc 系统配置文件放在/etc目录下
-DMYSQL_DATADIR=/home/mysql 数据目录
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock .sock通讯问津,用于连接数据库
注释:解压过目录之后,还未cmake的时候,在/etc目录下就有my.cnf配置文件,所有cmake之后要把之前的配置的文件覆盖掉,否则会有冲突
make&&make install
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? yes
注释:在扩展目录下有一个支持文件support-files,在下面有一个默认配置模板,把其拷贝到/etc目录下,将之前的/etc/my.cnf的配置文件复制掉
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld
注释:在将扩展目录下的支持文件下的mysql服务移到/etc/init.d/目录下,让其便于service管理
[root@localhost mysql-5.6.26]# ls /etc/init.d
注释:发现没有执行的权限
[root@localhost mysql-5.6.26]# chmod 755 /etc/init.d/mysqld 授权
[root@localhost init.d]#cd /etc/init.d
[root@localhost init.d]# chkconfig --list 发现在35级别并没有mysqld这个服务
[root@localhost init.d]# chkconfig --add mysqld 添加该服务
[root@localhost init.d]# chkconfig --list 查询下列表,发现mysqld已经在其中,并且35级别都是开启,这就是相当于设置了开机自启
[root@localhost init.d]# echo “PATH=$PATH:/usr/loacl/mysql/bin” >> /etc/profile
注释:命令让系统识别的几种方式:1.建立软链接,建立在/usr/local/bin或/usr/bin/目录下;
2.cp到系统环境(bin)目录下;3.环境变量的设置,而且在当前环境下不添加环境变量,系统都无法使用mysql命令
[root@localhost init.d]# source /etc/profile 刷新一下配置文件
[root@localhost init.d]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/loacl/mysql/bin
[root@localhost mysql-5.6.26]# useradd -s /sbin/nologin mysql
注释:创建一个mysql程序用户,并且指定环境不能远程登录,另外创建账户之后会在普通用户的家目录/home建立一个mysql的家目录
[root@localhost mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql
数据库的初始化
/usr/local/mysql/scripts/mysql_install_db
--user=mysql
--ldata=/var/lib/mysql
--basedir=/usr/local/mysql
--datadir=/home/mysql
注释:
/usr/local/mysql/scripts/mysql_install_db //scripts脚本的目录下
--user=mysql 指定用户
--ldata=/var/lib/mysql 函数数据库
--basedir=/usr/local/mysql 工作目录
--datadir=/home/mysql 数据目录
[root@localhost mysql-5.6.26]# vi /etc/init.d/mysqld
注释:在主配置文件中添加工作和数据目录,指明路径
[root@localhost mysql-5.6.26]# service mysqld start
[root@localhost mysql-5.6.26]# netstat -anpt |grep 3306
[root@localhost bin]# mysqladmin -uroot -p password “abc123”
安装php
yum -y install \
gd \
libpng \
libpng-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel
注释:
yum -y install \
gd \ gd库 专门用来处理图片和图像的
libpng \ 专门处理png图片的
libpng-devel \
pcre \ 支持正则表达式
pcre-devel \
libxml2-devel \ 处理文件的格式xml格式,版本2
libjpeg-devel 处理jpg图片
cd /opt
tar jxvf php-7.1.10.tar.bz2
cd php-7.1.10/
[root@localhost php-7.1.10]#
./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring
注释:
[root@localhost php-7.1.10]#
./configure \
--prefix=/usr/local/php5 \ 安装路劲
--with-gd \ 使用之前安装gd库
--with-zlib \ 支持里面的函数库
--with-apxs2=/usr/local/httpd/bin/apxs \ apxs2简单的来说是为apache编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态对象,使之可以用由mod_so提供的Loadmodule 指令在运行时加载到Apache服务器中 (如果不指定之后用页面测试的时候php那个页面出不来)
--with-mysql=/usr/local/mysql \ 关联数据库
--with-config-file-path=/usr/local/php5 \ 配置文件的路径
--enable-mbstring 开启mbstring库,能够支持多字节的字符串,处理中文字符串
make -j3
make install
[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php5/php.ini
让php的配置文件php.ini,命令能让系统识别
[root@localhost php-7.1.10]# ln -s /usr/local/php5/bin/* /usr/local/bin
在任何路劲下都可以执行该命令
PHP在这不存在启动脚本,它是依赖于apache的启动而启动的,所以让apahce识别到php,那么要在apache的配置文件添加让其支持php处理
[root@localhost php-7.1.10]# vi /etc/httpd.conf
AddType application/x-httpd-php .php 核心进程的请求
AddType application/x-httpd-php-source .phps 基于源进程的请求
DirectoryIndex index.php index.html 插入一个index.php的首页类型
[root@localhost php-7.1.10]# httpd -t
Syntax OK
[root@localhost php-7.1.10]# systemctl restart httpd 凡是修改了配置文件就要重启加载
[root@localhost php-7.1.10]# vi /usr/local/httpd/htdocs/index.php 制作一个网站的首页
<?php
phpinfo();
?>
[root@localhost htdocs]# rm -rf index.html 删除之前的网站首页格式,否则会冲突
[root@localhost htdocs]# systemctl restart httpd
网页测试,输入主机ip 20.0.0.27
[root@localhost htdocs]# mysql -uroot -p
Enter password:
mysql> create database bbs; 创建一个库
Query OK, 1 row affected (0.00 sec)
mysql> grant all on bbs.* to 'bbsuser'@'%' identified by 'admin123';
注释:允许bbsuser账户上任意网段访问bbs库里面所有的表,密码为admin123
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; //凡是进行授权的都要用这条命令进行刷新
Query OK, 0 rows affected (0.00 sec)
[root@localhost opt]# cd dir_SC_UTF8/ 切到扩展目录
[root@localhost dir_SC_UTF8]#cp -r upload/ /usr/local/httpd/htdocs/bbs 把upload目录下所有的文件目录递归到bbs目录下
[root@localhost dir_SC_UTF8]# cd /usr/local/httpd/htdocs/bbs
[root@localhost bbs]#chown -R daemon ./config
[root@localhost bbs]#chown -R daemon ./data/
[root@localhost bbs]#chown -R daemon ./uc_client/
[root@localhost bbs]#chown -R daemon ./uc_server/data/
授权之后就可以去网页进行安装,否则会有报错
更多推荐
所有评论(0)