2017 10-09 LAMP的应用

一.LAMP介绍 

(1)LAM(M)P:

L: linux 
A: apache (httpd) 
M: mysql, mariadb 
M:memcached 
P: php, perl, python 
WEB资源类型: 
       静态资源:原始形式与响应内容一致 
       动态资源:原始形式通常为程序文件,需要在服务器端执 行之后,将执行结果返回给客户端 
Web相关语言 客户端技术: javascript,html 服务器端技术:php, jsp,python

(2)CGI:Common Gateway Interface

可以让一个客户端,从网页浏览器通过http服务器向执行在 网络服务器上的程序传输数据;
CGI描述了客户端和服务器程 序之间传输的一种标准  
程序=指令+数据 
指令:代码文件 
数据:数据存储系统、文件  
请求流程: Client -- (httpd) --> httpd -- (cgi) --> application server (program file) -- (mysql) --> mysql 
php: 脚本编程语言、嵌入到html中的嵌入式web程序语言 基于zend编译成opcode(二进制格式的字节码,重复运行,可 省略编译环境)

(3)LAMP工作原理

《2017 10-09 LAMP的应用》 image.png

工作流程说明:

  1. 当客户端请求的资源是静态资源时,web服务器会将静态资源直接返回客户端
  2. 当客户端请求的资源是动态资源时,httpd的php会进行相应的动态资源运算,当该过程还需要数据库的运算时,php还要连接数据库获取数据并进行推算,运算的结果会通过web服务器将动态资源转化为静态资源返回客户端

二.PHP简介

