9月30日 LAMP简介、PHP、PhpMyAdmin管理数据库和WordPress搭建博客

1、LAMP介绍

LAM(M)P:
L: linux
A: apache (httpd)
M: mysql, mariadb
M:memcached
P: php, perl, python
WEB资源类型:
静态资源:原始形式与响应内容一致
动态资源:原始形式通常为程序文件,需要在服务器端执行之后,将执行结果返回给客户端,这个程序文件通常是一段代码,就像脚本语言一样,需要一个程序去处理这段代码,比如脚本语言需要/bin/bash程序去一行一行的处理才能识别,PHP程序代码需要PHP程序来处理,把这段代码转化为静态资源。
Web相关语言
客户端技术:javascript,html
服务器端技术:php, jsp,python

2、CGI

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

3、LAMP工作原理

Paste_Image.png

4、PHP简介

官网:http://www.php.net/
PHP是通用服务器端脚本编程语言,主要用于web开发实现动态web页面,也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。同时,php还提供了一个命令行接口,因此,其也可以在大多数系统上作为一个独立的shell来使用
PHP Zend Engine
Zend Engine是开源的、PHP脚本语言的解释,Zend Engine的出现将PHP代码的处理过程分成了两个阶段:首先是分析PHP代码并将其转换为称作Zend opcode的二进制格式(类似Java的字节码),并将其存储于内存中;第二阶段是使用Zend Engine去执行这些转换后的Opcode。

5、PHP配置和设置

  • 配置
    php:脚本语言解释器
配置文件:/etc/php.ini, /etc/php.d/*.ini
配置文件在php解释器启动时被读取
[root@centos6 html]#rpm -qf /etc/php.ini  ---php的配置文件来源于下面的rpm包,在yum安装php包时会因为依赖关系自动安装这个包
php-common-5.3.3-49.el6.x86_64

对配置文件的修改生效方法

Modules:重启httpd服务    
FastCGI:重启php-fpm服务
PHP的两种工作模式,一种是做为httpd服务的一个小的模块和httpd服务一起启动,另外一种工作模式就是做为一个独立的服务,也会监听端口

/etc/php.ini配置文件格式:

[foo]:Section Header
directive = value
注释符:较新的版本中,已经完全使用;进行注释
#:纯粹的注释信息
;:用于注释可启用的directive,如果把;去掉可以启动后面的内容
  • 设置
max_execution_time= 30 最长执行时间30s,php程序在后台运行的最长时间,避免PHP程序长时间不用占用cpu
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 开启短标签,是一种新的php编程格式如<? phpinfo();?>

6、PHP代码

php程序来源于php包

yum install php ---这种方法安装php程序,是把PHP程序做为httpd程序的一个小模块,也就是PHP程序的第一种工作模式
[root@centos6 html]#rpm -ql php
/etc/httpd/conf.d/php.conf    ---成为httpd服务的一个配置文件,这个配置文件中规定了加载这个模块,及php程序的主目录网页文件的格式index.php,也就是在httpd服务的主目录中如果创建了一个这样的文件,访问网站时会自动访问这个页面
/usr/lib64/httpd/modules/libphp5.so   ---php程序做为httpd程序的一个小模块
/var/lib/php/session
/var/www/icons/php.gif

php代码的格式
格式1

[root@centos6 html]#vim a.php ---此种格式为html标签里面嵌入PHP程序
<h1>
<?php echo "Hello world!" ?>
</h1>
[root@centos6 html]#service httpd restart 
测试:http://192.168.74.128/a.php

格式2

[root@centos6 html]#vim b.php  ---此种格式为php代码中嵌入html语言
<?php
echo "<h1>Hello world!php2</h1>"
?>
测试:http://192.168.74.128/b.php

两种格式中第一种比较常用,先是前段的html开发人员写好html标签后,后端的PHP开发人员再将php代码写到预留的php语句块中
php代码测试,可以显示时间和php的版本信息

[root@centos6 html]#vim c.php
<?php
echo date("Y/m/d h:i:s");
phpinfo();
?>
vim /etc/php.ini  ---修改php的配置文件中的时区
date.timezone = Asia/Shanghai
service httpd restart
http://192.168.74.128/c.php

修改php默认主站点的网页文件

方法一
vim /etc/httpd/conf/httpd.conf   ---要在httpd的配置文件里修改
DirectoryIndex index.php index.html index.html.var
[root@centos6 html]#ls
a.php  b.jpg  b.php  index.html  index.php
http://192.168.74.128/  
方法二
[root@centos6 html]#rm -f index.html 
[root@centos6 html]#vim /etc/httpd/conf.d/php.conf    ----或者修改php的配置文件
DirectoryIndex index.php   --默认这一行是有的
http://192.168.74.128/    ---这样访问时就会寻找默认的主网页文件

7、php连接到mysql数据库

  • 使用mysql扩展连接数据库
1、yum install php-mysql   ---安装php-mysql包
[root@centos6 html]#rpm -ql php-mysql   ---我们发现mysql做为php的一个模块连接到数据库,有三种模块方式mysql、mysqli、pdo_mysql
/etc/php.d/mysql.ini
/etc/php.d/mysqli.ini
/etc/php.d/pdo_mysql.ini
/usr/lib64/php/modules/mysql.so
/usr/lib64/php/modules/mysqli.so
/usr/lib64/php/modules/pdo_mysql.so
2、在另外一台主机上(192.168.74.132)创建一个mysql数据库,创建一个zhangdb的数据库和tom@192.168.74.%的一个用户
连接数据库的测试代码
vim /var/www/html/index.php 
<h1>    ----html标签,表示PHP代码镶嵌在html里面。html是一种文本格式,这种格式会使客户端看到的字体变大并且加粗,变的美观,不加这种格式字体就很小
<?php
$conn = mysql_connect('192.168.74.132','tom','centos');
if ($conn)
echo "OK";
else
echo "Failure";
mysql_close();
?>
</h1>
测试:http://192.168.74.128/
  • php使用mysqli扩展连接数据库的测试代码
前两步同上
<h1> 
vim /var/www/html/index.php 
<?php
$mysqli=new mysqli("192.168.74.132","tom","centos");
if(mysqli_connect_errno()){
echo "连接数据库失败!";
$mysqli=null;
exit;
}
echo "连接数据库成功!";
$mysqli->close();
?>
</h1>

8、常见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

9、布署phpMyadmin来管理mysql数据库

1、安装各种,并启动服务
yum -y install httpd mysql-server php php-mysql
service httpd start 
service mysqld start 
mysql_secure_installation   ---初始化mysql,设置用户和密码等
2、下载phpmyadmin源码并解压缩
下载:https://www.phpmyadmin.net/downloads/   ---注意下载的版本,rpm包安装的php为5.3版本,因此下载phpmyadmin时要支持php5.3这个版本才可以,这里下载的是phpMyAdmin-4.0.10.20-all-languages.zip 
cd /var/www/html/   ---注意一定要在httpd服务的主目录下解压缩
unzip /app/phpMyAdmin-4.0.10.20-all-languages.zip 
3、创建软连接
ln -s phpMyAdmin-4.0.10.20-all-languages/ pma  ---创建一个软连接,便于客户端访问时输入太长的目录名
4、创建phpmyadmin的配置文件
cd  /var/www/html/pma
cp config.sample.inc.php config.inc.php ---把一个例子复制一下
vim config.inc.php   ---修改一下这个例子制作成配置文件
$cfg['blowfish_secret'] = 'a8b7c6ddddsaadasfdfsfsf'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */  ---注意单用号里面要填充,默认是填充的,如果没有要填充,填充什么都可以
5、测试
yum -y install php-mbstring  ---要安装这个包才能访问网站,否则会报错
service httpd reload 
http://192.168.74.128/pma,然后输入初始化mysql过程中设置的用户名和密码就可以登录到网站,用web页面点鼠标的方式来管理mysql数据库了,我们可以创建一个wpdb数据库和一个wpadmin@'192.168.74.%'的用户并授权,然后在字符界面登录去验证一下网页方式管理mysql数据库是否可行。
[root@centos6 pma]#mysql -uwpadmin -p'123456' -h192.168.74.128  ---我们发现可以登录上,说明用web方式管理mysql数据库是成功的

