搭建企业级LAMP及应用 如何搭建企业服务器
yuyutoo 2024-10-15 16:58 8 浏览 0 评论
一、LAMP平台概述
1.LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能
够提供动态Web站点服务及其应用开发环境。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.lamp的工作原理
PhpMysqlApache静态的内容直接回应,动态的内容转给php
二、安装PHP软件包
PHP项目最初由 Rasums Lerdorf在1994年创建,1995年发布第一个版本PHP 1.0 。本小节将以
稳定版源码包php-5.5.38.tar.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]# export 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的方式有三种,其中为模块方式(module),在安装php的时候在Apache上生成一个访问php的模块,性能最好,要求lamp必须在一个机器
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 \
--enable-mbstring
上述配置命令中,各选项的含义如下:
--prefix:指定将PHP程序安装到哪个目录下,如/usr/ local/php5。
--with-mcrypt:加載数据加密等扩展工具支持。
--with-apxs2:设置 Apache HTTP Server提供的apxs模块支持程序的文件位置。 --enable-so
--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组件环境进行适当的配置.并验证是否能够协同工作。
二、设置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-production //生产版样例文件,用于实际运营
选择其中一个样例文件.并复制到PHP的配置文件目录/usr/ local/php5下,并改名为php.ini,在php.ini配置文件中以分号开头的内容表示注释信息。
[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 | grep -v "^#34;
通过修改php.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短语法标记,即<?…?>
extension=php_mysqli.dll //添加MySQL支持
2)添加 Zendguardloader优化模块(略过)
为了进一步提高PHP程序的执行效率.优化页面加载速度.可以为PHP添加Zend公司开发的ZendGuardLoader优化模块。若需要加密PHP代码以限制未经授权的分发,还可以购买该公司的ZendGuard软件。
Zend Guardloader优化模块适用于PHP 5.3到PHP5.6系列版本.该模块可以从Zend公司的官方站点http://www.zend.com下载。若使用PHP 5.2系列版本,应改用较早的ZendOptimizer,为PHP安装及添加 ZendGuardLoader模块支持的过程如下所述。
将下载的 ZendGuardLoader包解压缩,并将源码目录下的模块文件复制到PHP程序的模块文件夹。
[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配
置行,添加 index.php配置项,以识别常见的PHP首页文件。由于前面章节做虚拟Web站点,开启了 Include conf/extra/httpd-vhosts.conf配置项,所以本章中需要将其注释掉。
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
…… //省略部分内容
LoadModule php5_module modules/libphp5.so #默认存在
<IfModule dir_module>
DirectoryIndex index.html index.php #修改
</IfModule>
AddType application/x-httpd-php .php //我是新安装的所以不需要屏蔽include。需要添加
[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 already loaded, skipping //重启服务以更新配置。
在上述配置内容中,LoadModule行应该会在安装PHP的过程中自动添加,其中的" php5_ module " 表示模块名称: modules/ilbphp5.so表示模块文件位置,而AddType行需要手动添加, DirectoryIndex行在原有基础上对其进行修改即可。
三、测试LAMP协同工作
完成PHP相关软件的安装、调整配置以后,应对其进行必要的功能测试,以验证LAMP平台各组件是否能够协同运作。在网站根目录下创建相应的PHP测试网页,然后通过浏览器进行访问,根据显示结果即可判断LAMP平台是否构建成功。
下面分别从PHP网页的解析、通过PHP页面访问MySQL数据库两个方面进行测试。
要想测试PHP环境是否能够正常工作,需要建立一个使用PHP语言编写的网页文件,并通过httpd服务器发布,在浏览器中对其进行访问由于PHP语言并非本章学习的重点,这里不做过多的讲解。用于测试时,只需要建立一个简短的PHP测试文件即可。
1.测试PHP网页能否正确显示
编写一个" .php " 格式的测试网页文件,使用PHP内建的 " phpinfo()"函数显示服务器的PHP
环境信息,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 password '123456'
Enter password: #输入旧密码
Warning: Using a password on the command line interface can be insecure.
四、LAMP架构应用实例
在企业Web应用系统中,动态网站已经逐步成为主流,而基于LAMP架构的Web动态网站更是其中的佼佼者,本节将介绍一个LAMP架构协同应用的实例一 phpMyAdmin管理套件的部署及使用。
部署 phpmyadmin系统
phpMyAdmin是一个使用PHP语言编写,用来管理MySQL数据库的Web应用系统,通过该套件提供的网页界面,即便是对SQL语句不太熟悉的人,也能够非常容易地对MySQL数据库进行管理和phpmyadmin的源码包可以从其官方站点http://ww. phpmyadmin.net下载,下面以多国语言版源码包 phpMyAdmin-4.7.2-all- languages.tar.gz为例,介绍 phpMyAdmin套件的部署过程。
1.解包并复制到网站目录
对于大部分PHP应用系统,只需要解包后复制到网站目录下即可完成部署,之后再根据需要调
整配置,或者访问安装页面以完成进一步的安装,例如,若要将 phpMyAdmin套件部署到网站根目录下,以便通过站点http://www.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
将 phpMyAdmin套件复制到网站目录以后,还需要创建配置文件方可正常使用默认提供的样例配置文件为 config.sample.inc.php,需参照该文件内容建立 config.inc.pip配置文件,查找配置文件中的 blowfish_secret行,默认已经设置了一个短语密钥(此密钥用于网页 cookie认证,不需要用户记忆),可以根据需要自行修改。
[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查询语句
选择"SQL"选项卡,可以打开SQL查询页面,如图所示,在该页面中,可以直接输入MySQL操作语句,并通过单击右下方的 " 执行 " 按钮来完成相应的管理任务。
相关推荐
- 微软Win10/Win11版Copilot上线:支持OpenAI o3推理模型
-
IT之家4月3日消息,科技媒体WindowsLatest昨日(4月2日)发布博文,报道称Windows10、Windows11新版Copilot应用已摘掉Beta帽...
- WinForm 双屏幕应用开发:原理、实现与优化
-
在当今的软件开发领域,多屏幕显示技术的应用越来越广泛。对于WinForm应用程序来说,能够支持双屏幕显示不仅可以提升用户体验,还能满足一些特定场景下的业务需求,比如在演示、监控或者多任务处理等场景...
- OpenJDK 8 安装(openjdk 8 windows)
-
通常OpenJDK8和11都能互相编译和通用。我们建议使用11,但是如果你使用JDK8的话也是没有问题的。建议配置使用OpenJDK,不建议使用OracleJDK,主要是因为版...
- 基于 Linux 快速部署 OpenConnect VPN 服务(ocserv 实战指南)
-
一、前言在如今远程办公和内网穿透需求日益增长的背景下,搭建一套安全、稳定、高效的VPN系统显得尤为重要。OpenConnectServer(ocserv)是一个开源、高性能的VPN服务端软件...
- 巧妙设置让Edge浏览器更好用(edge怎么设置好用)
-
虽然现在新版本的Edge浏览器已经推出,但是毕竟还处于测试的状态中。而Win10系统里面自带的老版Edge浏览器,却越来越不被人重视。其实我们只需要根据实际情况对老版本的Edge浏览器进行一些简单的设...
- 微软开源博客工具Open Live Writer更新:多项Bug修复
-
OpenLiveWriter前身是WindowsLiveWriter,是微软WindowsLive系列软件之一,曾经是博主们非常喜爱的一款所见即所得博文编辑工具,支持离线保存,还支持图像编辑...
- 基于OpenVINO的在线设计和虚拟试穿 | OPENAIGC大赛企业组优秀作品
-
在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。...
- Python open函数详解(python open函数源码)
-
演示环境,操作系统:Win1021H2(64bit);Python解释器:3.8.10。open是Python的一个内置函数,一般用于本地文件的读写操作。用法如下。my_file=open(fi...
- 世界上最好用的Linux发行版之一,OpenSUSE安装及简单体验
-
背景之前无意在论坛里看到openSUSE的Linux发行版,被称为世界上最好用的Linux发行版之一(阔怕),一直想体验一下,于是这期做一个安装和简单体验教程吧。...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
推荐7个模板代码和其他游戏源码下载的网址
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
【开源分享】2024PHP在线客服系统源码(搭建教程+终身使用)
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
- 最近发表
-
- 微软Win10/Win11版Copilot上线:支持OpenAI o3推理模型
- WinForm 双屏幕应用开发:原理、实现与优化
- 推荐一个使用 C# 开发的 Windows10 磁贴美化小工具
- OpenJDK 8 安装(openjdk 8 windows)
- 基于 Linux 快速部署 OpenConnect VPN 服务(ocserv 实战指南)
- 巧妙设置让Edge浏览器更好用(edge怎么设置好用)
- WPF做一个漂亮的登录界面(wpf页面设计)
- 微软开源博客工具Open Live Writer更新:多项Bug修复
- 基于OpenVINO的在线设计和虚拟试穿 | OPENAIGC大赛企业组优秀作品
- C#开源免费的Windows右键菜单管理工具
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)