(1) PHP是通用服务器端脚本编程语言,主要用于web开发实现动态web页面,也是最 早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。同时,php还提供 了一个命令行接口,因此,其也可以在大多数系统上作为一个独立的shell来使用
(2)PHP Zend Engine——开源的、PHP脚本语言的解释器
作用:为PHP提供了内存和资源管理的功能以及其它的一些标准服务 ,其高性能、可靠性和可扩展性在促进PHP成为一种流行的语 言方面发挥了重要作用
(3)Zend Engine的出现将PHP代码的处理过程分成了两个阶段
首先是分析PHP代码并将其转换为称作Zend opcode的二进制 格式(类似Java的字节码),并将其存储于内存中;
第二阶段 是使用Zend Engine去执行这些转换后的Opcode
(4)PHP的Opcode
Opcode是一种PHP脚本编译后的中间语言,类似于Java的 ByteCode,或者.NET的MSL。PHP执行PHP脚本代码一般会经 过如下4个步骤(确切的来说,应该是PHP的语言引擎Zend)
总结来说就是经过了扫描–>分析–>编译–>执行了这四个过程
(5)php的配置文件
1.配置文件:/etc/php.ini, /etc/php.d/*.ini

《2017 10-09 LAMP的应用》 image.png

对php配置文件修改后的重启服务有两种方法
基于Modules: 重启httpd服务即可
基于FastCGI:重启php-fpm服务
注释符:较新的版本中,已经完全使用;进行注释 #:纯粹的注释信息 ;:用于注释可启用的directive
2.php中常见的设置
max_execution_time= 30 最长执行时间30s 

《2017 10-09 LAMP的应用》 image.png

memory_limit 128M 生产不够,可调大


《2017 10-09 LAMP的应用》 image.png

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();?>

实验:基于php语言脚本的练习
cd /var/www/html中,在该目录下编辑a.php和b.php脚本
vim a.php

  1 <h1> 
  2 <?php echo "hello world!"?>
  3 </h1>
  4 

《2017 10-09 LAMP的应用》 image.png

vim b.php

  1 <h1>
  2 <?php
  3 echo "hello php2!";
  4 phpinfo();
  5 ?>
  6 </h1>

《2017 10-09 LAMP的应用》 image.png

修改b.php

  1 <h1>
  2 <?php
  3 echo "hello php2!";
  4 echo date ("Y/m/d h:i:s");——显示时间
  5 phpinfo();
  6 ?>
  7 </h1>

《2017 10-09 LAMP的应用》 image.png

vim /etc/php.ini

《2017 10-09 LAMP的应用》 image.png

重启服务:systemctl restart httpd

《2017 10-09 LAMP的应用》 image.png

也可以将index.html改为index.php,将index.php设为默认主站点

cd /var/www/html

cp b.php index.php

vim /etc/httpd/conf/httpd.conf

《2017 10-09 LAMP的应用》 image.png

《2017 10-09 LAMP的应用》 image.png

三.LAMP

(1)LAMP 
httpd:接收用户的web请求;静态资源则直接响应;动态资源 为php脚本,对此类资源的请求将交由php来运行 
php:运行php程序 
MariaDB:数据管理系统 
http与php结合的方式
CGI
FastCGI
modules (将php编译成为httpd的模块,默认方式)
MPM:
prefork: libphp5.so
event, worker: libphp5-zts.so

(2)LAMP的安装
CentOS 7: 
Modules:httpd, php, php-mysql, mariadb-server 
FastCGI:httpd, php-fpm, php-mysql, mariadbserver 
systemctl start httpd.service systemctl start mariadb.service
CentOS 6: 
Modules:httpd, php, php-mysql, mysql-server 
FastCGI:默认不支持
service httpd start service mysqld start
注意:要使用prefork模型

(3)Php使用mysql扩展连接数据库

实现过程:以centos7,centos6最小化安装两台主机为实验主机
在centos6(最小化安装)中,通过yum install 安装mysql和mysql-server
开启mysql服务,进行编辑创建新的数据库
mysql> create database testdb;
mysql> grant all on testdb.* to testuser@'192.168.136.%' identified by 'centos';——授权并创建用户和设置密码
在centos7中,安装php-mysql。并vim /var/www/html/b.php
1 <h1>
  2 <?php
  3 $conn = mysql_connect('192.168.136.173','testuser','centos');
  4 if ($conn)
  5 echo "OK";
  6 else echo "Failure";
  7 mysql_close();
  8 echo date ("Y/m/d h:i:s");
  9 phpinfo();
 10 ?>
 11 </h1>

《2017 10-09 LAMP的应用》 image.png

方法二:Php使用mysqli扩展连接数据库的测试代码

<?php
 $mysqli=new mysqli("mysqlserver",“username",“password"); 
if(mysqli_connect_errno()){ 
echo "连接数据库失败!"; 
$mysqli=null; exit; } 
echo "连接数据库成功!"; 
$mysqli->close(); 
?>

《2017 10-09 LAMP的应用》 image.png

四.LAMP的应用

PhpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站 主机上的MySQL的数据库管理工具,让管理者可用Web接口管理 MySQL数据库 
WordPress是一种使用PHP语言开发的博客平台,用户可以在支持 PHP和MySQL数据库的服务器上架设属于自己的网站。也可把 WordPress当作一个内容管理系统(CMS)来使用
1.部署phpMyadmin
在官网上www.phpmyadmin.net下载 phpMyAdmin-4.0.10.20-all-languages.zip
cd /app 执行rz命令
在/var/www/html/进行解压
unzip /app/phpMyAdmin-4.0.10.20-all-languages.zip
创建软链接 ln -s phpMyAdmin-4.0.10.20-all-languages/ pma
进入pma
cp config.sample.inc.php config.inc.php
vim config.inc.php

《2017 10-09 LAMP的应用》 image.png

《2017 10-09 LAMP的应用》 image.png

安装php-mbstring,重启服务

《2017 10-09 LAMP的应用》 image.png

进行登录后可以管理本机的数据库

《2017 10-09 LAMP的应用》 image.png

2.在web端创建数据库

《2017 10-09 LAMP的应用》 image.png

《2017 10-09 LAMP的应用》 image.png

创建新的用户

《2017 10-09 LAMP的应用》 image.png

设置用户用户名和密码,设置成功后点击执行

《2017 10-09 LAMP的应用》 image.png

设置权限,进行授权
选择wpdb数据库,选择全选,点击执行

《2017 10-09 LAMP的应用》 image.png

《2017 10-09 LAMP的应用》 image.png

进行测试实验
《2017 10-09 LAMP的应用》 image.png

3.设置wordpress
官网下载:https://cn.wordpress.org/
cd /app
rz
tar xvf wordpress-4.8.1-zh_CN.tar.gz -C /var/www/html
cd /var/www/html
ln -s wordpress/ blog
cd wordpress/
vim wp-config-sample.php

《2017 10-09 LAMP的应用》 image.png

显示无法写入,可以手动创建文件,并将内容复制进去,或是修改权限来实现

《2017 10-09 LAMP的应用》 image.png

在 /var/www/html中设置

setfacl -R -m u:apache:rwx wordpress/*

setfacl -R -m u:apache:rwx wordpress/

《2017 10-09 LAMP的应用》 image.png

或者 cp wp-config-sample.php wp-config.php

vim wp-config.php

将数据库名称,数据库用户名和连接的主机名,密码进行修改

设置成功

进行安装

设置站点名称和用户名,密码

《2017 10-09 LAMP的应用》 image.png

成功后,修改权限

在web端登陆访问
《2017 10-09 LAMP的应用》 image.png

《2017 10-09 LAMP的应用》 image.png

《2017 10-09 LAMP的应用》 image.png

    原文作者:楠人帮
    原文地址: https://www.jianshu.com/p/490b60b6e246
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