各位老铁们好,相信很多人对构建企业级LAMP 和应用程序都不是特别的了解,因此呢,今天就来为大家分享下关于构建企业级LAMP 和应用程序以及的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
1、LAMP架构是目前成熟的企业网站应用模型之一。它是指协同工作、能够实现的一整套系统及相关软件。
能够提供动态网站服务及其应用开发环境。 LAMP 是一个缩写词,包括:
· Linux操作系统;
· Apache网站服务器;
· MySQL数据库服务器;
· PHP(或Perl、Python)网络编程语言。
所有四个组件都是开源且免费的
2、搭建LAMP平台时,各组件的安装顺序为Linux、Apache、MySQL、PHP。 Apache和MySQL的安装没有严格的顺序:PHP环境的安装一般放在最后,负责与Web服务器和数据库系统通信,协同工作。
3.PHP是Hypertext Preprocessor(超文本预处理语言)的缩写。它是一种服务器端HTML 嵌入式脚本语言。 PHP的语法是C、Java、Perl和一些自创的新语法的混合,并且有更好的网页。执行速度,更重要的是PHP支持大多数流行的数据库,在数据库层面有非常强大的操作功能,可以支持UNIX、Windows、Linux等多种操作系统。
4、灯的工作原理
PhpMysqlApache直接响应静态内容并将动态内容转发给php
2.安装PHP软件包
PHP 项目最初由Rasums Lerdorf 在1994 年创建,第一个版本PHP 1.0 于1995 年发布。本节将基于
稳定版源码包php-5.5.38。焦油。以php.gz为例,该版本可以从PHP官方网站http://www.php.net下载。
下面介绍编译安装PHP相关软件包的基本过程。
1. 准备工作
为了避免程序冲突等现象,建议卸载RPM安装的PHP及相关依赖包(如果已经存在)。例如php、php-cli、php-ldap、php-common、php-mysql等可以根据实际安装情况进行卸载。另外,还需要安装zlib-devel和libxml2-devel包。
[root@www ~]#rpm -qa|grep php 先检查一下,有的话卸载
[root@www ~]# rpm -e php php-cli php-ldap php-common php-mysql –nodeps
[root@www local]# rpm -ivh /mnt/Packages/zlib-devel-1.2.7-17.el7.x86_64.rpm
[root@www local]# rpm -ivh /mnt/Packages/xz-devel-5.2.2-1.el7.x86_64.rpm
[root@www local]# rpm -ivh /mnt/Packages/libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm
阐明:
Libxml2:用于访问xml文件
2.安装扩展工具库
在实际的企业应用中,一些基于PHP开发的Web应用系统会需要额外的扩展工具,比如数据加密等。
工具libmcrypt、mhash、mcrypt等(可以从网站http://sourceforge.net下载),这些扩展工具程序应该在安装PHP软件包之前安装。
1)安装libmcrypt
[root@www local]# tar zxf /mnt/libmcrypt-2.5.8.tar.gz -C /usr/src/
[root@www local]# cd /usr/src/libmcrypt-2.5.8/
[root@www libmcrypt-2.5.8]# ./configure
[root@www libmcrypt-2.5.8]# make make install
[root@www libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/
2)安装mhash
[root@www local]# tar zxf /mnt/mhash-0.9.9.9.tar.gz -C /usr/src/
[root@www local]# cd /usr/src/mhash-0.9.9.9/
[root@www mhash-0.9.9.9]# ./configure
[root@www mhash-0.9.9.9]# make make install
[root@www mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash.* /usr/lib/
3)安装mcrypt
[root@www local]# tar zxf /mnt/mcrypt-2.6.8.tar.gz -C /usr/src/
[root@www local]# cd /usr/src/mcrypt-2.6.8/
[root@www mcrypt-2.6.8]# 导出LD_LIBRARY_PATH=/usr/local/lib/
[root@www mcrypt-2.6.8]# ./configure
[root@www mcrypt-2.6.8]# make make install
说明: LD_LIBRARY_PATH:环境变量,用于指定共享库的非默认存储路径
3编译并安装PHP
1) 打开包装
将下载的PHP源码包解压并释放到/usr/src目录下,并切换到展开后的源码目录。
[root@www local]# tar zxf /mnt/php-5.5.38.tar.gz -C /usr/src/
[root@www local]# cd /usr/src/php-5.5.38/
注:apache访问php有3种方式,其中就是模块方式。安装php时,Apache上会生成一个用于访问php的模块。它具有最好的性能,并且要求灯必须在机器上。
2)配置
在自定义PHP配置选项时,最关键的是指定httpd和mysqld的安装路径,以便添加相关支持设置并使LAMP组件协同工作。另外,您还可以指定安装路径。启用多字节支持、加密扩展支持等。
[root@www php-5.5.38]# ./configure –prefix=/usr/local/php5 \
–with-mcrypt \
–with-apxs2=/usr/local/httpd/bin/apxs \
–with-mysql=/usr/local/mysql \
–with-mysqli=/usr/local/mysql/bin/mysql_config \
–with-config-file-path=/usr/local/php5 \
–启用-mbstring
上述配置命令中,各个选项的含义如下:
–prefix:指定PHP程序安装目录,如/usr/local/php5。
–with-mcrypt:加载扩展工具支持,例如数据加密。
–with-apxs2:设置Apache HTTP Server提供的apxs模块支持程序的文件位置。 –启用所以
–with-mysql:设置MySQL数据库服务程序的安装位置。
–with-mysqli:添加mysqli 扩展支持。包含一些访问mysql的命令
–with-config–file-path:设置PHP配置文件php.ini的存储位置。
–enable-mbstring:启用多字节字符串功能,支持中文等编码。
3)编译安装
[root@www php-5.5.38]# make make install
编译过程可能需要较长时间,如果没有错误请耐心等待。至此PHP程序的安装过程就基本完成了。接下来,您需要适当配置LAMP组件环境。并验证它们是否可以协同工作。
2.搭建LAMP组件环境
LAMP组件环境的搭建主要包括PHP配置文件php.ini和Apache配置文件httpd.conf的调整。前者用于确定PHP的运行参数,后者用于加载libphp5.so模块以支持PHP网页。
1.php.ini配置调整
1)php.ini的创建及基本设置
安装PHP软件包后,服务器不会自动创建php.ini配置文件,但在源码目录下提供了两个示例配置文件,分别对应开发环境和生产环境。
/usr/src/php-5.5.38/php.ini-development //开发版示例文件,用于学习和测试
/usr/src/php-5.5.38/php.ini-product //生产版本示例文件,实际操作时使用
[root@www php-5.5.38]# cp /usr/src/php-5.5.38/php.ini-development /usr/local/php5/php.ini
[root@www php-5.5.38]# grep -v ‘^;’ /usr/local/php5/php.ini | /usr/local/php5/php.ini | grep -v ‘^#34;
通过修改php.ini ini文件中的配置内容可以控制PHP网页的执行特性,例如是否允许用户上传文件、设置上传文件的大小限制、设置默认字符集、加载附加扩展模块等。没有特殊要求,直接使用默认配置即可,无需做任何修改。
[root@www php-5.5.38]# vim /usr/local/php5/php.ini
…… //省略部分内容
default_charset=’UTF-8 //设置默认字符集为utf-8
file_uploads=On //允许上传的文件大小限制
upload_max_filesize=2M //允许通过PHP网页上传文件max_file_uploads=20
post_max_size=8M //每次通过表单post提交的数据量限制
Short_open_tag=On //允许识别PHP短语法标签,即
为了进一步提高PHP程序的执行效率。优化页面加载速度。 PHP中可以添加Zend开发的ZendGuardLoader优化模块。如果您需要加密您的PHP 代码以限制未经授权的分发,您还可以购买该公司的ZendGuard 软件。
Zend Guardloader 优化模块适用于PHP 5.3 至PHP5.6 系列版本。该模块可以从Zend的官方网站http://www.zend.com下载。如果您使用PHP 5.2 系列版本,则应切换到早期的ZendOptimizer。安装和添加PHP 的ZendGuardLoader 模块支持的过程如下。
[root@www local]# tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /usr/src/
[root@www local]# cd /usr/src/zend-loader-php5.5-linux-x86_64/
[root@www zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/
修改php.ini配置文件,添加配置语句来加载并启用ZendGuardLoader.so模块。
[root@www zend-loader-php5.5-linux-x86_64]# vim /usr/local/php5/php.ini
…… //省略部分内容
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_locader.enable=1
2.httpd.conf配置调整
要使httpd服务器支持PHP页面解析功能,需要通过LoadModule配置项加载PHP程序的模块文件,并通过AddType配置项添加对PHP类型网页文件的支持。此外,您还应该修改Directoryindex配置。
设置行并添加索引。 PHP配置项用于识别常见的PHP主页文件。由于上一章创建了虚拟网站并启用了Include conf/extra/httpd-vhosts.conf 配置项,因此本章需要将其注释掉。
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
…… //省略部分内容
LoadModule php5_module module/libphp5.so #默认存在
IfModule dir_模块
DirectoryIndex index.html index.php #修改
/If模块
AddType application/x-httpd-php .php //我是新安装的,所以不需要阻止包含。需要添加
[root@www ~]# /usr/local/httpd/bin/apachectl restart
[Tue Sep 25 17:29:50.487515 2018] [so:warn] [pid 38666:tid 140196633306944] AH01574: module php5_module is已经加载,跳过//重新启动服务以更新配置。
上述配置内容中,LoadModule行应在PHP安装过程中自动添加。 ‘php5_module’ 代表模块名称:modules/ilbphp5.so 代表模块文件位置,而AddType 行需要手动添加。 DirectoryIndex行在原来的基础上修改即可。
3.测试LAMP协同工作
在完成PHP相关软件的安装和调整配置后,应进行必要的功能测试,以验证LAMP平台的组件是否可以协同运行。在网站根目录下创建对应的PHP测试网页,然后通过浏览器访问。根据显示的结果,可以判断LAMP平台是否搭建成功。
下面的测试从解析PHP网页和通过PHP页面访问MySQL数据库两个方面进行。
测试PHP环境是否可以正常工作,需要创建一个用PHP语言编写的网页文件,通过httpd服务器发布,并在浏览器中访问。由于PHP语言不是本章的重点,因此我们在这里不做过多介绍。解释。对于测试,您只需要创建一个简短的PHP 测试文件。
1.测试PHP网页是否能正确显示
编写一个’.php’格式的测试网页文件,并使用PHP内置的’phpinfo()’函数来显示服务器的PHP
环境信息、PHP代码应该包含在标签之间。将测试网页文件放置在网站根目录下,如
/usr/local/httpd/htdocs/test.php。
[root@www ~]# vim /usr/local/httpd/htdocs/test1.php
?php
phpinfo();
?
通过浏览器访问测试网页,例如http://www.bdqn.com/test1.php。如果可以看到PHP程序的版本
编号、配置命令、运行变量等相关信息,如图所示,则表示Web服务器可以正常显示PHP网页;如果还可以看到Zend引擎相关信息,则说明ZendGuardLoader模块也已成功启用。
2、测试PHP网页是否可以访问MYSQL数据库
编写一个测试网页文件test2.php,添加简单的数据库操作命令,验证与MySQL服务器的连接查询等操作。其中‘mysqli_connect()’函数用于连接MSOL数据库,需要指定目标主机地址。
以及授权访问的用户名和密码。
[root@www ~]# vim /usr/local/httpd/htdocs/test2.php
?php
$link=mysqli_connect(‘localhost’,’root’,’123456′);
if($link) echo ‘恭喜,数据库连接成功! ‘;
mysqli_close($link);
?
通过浏览器访问测试网页,例如http://www. bdqn com/test2如果php能够看到连接成功的提示信息,如图所示,则说明可以通过PP网页访问MSL数据库。当使用不正确的用户名或密码或者由于未运行‘mysqli-connect()’函数而导致连接失败时,执行过程中会报错。
MySQL没有密码时如何设置密码
[root@localhost htdocs]# mysqladmin -u root -p 密码’123456′
Enter password: #输入旧密码
警告: 在命令行界面上使用密码可能不安全。
4. LAMP架构应用实例
在企业Web应用系统中,动态网站已逐渐成为主流,其中基于LAMP架构的Web动态网站名列前茅。本节将介绍一个LAMP架构协同应用的例子——phpMyAdmin管理套件的部署和使用。
部署phpmyadmin系统
phpMyAdmin是一个用PHP语言编写的Web应用系统,用于管理MySQL数据库。通过该套件提供的Web界面,即使是不熟悉SQL语句的人也可以轻松管理MySQL数据库并使用phpmyadmin。源代码包可以从其官方网站http://www.download.com下载。 phpmyadmin。 net下载,以下是多语言版本的源码包phpMyAdmin-4.7.2-all- languages。焦油。以phpMyAdmin套件为例介绍phpMyAdmin套件的部署过程。
完成配置,或者访问安装页面完成进一步安装,例如将phpMyAdmin包部署到网站根目录,以便可以通过网站http://www.phpMyAdmin访问。 bdqn。 com/phpMyAdmin 访问,可以参考以下内容。
[root@www local]# tar zxf phpMyAdmin-4.7.2-all-languages.tar.gz
[root@www local]# mv phpMyAdmin-4.7.2-all-languages /usr/local/httpd/htdocs/phpMyAdmin
2.创建配置文件config.inc.php
[root@www local]# cd /usr/local/httpd/htdocs/phpMyAdmin/
[root@www phpMyAdmin]# cp config.sample.inc.php config.inc.php
3访问phpmyadmin的Web管理界面
访问http://www. bdqn。 com/phpMyAdmin,如果可以看到phpmyadmin系统的登录界面,如图所示,则说明部署成功。以使用MySQL数据库的用户(不是密码为空的用户)登录后,即可在授权范围内对数据库进行管理。
使用phpmyadmin系统
在使用phpMyAdmin系统之前,您应该首先通过MySQL服务器中授权的数据库用户(如root用户)登录。认证成功后,可以看到管理界面,如图所示。通过phpMyAdmin套件,用户可以在授权范围内执行各种任务。这样的数据库管理操作使得界面更加直观友好,大大降低了MySQL数据库服务器远程维护的难度。
管理页面的初始界面是典型的栏目结构。左侧包括一排导航按钮(主页、退出、查询、帮助、SQL文档)、库列表:右侧是主窗口,其中显示了几个标签、操作面板、界面控件等组件,以及MySQL、网站服务器、phpMyAdmin的版本信息。
下面仅简单介绍一下phpmyadmin系统中的几种常见的数据库操作。更多的操作方法需要大家去探索和实践。
1.创建新库和新表
要创建新的库,可以选择右侧的“数据库”选项卡,然后在下方的“新建数据库”区域进行操作,如图。例如,指定新库的名称为bdqn,并选择“utf8_general_ci”作为排序规则。 ‘,然后单击“创建”按钮创建新的bdqn 库。
返回管理界面主页,在左侧列表中“结构”选项卡下选择新创建的bdqn库。可以输入新的表名和字段数,如图,点击‘执行’按钮;然后根据页面内容设置各个字段的名称、类型(对于想要包含中文数据的字段,类型应为文本列下的CHAR、VCHAR等)、长度等元素。单击保存“按钮”以创建新的指定表。
2.表格和数据记录的管理
通过选择指定库中的表,可以浏览数据、修改表结构、搜索数据、插入数据等,如
如图所示。
值得注意的是。如果数据库或表需要记录包含中文的数据,则应保证LAMP平台的各个组件使用相同的字符集(如UTF-8),否则可能会出现乱码。在编码一致的前提下,新建数据库和表
插入、浏览记录时,可以正常使用中文。如图所示。
3直接执行MySQL查询语句
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/198176.html
用户评论
莫阑珊
终于有人聊聊真实世界IT环境了! 我在公司也一直挣扎着想用更高效方案取代老旧的Windows服务器集群,这款LAMP搭建方案正好对标我的需求啊!
有14位网友表示赞同!
不要冷战i
说起来LAMP架构真的简单易用,我之前学习Linux的时候就试过搭建简单的博客网站,不过企业级应用可不一样吧? 希望这篇文章能详细解释一下如何应对复杂环境的需求。
有16位网友表示赞同!
堕落爱人!
文章写得真好,把LAMP的基本概念和部署步骤都讲得很清楚,尤其对安全性方面的强调让我很有印象!我公司最近也打算开始探索云平台,或许可以参考这个方案。
有5位网友表示赞同!
满心狼藉
企业级应用需要考虑的东西太多啦,仅仅从LAMP搭建本身来说好像不够? 数据库性能优化、负载均衡、监控等等都是必不可少的环节吧!
有8位网友表示赞同!
巷口酒肆
这种架构的弹性和可扩展性确实很出色,但稳定性是不是很容易受到影响呢? 因为很多企业级应用的需求比较多样化,可能需要部署不同的应用程序和服务?
有16位网友表示赞同!
凝残月
搭建企业级LAMP环境太麻烦了,这篇文章只是浅层介绍,实际操作起来可是要花费不少时间精力,我公司还是继续依赖专业IT厂商的解决方案吧!
有20位网友表示赞同!
爱到伤肺i
最近对云平台很有兴趣,想学习一下如何用容器化技术部署LAMP应用。 这篇文章提到了一些关于容器相关的概念,感觉很实用!
有19位网友表示赞同!
予之欢颜
企业级的安全性要求非常高,仅仅依靠 LAMP系统提供的安全机制是否足够呢? 我觉得还需要结合其他安全工具和解决方案,比如防火墙、入侵防御系统等…
有20位网友表示赞同!
孤街浪途
搭建LAMP应用确实可以节省成本, 但是企业的业务流程复杂性也比较大,需要考虑多方面的因素才能作出最佳方案选择的。
有5位网友表示赞同!
墨城烟柳
我之前一直在用开源的监控系统来检测LAMP系统的稳定性和性能,其实这方面做得还可以再完善一些,比如可以加入主动修复机制或者自动调优功能…
有13位网友表示赞同!
寂莫
企业级应用的定制化需求很高,LAMP架构本身的可扩展性和灵活性怎么样呢? 我担心遇到特殊的需求难以进行二次开发和适配…
有10位网友表示赞同!
杰克
文章内容很客观,对LAMP架构的优缺点都进行了分析,帮助我们更全面地了解这个方案。
有5位网友表示赞同!
風景綫つ
其实企业级应用除了选择合适的架构外,还需要考虑团队经验、技术支持等因素。 希望这篇文章能提供更多实践经验分享。
有9位网友表示赞同!
不识爱人心
文章写的非常详细,包括了从部署到监控的各个方面的内容,让我很有收获!
有15位网友表示赞同!
一笑傾城゛
我觉得LAMP架构在中小企业环境下还是比较合适,但对于大型企业来说,需要考虑更复杂的解决方案,比如微服务架构等等…
有18位网友表示赞同!
三年约
对于刚接触 LAMP 架构的小伙伴来说,这篇文章是一个很好的入门指南,但想要深入了解企业级应用的部署和运维,还需要学习更多知识和实践经验。
有8位网友表示赞同!
烟花巷陌
LAMP 架构确实有它自身的优势,特别是在成本方面,但是对安全性方面的需求也需要认真对待。 选择合适的防火墙、入侵防御系统等安全工具非常重要!
有7位网友表示赞同!
◆残留德花瓣
我自己就曾经搭建过一个 LAMP 应用,体会到它的灵活性和可扩展性,但同时也要注意维护和安全问题。 对于企业级应用来说,还需要考虑更稳健的解决方案!
有9位网友表示赞同!