LAMP简介:
本章实现的时单机LAMP且通过php以httpd模块的形式实现。
L:linux
A:apache (httpd)
M:mysql, mariadb
P:php, perl, python
WEB资源类型:
静态资源:原始形式与响应内容一致,在客户端浏览器执行
动态资源:原始形式通常为程序文件,需要在服务器端执行之后,将执行结果返回给客户端
Web相关语言
客户端技术: html,javascript,css,jpg
服务器端技术:php, jsp,python,asp。
php: 脚本编程语言、嵌入到html中的嵌入式web程序语言,基于zend编译成opcode(二进制格式的字节码,重复运行,可省略编译环境)
CGI
CGI:Common Gateway Interface
描述了client和server之间传输数据的一种标准。可以让一个客户端,从网页浏览器通过http服务器向执行在网络服务器上的程序传输数据;CGI描述了客户端和服务器程序之间传输的一种标准
请求流程:
Client -- (http协议) --> httpd -- (cgi) --> application server (program file)--(mysql协议) --> mysql
LAMP工作原理
php与apache结合的方式
①CGI:client访问动态资源时,httpd会fork一个子进程来运行PHP引擎,来加载并运行PHP文件
②Fast CGI:php-fpm程序,监听一个套接字提供服务。
③modules:默认方式,把php编译为httpd的一个模块。
MPM:
prefork: libphp5.so
event, worker: libphp5-zts.so
php与mysql结合的方式
php_mysql驱动
php配置
php:脚本语言解释器
配置文件:/etc/php.ini, /etc/php.d/*.ini
php.ini的核心配置选项文档: http://php.net/manual/zh/ini.core.php
php.ini配置选项列表:http://php.net/manual/zh/ini.list.php
对配置文件的修改生效方法
Modules:重启httpd服务
FastCGI:重启php-fpm服务
/etc/php.ini配置文件格式:
[foo]:Section Header
directive = value
注释符
较新的版本中,已经完全使用;进行注释
#纯粹的注释信息
;用于注释可启用的directive
php常见设置:
max_execution_time= 30 最长执行时间30s memory_limit=128M 生产不够,可调大 display_errors=off 调试使用,不要打开,否则可能暴露重要信息 display_startup_errors=off 建议关闭 post_max_size=8M 最大上传数据大小,生产可能调大,比下面项大 upload_max_filesize =2M 最大上传文件,生产可能要调大 max_file_uploads = 20 同时上传最多文件数 date.timezone =Asia/Shanghai 指定时区 short_open_tag=on 开启短标签,如<? phpinfo();?>
实现LAMP方式
CentOS 7:
Modules:httpd, php, php-mysql, mariadb-server
FastCGI:httpd, php-fpm, php-mysql, mariadb-server
CentOS 6:
Modules:httpd, php, php-mysql, mysql-server
FastCGI:默认不支持
实验一:单机基于php模块方式,实现LAMP
基于php模块方式安装LAMP
CentOS 6:
yum install httpd, php, mysql-server, php-mysql
service httpd start
service mysqld start
CentOS 7:实验环境
第一步安装软件包
yum install httpd php php-mysql mariadb-server
注意:httpd要使用prefork模型,prefork模型是默认模型所以不需要修改。
说明
①安装php包时,默认已经安装到了httpd的目录下。
②php的配置文件是由依赖的包php-common提供。
第二步配置php测试页面
echo "static resources" > /var/www/html/index.html /var/www/html/index.php
<?php
echo date("Y/m/d H:i:s");
$conn = mysql_connect('192.168.206.15','lamp','123456'); ###php连接mysql测试代码
if ($conn)
echo "OK";
else
echo "Failure";
mysql_close();
?>
第三步数据库配置
数据库授权
mysql -uroot -p123456 grant all privileges on test.* to 'lamp'@'localhost' identified by '123456';
grant all privileges on test.* to 'lamp'@'%' identified by '123456';
flush privileges;
第四步验证
常见LAMP应用
PhpMyAdmin
是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库
WordPress
是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可把 WordPress当作一个内容管理系统(CMS)来使用
PHPWind:
2003年发布了PHPWind的前身版本ofstar,并发展成为包含BBS、CMS、博客、SNS等一系列程序的通用型建站软件, 于2008年加入阿里巴巴集团
Crossday Discuz! Board(简称 Discuz!)
是一套通用的社区论坛软件系统。自2001年6月面世以来,是全球成熟度最高、覆盖率最大的论坛软件系统之一。2010年8月23日,与腾讯达成收购协议
ECShop
是一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。2006年6月,ECShop推出第一个版本1.0
实验二布署phpMyadmin
实现思路,将phpMyadmin放到httpd服务的documentroot路径下。
第一步环境搭建
yum -y install httpd mariadb-server php php-mysql systemctl start httpd systemctl start mariadb mysql_secure_installation 下载:https://www.phpmyadmin.net/downloads/ tar xvf phpMyAdmin-4.0.10.20-all-languages.tar.xz
mkdir /var/www/html/phpadmin
cp -r /app/phpMyAdmin-4.0.10.20-all-languages/* /var/www/html/phpadmin/
cd /var/www/html cd phpadmin/ cp config.sample.inc.php config.inc.php yum -y install php-mbstring systemctl reload httpd
注意要安装php-mbstring否则会报错。
第二部界面配置phpMyAdmin
账号密码为第一步执行mysql_secure_installation时设置的root密码
登陆后配置如下