10、布署wordpress搭建属于自己的博客

1、环境准备
准备两台主机a和b
在a上操作
yum install httpd php php-mysql
systemctl start httpd
在b上操作
yum install mariadb
systemctl start mariadb
2、在b上创建数据库及用户
mysql> create database wpdb;
mysql> grant all on wpdb.* to wpadmin@'192.168.74.%' indentified by '123456'
3、下载wordpress源
https://cn.wordpress.org/
在a上操作
cd /app
tar xvf wordpress-4.8.1-zh_CN.tar.gz -C /var/www/html/
cd /var/www/html/
ln -s wordpress/ blog
setfacl -R -m u:apache:rwx /var/www/html/wordpress/  ----打开下面的网站进行安装的时候会在/var/www/html/wordpress/  目录下创建一个新的文件也就是wordpress的配置文件,所以要设置一个acl权限,当安装完毕后记得把权限删除
setfacl -R -b /var/www/html/wordpress/   ---清空acl权限
以上两步也可以不设置权限,直接编辑以下这个文件
cd /var/www/html/blog/
cp wp-config-sample.php wp-config.php 
vim wp-config.php
define('DB_NAME', 'wpdb');
/** MySQL数据库用户名 */
define('DB_USER', 'wpadmin');
/** MySQL数据库密码 */
define('DB_PASSWORD', '123456');
/** MySQL主机 */
define('DB_HOST', '192.168.74.128');
4、打开http://192.168.74.132/blog/进行页面安装,安装完毕后登陆就可以发现自己创建的博客了
5、在b上的操作
mysql -uwpadmin -p'123456' -h192.168.74.128
mysql> use wpdb;
mysql> show tables;  ---发现在数据库里在搭建博客的过程中已经自动创建了很多表,以后我们写的文章也会放到这里
+-----------------------+
| Tables_in_wpdb        |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+

总结:httpd服务,当用户访问的是静态页面的时候,httpd服务到磁盘上去访问资源,然后将数据直接返回给客户端,当访问的是动态页面,比如以.php结尾的文件时,因为这个文件里面都是php的代码,所以httpd程序把这个文件发给php程序来处理,将这些源代码转化成静态文件传给用户。并且php程序需要连接数据库。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容

  • 1.LAMP介绍  LAM(M)P:L: linuxA: apache (httpd)M: mysql, mar...
    尛尛大尹阅读 1,019评论 0 1
  • 架构师必须知道的26项PHP安全实践 PHP是一种开源服务器端脚本语言,应用很广泛。Apache web服务器提供...
    meng_philip123阅读 5,978评论 1 161
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,643评论 3 64
  • 1 概述php: 脚本编程语言、嵌入到html中的嵌入式web程序语言,基于zend编译成opcode(二进制格式...
    ghbsunny阅读 223评论 0 0
  • 飞机载着儿子去了远方,我也到了重新安排自己生活的时候了。 把书拿来放桌上,这些都是每天要阅读和学习的,书籍俨然成为...
    jasmine南京阅读 487评论 1 1