LAMP架构实现-单机module形式

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密码

登陆后配置如下

原文地址:https://www.cnblogs.com/wxxjianchi/p/13548313.html