Httpd服务进阶知识-LAMP架构概述

              Httpd服务进阶知识-LAMP架构概述 

                                                作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

一.LAMP架构概述

1>.什么是LAM(M)P架构

  L: 
    linux
  A:
    apache (httpd)
  M:
    mysql, mariadb
  (M):
    memcached
  P:
    php,
perl, python

2>.WEB资源类型

静态资源:
    原始形式与响应内容一致,在客户端浏览器执行
    客户端web相关技术: html,javascript,css,jpg
动态资源: 原始形式通常为程序文件,需要在服务器端执行之后,将执行结果返回给客户端 服务器端web相关技术:php, jsp,python,asp,java

3>.CGI(全称:Common Gateway Interface)

  CGI描述了客户端和服务器程序之间传输的一种标准,可以让一个客户端,从网页浏览器通过http服务器向执行在网络服务器上的程序传输数据。

4>.LAMP工作原理

请求流程:
    Client -- (http协议) --> Httpd/Nginx/Tomcat -- (fastcgi) --> application server (可以是Php,Perl,Python程序文件) -- (mysql) --> mysql

php简介: 
  基于zend编译成opcode(二进制格式的字节码,重复运行,可省略编译环境)
  和Python类似,也是脚本编程语言,Php可以嵌入到html中的嵌入式web程序语言,非常适合快速开发网站。
  由于Php和Python一样,开发效率非常高,因此一些小公司想要快速上手开发网站一般都会选择Php进行网站开发,但是其稳定性相对于Java来比较差,所以一些公司达到一定的规模都会将php的网站推翻使用Java来重写,如京东,淘宝等电商网站基本上都被Java占据天下了。
  再加上近几年python人工智能被一些培训机构,运维人员给各种吹捧,于是python的web开发人员也跑来和Php开发人员抢饭碗了,哎,随着时间的流逝,Php的市场在逐渐的减少(前有Java,后有Python),不过小公司相对还是较多的,因此Php语言的使用者在一些小的网站依旧能活得很好,当然运维人员可能会更喜欢使用Python的Django框架来快速开发web网站了。
  
快速部署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:默认不支持

安装LAMP:
  CentOS 6:
    yum -y install httpd, php, mysql-server, php-mysql
    service httpd start
    service mysqld start
  CentOS 7:
    yum -y install httpd, php, php-mysql, mariadb-server
    systemctl start httpd.service
    systemctl start mariadb.service
  注意:要使用prefork模型


温馨提示:
  我们可以通过fastcgi程序来实现动态资源处理,也可以使用apache的模块来处理动态资源,但后者在生产环境中使用相对较少,因为在访问量较高时,fastcgi程序是可以单独找一台服务器部署,从而降低httpd服务器的压力,而使用模块方式加载的话就只能依附于httpd服务了,便不可拆分部署。
  因此,从理论上来说,直接使用apache模块来处理动态资源在生产环境使用的场景相对较少,因为扩展性较差。

 

 

二.PHP配置

1>.PHP简介

  PHP是通用服务器端脚本编程语言,主要用于web开发实现动态web页面,也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。同时,php还提供了一个命令行接口,因此,其也可以在大多数系统上作为一个独立的shell来使用

  Rasmus Lerdorf于1994年开始开发PHP,最初是一组被Rasmus Lerdorf称作“Personal Home Page Tool” 的Perl脚本, 可以用于显示作者的简历并记录用户对其网站的访问。后来,Rasmus Lerdorf使用C语言将这些Perl脚本重写为CGI程序,还为其增加了运行Web forms的能力以及与数据库交互的特性,并将其重命名为“Personal Home Page/Forms Interpreter”或“PHP/FI”。此时,PHP/FI已经可以用于开发简单的动态web程序了,这即PHP1.0。

  1995年6月,Rasmus Lerdorf把它的PHP发布于comp.infosystems.www.authoring.cgi Usenet讨论组,从此PHP开始走进人们的视野。

  1997年,其2.0版本发布。

  1997年,两名以色列程序员Zeev Suraski和Andi Gutmans重写的PHP的分析器(parser)成为PHP发展到3.0的基础,而且从此将PHP重命名为PHP: Hypertext Preprocessor。

  此后,这两名程序员开始重写整个PHP核心,并于1999年发布了Zend Engine 1.0,这也意味着PHP 4.0的诞生。

  2004年7月,Zend Engine 2.0发布,由此也将PHP带入了PHP 5时代。PHP5包含了许多重要的新特性,如增强的面向对象编程的支持、支持PDO(PHP Data Objects)扩展机制以及一系列对PHP性能的改进。

  PHP官网:
    http://www.php.net/

2>.PHP Zend Engine

  Zend Engine是开源的、PHP脚本语言的解释器,它最早是由以色列理工学院(Technion)的学生Andi Gutmans和Zeev Suraski所开发,Zend也正是此二人名字的合称。后来两人联合创立了Zend Technologies公司

  Zend Engine 1.0于1999年随PHP 4发布,由C语言开发且经过高度优化,并能够做为PHP的后端模块使用。Zend Engine为PHP提供了内存和资源管理的功能以及其它的一些标准服务,其高性能、可靠性和可扩展性在促进PHP成为一种流行的语言方面发挥了重要作用

  Zend Engine的出现将PHP代码的处理过程分成了两个阶段:
    首先是分析PHP代码并将其转换为称作Zend opcode的二进制格式opcode(类似Java的字节码),并将其存储于内存中;
    第二阶段是使用Zend Engine去执行这些转换后的Opcode

3>.PHP的Opcode

Opcode是一种PHP脚本编译后的中间语言,类似于Java的ByteCode,或者.NET的MSL。PHP执行PHP脚本代码一般会经过如下4个步骤(确切的来说,应该是PHP的语言引擎Zend)
  (1)Scanning 词法分析,将PHP代码转换为语言片段(Tokens)
  (2)Parsing 语义分析,将Tokens转换成简单而有意义的表达式
  (3)Compilation 将表达式编译成Opcode
  (4)Execution 顺次执行Opcode,每次一条,从而实现PHP脚本的功能

综上所述,我们可以概要PHP执行过程为:
  扫描-->分析-->编译-->执行

4>.php配置

  配置文件:
    /etc/php.ini
    /etc/php.d/*.ini   配置文件在php解释器启动时被读取   对配置文件的修改生效方法     Modules:
      重启httpd服务     FastCGI:
      重启php
-fpm服务   /etc/php.ini配置文件格式:     [foo]:Section Header     directive = value     注释符:较新的版本中,已经完全使用;进行注释     #:纯粹的注释信息     ;:用于注释可启用的directive   /etc/php.ini配置文件常用参数:     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();?>   php.ini的核心配置选项文档:     http://php.net/manual/zh/ini.core.php
  php.ini配置选项列表:     http:
//php.net/manual/zh/ini.list.php

  php语言格式     
<?php       ...php code...     ?>

5>.php的加速器

php的加速器:
  基于PHP的特殊扩展机制如opcode缓存扩展也可以将opcode缓存于php的共享内存中,从而可以让同一段代码的后续重复执行时跳过编译阶段以提高性能。这些加速器并非真正提高了opcode的运行速度,而仅是通过分析opcode后并将它们重新排列以达到快速执行的目的

常见的php加速器有:
  1、APC (Alternative PHP Cache)
      遵循PHP License的开源框架,PHP opcode缓存加速器,目前的版本不适用于PHP 5.4
      项目地址http://pecl.php.net/package/APC
  
2、eAccelerator       源于Turck MMCache,早期的版本包含了一个PHP encoder和PHP loader,目前encoder已经不在支持。       项目地址 http://eaccelerator.net/
  3、XCache       快速而且稳定的PHP opcode缓存,经过严格测试且被大量用于生产环境。       项目地址:http://xcache.lighttpd.net/,收录EPEL源
  
4、Zend Optimizer和Zend Guard Loader       Zend Optimizer并非一个opcode加速器,它是由Zend Technologies为PHP5.2及以前的版本提供的一个免费、闭源的PHP扩展,其能够运行由Zend Guard生成的加密的PHP代码或模糊代码。 而Zend Guard Loader则是专为PHP5.3提供的类似于Zend Optimizer功能的扩展。       项目地址http://www.zend.com/en/products/guard/runtime-decoders
  
5、NuSphere PhpExpress       NuSphere的一款开源PHP加速器,它支持装载通过NuSphere PHP Encoder编码的PHP程序文件,并能够实现对常规PHP文件的执行加速。       项目地址,http://www.nusphere.com/products/phpexpress.htm

 

三.php代码风格

1>.风格一

<?php
  echo "<h1>Hello world!</h1>"
?>

2>.风格二

<h1>
    <?php echo "Hello world!" ?>
</h1>

3>.php测试代码

[root@node101.yinzhengjie.org.cn ~]# cat /var/www/html/test.php       #编写的网页查看网页的效果如下图所示。
<?php
    echo date("Y/m/d H:i:s");
    phpinfo();
?>
[root@node101.yinzhengjie.org.cn ~]# 

 

四.基于php model连接数据库

1>.安装数据库(注意,为了避免试验的干扰性,请临时禁用selinux,firewalld,iptables相关工具,否则可能授权成功但无法通过php访问web界面的清空,如果遇到了请查看相应的日志信息哟~)

[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# yum -y install mariadb-server
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.jdcloud.com
 * extras: mirror.bit.edu.cn
 * updates: mirrors.huaweicloud.com
Resolving Dependencies
--> Running transaction check
---> Package mariadb-server.x86_64 1:5.5.64-1.el7 will be installed
--> Processing Dependency: perl-DBI for package: 1:mariadb-server-5.5.64-1.el7.x86_64
--> Processing Dependency: perl-DBD-MySQL for package: 1:mariadb-server-5.5.64-1.el7.x86_64
--> Processing Dependency: perl(DBI) for package: 1:mariadb-server-5.5.64-1.el7.x86_64
--> Running transaction check
---> Package perl-DBD-MySQL.x86_64 0:4.023-6.el7 will be installed
---> Package perl-DBI.x86_64 0:1.627-4.el7 will be installed
--> Processing Dependency: perl(RPC::PlServer) >= 0.2001 for package: perl-DBI-1.627-4.el7.x86_64
--> Processing Dependency: perl(RPC::PlClient) >= 0.2000 for package: perl-DBI-1.627-4.el7.x86_64
--> Running transaction check
---> Package perl-PlRPC.noarch 0:0.2020-14.el7 will be installed
--> Processing Dependency: perl(Net::Daemon) >= 0.13 for package: perl-PlRPC-0.2020-14.el7.noarch
--> Processing Dependency: perl(Net::Daemon::Test) for package: perl-PlRPC-0.2020-14.el7.noarch
--> Processing Dependency: perl(Net::Daemon::Log) for package: perl-PlRPC-0.2020-14.el7.noarch
--> Running transaction check
---> Package perl-Net-Daemon.noarch 0:0.48-5.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================
 Package                                       Arch                                 Version                                        Repository                          Size
============================================================================================================================================================================
Installing:
 mariadb-server                                x86_64                               1:5.5.64-1.el7                                 base                                11 M
Installing for dependencies:
 perl-DBD-MySQL                                x86_64                               4.023-6.el7                                    base                               140 k
 perl-DBI                                      x86_64                               1.627-4.el7                                    base                               802 k
 perl-Net-Daemon                               noarch                               0.48-5.el7                                     base                                51 k
 perl-PlRPC                                    noarch                               0.2020-14.el7                                  base                                36 k

Transaction Summary
============================================================================================================================================================================
Install  1 Package (+4 Dependent packages)

Total download size: 12 M
Installed size: 61 M
Downloading packages:
(1/5): mariadb-server-5.5.64-1.el7.x86_64.rpm                                                                                                        |  11 MB  00:00:00     
(2/5): perl-DBI-1.627-4.el7.x86_64.rpm                                                                                                               | 802 kB  00:00:00     
(3/5): perl-Net-Daemon-0.48-5.el7.noarch.rpm                                                                                                         |  51 kB  00:00:00     
(4/5): perl-PlRPC-0.2020-14.el7.noarch.rpm                                                                                                           |  36 kB  00:00:00     
(5/5): perl-DBD-MySQL-4.023-6.el7.x86_64.rpm                                                                                                         | 140 kB  00:00:14     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                       841 kB/s |  12 MB  00:00:14     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : perl-Net-Daemon-0.48-5.el7.noarch                                                                                                                        1/5 
  Installing : perl-PlRPC-0.2020-14.el7.noarch                                                                                                                          2/5 
  Installing : perl-DBI-1.627-4.el7.x86_64                                                                                                                              3/5 
  Installing : perl-DBD-MySQL-4.023-6.el7.x86_64                                                                                                                        4/5 
  Installing : 1:mariadb-server-5.5.64-1.el7.x86_64                                                                                                                     5/5 
  Verifying  : perl-DBI-1.627-4.el7.x86_64                                                                                                                              1/5 
  Verifying  : perl-Net-Daemon-0.48-5.el7.noarch                                                                                                                        2/5 
  Verifying  : perl-DBD-MySQL-4.023-6.el7.x86_64                                                                                                                        3/5 
  Verifying  : 1:mariadb-server-5.5.64-1.el7.x86_64                                                                                                                     4/5 
  Verifying  : perl-PlRPC-0.2020-14.el7.noarch                                                                                                                          5/5 

Installed:
  mariadb-server.x86_64 1:5.5.64-1.el7                                                                                                                                      

Dependency Installed:
  perl-DBD-MySQL.x86_64 0:4.023-6.el7         perl-DBI.x86_64 0:1.627-4.el7         perl-Net-Daemon.noarch 0:0.48-5.el7         perl-PlRPC.noarch 0:0.2020-14.el7        

Complete!
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# yum -y install mariadb-server
[root@node101.yinzhengjie.org.cn ~]# systemctl start mariadb
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 
MariaDB [(none)]> GRANT ALL ON *.* TO jason@'172.30.1.%' IDENTIFIED BY 'yinzhengjie';                #为客户端授权
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> 
MariaDB [(none)]> GRANT ALL ON *.* TO jason@'node101.yinzhengjie.org.cn' IDENTIFIED BY 'yinzhengjie';      #为httpd服务器单独授权
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]>
MariaDB [(none)]> SELECT user,host FROM mysql.user WHERE user='jason';
+-------+----------------------------+
| user  | host                       |
+-------+----------------------------+
| jason | 172.30.1.%                 |
| jason | node101.yinzhengjie.org.cn |
+-------+----------------------------+
2 rows in set (0.00 sec)

MariaDB [(none)]> 
MariaDB [(none)]> 
+------------------------------------------------------------------------------------------------------------------------+
| Grants for jason@172.30.1.%                                                                                            |
+------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'jason'@'172.30.1.%' IDENTIFIED BY PASSWORD '*BD0B1F48FDC55BD27555FC2F22FF29A68A25A1D7' |
+------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> 
MariaDB [(none)]> SHOW GRANTS FOR jason@'node101.yinzhengjie.org.cn';
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for jason@node101.yinzhengjie.org.cn                                                                                            |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'jason'@'node101.yinzhengjie.org.cn' IDENTIFIED BY PASSWORD '*BD0B1F48FDC55BD27555FC2F22FF29A68A25A1D7' |
+----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> 
MariaDB [(none)]> 
MariaDB [(none)]> QUIT
Bye
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# mysql -h 172.30.1.101 -ujason -pyinzhengjie
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

MariaDB [(none)]> 
MariaDB [(none)]>  CREATE SCHEMA IF NOT EXISTS yinzhengjie2019 DEFAULT CHARACTER SET = utf8mb4;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> 
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| yinzhengjie2019    |
+--------------------+
5 rows in set (0.00 sec)

MariaDB [(none)]> 
MariaDB [(none)]> QUIT
Bye
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# mysql -h 172.30.1.101 -ujason -pyinzhengjie        #测试服务端是否正常连接

2>.安装php程序和mysql连接的客户端软件包

[root@node101.yinzhengjie.org.cn ~]# yum info php-mysql
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.jdcloud.com
 * extras: mirror.bit.edu.cn
 * updates: mirrors.huaweicloud.com
Available Packages
Name        : php-mysql
Arch        : x86_64
Version     : 5.4.16
Release     : 46.1.el7_7
Size        : 101 k
Repo        : updates/7/x86_64
Summary     : A module for PHP applications that use MySQL databases
URL         : http://www.php.net/
License     : PHP
Description : The php-mysql package contains a dynamic shared object that will add
            : MySQL database support to PHP. MySQL is an object-relational database
            : management system. PHP is an HTML-embeddable scripting language. If
            : you need MySQL support for PHP applications, you will need to install
            : this package and the php package.

[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# yum info php-mysql
[root@node101.yinzhengjie.org.cn ~]# yum -y install php-mysql
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.jdcloud.com
 * extras: mirror.bit.edu.cn
 * updates: mirrors.huaweicloud.com
Resolving Dependencies
--> Running transaction check
---> Package php-mysql.x86_64 0:5.4.16-46.1.el7_7 will be installed
--> Processing Dependency: php-pdo(x86-64) = 5.4.16-46.1.el7_7 for package: php-mysql-5.4.16-46.1.el7_7.x86_64
--> Running transaction check
---> Package php-pdo.x86_64 0:5.4.16-46.1.el7_7 will be installed
--> Processing Dependency: php-common(x86-64) = 5.4.16-46.1.el7_7 for package: php-pdo-5.4.16-46.1.el7_7.x86_64
--> Running transaction check
---> Package php-common.x86_64 0:5.4.16-46.1.el7_7 will be installed
--> Processing Dependency: libzip.so.2()(64bit) for package: php-common-5.4.16-46.1.el7_7.x86_64
--> Running transaction check
---> Package libzip.x86_64 0:0.10.1-8.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================
 Package                                  Arch                                 Version                                          Repository                             Size
============================================================================================================================================================================
Installing:
 php-mysql                                x86_64                               5.4.16-46.1.el7_7                                updates                               101 k
Installing for dependencies:
 libzip                                   x86_64                               0.10.1-8.el7                                     base                                   48 k
 php-common                               x86_64                               5.4.16-46.1.el7_7                                updates                               565 k
 php-pdo                                  x86_64                               5.4.16-46.1.el7_7                                updates                                99 k

Transaction Summary
============================================================================================================================================================================
Install  1 Package (+3 Dependent packages)

Total download size: 814 k
Installed size: 4.3 M
Downloading packages:
(1/4): php-mysql-5.4.16-46.1.el7_7.x86_64.rpm                                                                                                        | 101 kB  00:00:00     
(2/4): php-common-5.4.16-46.1.el7_7.x86_64.rpm                                                                                                       | 565 kB  00:00:01     
(3/4): libzip-0.10.1-8.el7.x86_64.rpm                                                                                                                |  48 kB  00:00:02     
php-pdo-5.4.16-46.1.el7_7.x86_ FAILED                                          
http://mirrors.ustc.edu.cn/centos/7.7.1908/updates/x86_64/Packages/php-pdo-5.4.16-46.1.el7_7.x86_64.rpm: [Errno 12] Timeout on http://mirrors.ustc.edu.cn/centos/7.7.1908/up
dates/x86_64/Packages/php-pdo-5.4.16-46.1.el7_7.x86_64.rpm: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')Trying other mirror.
(4/4): php-pdo-5.4.16-46.1.el7_7.x86_64.rpm                                                                                                          |  99 kB  00:00:00     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                        27 kB/s | 814 kB  00:00:30     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libzip-0.10.1-8.el7.x86_64                                                                                                                               1/4 
  Installing : php-common-5.4.16-46.1.el7_7.x86_64                                                                                                                      2/4 
  Installing : php-pdo-5.4.16-46.1.el7_7.x86_64                                                                                                                         3/4 
  Installing : php-mysql-5.4.16-46.1.el7_7.x86_64                                                                                                                       4/4 
  Verifying  : php-common-5.4.16-46.1.el7_7.x86_64                                                                                                                      1/4 
  Verifying  : libzip-0.10.1-8.el7.x86_64                                                                                                                               2/4 
  Verifying  : php-mysql-5.4.16-46.1.el7_7.x86_64                                                                                                                       3/4 
  Verifying  : php-pdo-5.4.16-46.1.el7_7.x86_64                                                                                                                         4/4 

Installed:
  php-mysql.x86_64 0:5.4.16-46.1.el7_7                                                                                                                                      

Dependency Installed:
  libzip.x86_64 0:0.10.1-8.el7                        php-common.x86_64 0:5.4.16-46.1.el7_7                        php-pdo.x86_64 0:5.4.16-46.1.el7_7                       

Complete!
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# yum -y install php-mysql
[root@node101.yinzhengjie.org.cn ~]# rpm -ql php-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
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# cat /etc/php.d/mysql.ini
; Enable mysql extension module
extension=mysql.so
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# cat /etc/php.d/mysqli.ini
; Enable mysqli extension module
extension=mysqli.so
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# cat /etc/php.d/pdo_mysql.ini 
; Enable pdo_mysql extension module
extension=pdo_mysql.so
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# rpm -ql php-mysql

3>.安装httpd和php程序

[root@node101.yinzhengjie.org.cn ~]# yum -y install httpd
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.jdcloud.com
 * extras: mirror.bit.edu.cn
 * updates: mirrors.huaweicloud.com
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-90.el7.centos will be installed
--> Processing Dependency: httpd-tools = 2.4.6-90.el7.centos for package: httpd-2.4.6-90.el7.centos.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-90.el7.centos.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-90.el7.centos.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-5.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-90.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================
 Package                                   Arch                                 Version                                            Repository                          Size
============================================================================================================================================================================
Installing:
 httpd                                     x86_64                               2.4.6-90.el7.centos                                base                               2.7 M
Installing for dependencies:
 apr                                       x86_64                               1.4.8-5.el7                                        base                               103 k
 apr-util                                  x86_64                               1.5.2-6.el7                                        base                                92 k
 httpd-tools                               x86_64                               2.4.6-90.el7.centos                                base                                91 k

Transaction Summary
============================================================================================================================================================================
Install  1 Package (+3 Dependent packages)

Total download size: 3.0 M
Installed size: 9.9 M
Downloading packages:
(1/4): apr-util-1.5.2-6.el7.x86_64.rpm                                                                                                               |  92 kB  00:00:00     
(2/4): httpd-2.4.6-90.el7.centos.x86_64.rpm                                                                                                          | 2.7 MB  00:00:00     
(3/4): httpd-tools-2.4.6-90.el7.centos.x86_64.rpm                                                                                                    |  91 kB  00:00:00     
(4/4): apr-1.4.8-5.el7.x86_64.rpm                                                                                                                    | 103 kB  00:00:04     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                       612 kB/s | 3.0 MB  00:00:05     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : apr-1.4.8-5.el7.x86_64                                                                                                                                   1/4 
  Installing : apr-util-1.5.2-6.el7.x86_64                                                                                                                              2/4 
  Installing : httpd-tools-2.4.6-90.el7.centos.x86_64                                                                                                                   3/4 
  Installing : httpd-2.4.6-90.el7.centos.x86_64                                                                                                                         4/4 
  Verifying  : apr-1.4.8-5.el7.x86_64                                                                                                                                   1/4 
  Verifying  : httpd-tools-2.4.6-90.el7.centos.x86_64                                                                                                                   2/4 
  Verifying  : apr-util-1.5.2-6.el7.x86_64                                                                                                                              3/4 
  Verifying  : httpd-2.4.6-90.el7.centos.x86_64                                                                                                                         4/4 

Installed:
  httpd.x86_64 0:2.4.6-90.el7.centos                                                                                                                                        

Dependency Installed:
  apr.x86_64 0:1.4.8-5.el7                          apr-util.x86_64 0:1.5.2-6.el7                          httpd-tools.x86_64 0:2.4.6-90.el7.centos                         

Complete!
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# yum -y install httpd
[root@node101.yinzhengjie.org.cn ~]# yum -y install php
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.jdcloud.com
 * extras: mirror.bit.edu.cn
 * updates: mirrors.huaweicloud.com
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.4.16-46.1.el7_7 will be installed
--> Processing Dependency: php-cli(x86-64) = 5.4.16-46.1.el7_7 for package: php-5.4.16-46.1.el7_7.x86_64
--> Running transaction check
---> Package php-cli.x86_64 0:5.4.16-46.1.el7_7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================
 Package                                Arch                                  Version                                          Repository                              Size
============================================================================================================================================================================
Installing:
 php                                    x86_64                                5.4.16-46.1.el7_7                                updates                                1.4 M
Installing for dependencies:
 php-cli                                x86_64                                5.4.16-46.1.el7_7                                updates                                2.7 M

Transaction Summary
============================================================================================================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 4.1 M
Installed size: 13 M
Downloading packages:
(1/2): php-cli-5.4.16-46.1.el7_7.x86_64.rpm                                                                                                          | 2.7 MB  00:00:00     
(2/2): php-5.4.16-46.1.el7_7.x86_64.rpm                                                                                                              | 1.4 MB  00:00:00     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                        10 MB/s | 4.1 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : php-cli-5.4.16-46.1.el7_7.x86_64                                                                                                                         1/2 
  Installing : php-5.4.16-46.1.el7_7.x86_64                                                                                                                             2/2 
  Verifying  : php-cli-5.4.16-46.1.el7_7.x86_64                                                                                                                         1/2 
  Verifying  : php-5.4.16-46.1.el7_7.x86_64                                                                                                                             2/2 

Installed:
  php.x86_64 0:5.4.16-46.1.el7_7                                                                                                                                            

Dependency Installed:
  php-cli.x86_64 0:5.4.16-46.1.el7_7                                                                                                                                        

Complete!
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# yum -y install php
[root@node101.yinzhengjie.org.cn ~]# systemctl start httpd
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-12-12 17:13:16 CST; 27s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 12909 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
    Tasks: 6
   CGroup: /system.slice/httpd.service
           ├─12909 /usr/sbin/httpd -DFOREGROUND
           ├─12911 /usr/sbin/httpd -DFOREGROUND
           ├─12912 /usr/sbin/httpd -DFOREGROUND
           ├─12913 /usr/sbin/httpd -DFOREGROUND
           ├─12914 /usr/sbin/httpd -DFOREGROUND
           └─12915 /usr/sbin/httpd -DFOREGROUND

Dec 12 17:13:15 node101.yinzhengjie.org.cn systemd[1]: Starting The Apache HTTP Server...
Dec 12 17:13:16 node101.yinzhengjie.org.cn systemd[1]: Started The Apache HTTP Server.
[root@node101.yinzhengjie.org.cn ~]# 

4>.使用mysql扩展连接数据库的测试代码(不推荐使用,php 7.x版本已经淘汰该方式)

[root@node101.yinzhengjie.org.cn ~]# cat /var/www/html/mysql.php             #连接成功后如下图所示
<?php
$conn = mysql_connect('172.30.1.101','jason','yinzhengjie');
if ($conn)
    echo "mysql ok";
else
    echo "mysql Failure";
    mysql_close();
?>
[root@node101.yinzhengjie.org.cn ~]# 

5>.使用mysqli扩展连接数据库的测试代码(只能连接MySQL数据库)

[root@node101.yinzhengjie.org.cn ~]# cat /var/www/html/mysqli.php         #连接成功如下图所示。
<?php
$mysqli=new mysqli("172.30.1.101","jason","yinzhengjie");
if(mysqli_connect_errno()){
    echo " MySQLIFailure";
    $mysqli=null;
    exit;
}
    echo "MySQLI OK";
    $mysqli->close();
?>
[root@node101.yinzhengjie.org.cn ~]# 

6>.使用PDO(PHP Data Object)扩展连接数据库方法一(相对比较通用,可以连接各种类型的数据库)

[root@node101.yinzhengjie.org.cn ~]# cat /var/www/html/pdo1.php 
<?php
$dsn='mysql:host=172.30.1.101;dbname=yinzhengjie2019';
$username='jason';
$passwd='yinzhengjie';
$dbh=new PDO($dsn,$username,$passwd);
var_dump($dbh);
?>
[root@node101.yinzhengjie.org.cn ~]# 

6>.使用PDO(PHP Data Object)扩展连接数据库方法二(相对比较通用,可以连接各种类型的数据库)

[root@node101.yinzhengjie.org.cn ~]# cat /var/www/html/pdo2.php
<?php
try {
$user='jason';
$pass='yinzhengjie';
$dbh = new PDO('mysql:host=172.30.1.101;dbname=mysql', $user, $pass);

foreach($dbh->query('SELECT user,host,password from user') as $row) {
    print_r($row);
}

$dbh = null;
} catch (PDOException $e) {
    print "Error!: ". $e->getMessage(). "<br/>";
    die();
}
?>
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# 

 

五.单独使用PHP模块案例

1>.安装httpd和php软件包(由于php模块就是httpd服务运行时动态加载的模块,因此想要使用php模块就必须安装httpd服务)

[root@node101.yinzhengjie.org.cn ~]# yum info php
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
Installed Packages
Name        : php
Arch        : x86_64
Version     : 5.4.16
Release     : 46.1.el7_7
Size        : 4.4 M
Repo        : installed
From repo   : updates
Summary     : PHP scripting language for creating dynamic web sites
URL         : http://www.php.net/
License     : PHP and Zend and BSD
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
            : easy for developers to write dynamically generated web pages. PHP also
            : offers built-in database integration for several commercial and
            : non-commercial database management systems, so writing a
            : database-enabled webpage with PHP is fairly simple. The most common
            : use of PHP coding is probably as a replacement for CGI scripts.
            : 
            : The php package contains the module (often referred to as mod_php)
            : which adds support for the PHP language to Apache HTTP Server.

[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# yum info php        #从描述信息就可以看出来该软件包是运行在httpd server之上的
[root@node101.yizhengjie.org.cn ~]# yum -y install httpd
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirror.jdcloud.com
 * extras: mirror.jdcloud.com
 * updates: mirrors.aliyun.com
base                                                                                                                  | 3.6 kB  00:00:00     
extras                                                                                                                | 2.9 kB  00:00:00     
updates                                                                                                               | 2.9 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                                                         | 165 kB  00:00:00     
(2/4): extras/7/x86_64/primary_db                                                                                     | 153 kB  00:00:00     
(3/4): base/7/x86_64/primary_db                                                                                       | 6.0 MB  00:00:03     
(4/4): updates/7/x86_64/primary_db                                                                                    | 5.8 MB  00:00:06     
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-90.el7.centos will be installed
--> Processing Dependency: httpd-tools = 2.4.6-90.el7.centos for package: httpd-2.4.6-90.el7.centos.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-90.el7.centos.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-90.el7.centos.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-5.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-90.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================
 Package                           Arch                         Version                                     Repository                  Size
=============================================================================================================================================
Installing:
 httpd                             x86_64                       2.4.6-90.el7.centos                         base                       2.7 M
Installing for dependencies:
 apr                               x86_64                       1.4.8-5.el7                                 base                       103 k
 apr-util                          x86_64                       1.5.2-6.el7                                 base                        92 k
 httpd-tools                       x86_64                       2.4.6-90.el7.centos                         base                        91 k

Transaction Summary
=============================================================================================================================================
Install  1 Package (+3 Dependent packages)

Total download size: 3.0 M
Installed size: 9.9 M
Downloading packages:
(1/4): httpd-tools-2.4.6-90.el7.centos.x86_64.rpm                                                                     |  91 kB  00:00:00     
(2/4): apr-1.4.8-5.el7.x86_64.rpm                                                                                     | 103 kB  00:00:00     
(3/4): apr-util-1.5.2-6.el7.x86_64.rpm                                                                                |  92 kB  00:00:00     
httpd-2.4.6-90.el7.centos.x86_ FAILED                                                                      ]  1.6 B/s | 668 kB 434:12:11 ETA 
http://mirrors.nju.edu.cn/centos/7.7.1908/os/x86_64/Packages/httpd-2.4.6-90.el7.centos.x86_64.rpm: [Errno 12] Timeout on http://mirrors.nju.e
du.cn/centos/7.7.1908/os/x86_64/Packages/httpd-2.4.6-90.el7.centos.x86_64.rpm: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')Trying other mirror.
(4/4): httpd-2.4.6-90.el7.centos.x86_64.rpm                                                                           | 2.7 MB  00:00:01     
---------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                         66 kB/s | 3.0 MB  00:00:46     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : apr-1.4.8-5.el7.x86_64                                                                                                    1/4 
  Installing : apr-util-1.5.2-6.el7.x86_64                                                                                               2/4 
  Installing : httpd-tools-2.4.6-90.el7.centos.x86_64                                                                                    3/4 
  Installing : httpd-2.4.6-90.el7.centos.x86_64                                                                                          4/4 
  Verifying  : apr-1.4.8-5.el7.x86_64                                                                                                    1/4 
  Verifying  : httpd-tools-2.4.6-90.el7.centos.x86_64                                                                                    2/4 
  Verifying  : apr-util-1.5.2-6.el7.x86_64                                                                                               3/4 
  Verifying  : httpd-2.4.6-90.el7.centos.x86_64                                                                                          4/4 

Installed:
  httpd.x86_64 0:2.4.6-90.el7.centos                                                                                                         

Dependency Installed:
  apr.x86_64 0:1.4.8-5.el7               apr-util.x86_64 0:1.5.2-6.el7               httpd-tools.x86_64 0:2.4.6-90.el7.centos              

Complete!
[root@node101.yizhengjie.org.cn ~]# 
[root@node101.yizhengjie.org.cn ~]# yum -y install httpd
[root@node101.yinzhengjie.org.cn ~]# yum -y install php
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
base                                                                                                                                                 | 3.6 kB  00:00:00     
extras                                                                                                                                               | 2.9 kB  00:00:00     
updates                                                                                                                                              | 2.9 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.4.16-46.1.el7_7 will be installed
--> Processing Dependency: php-common(x86-64) = 5.4.16-46.1.el7_7 for package: php-5.4.16-46.1.el7_7.x86_64
--> Processing Dependency: php-cli(x86-64) = 5.4.16-46.1.el7_7 for package: php-5.4.16-46.1.el7_7.x86_64
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: php-5.4.16-46.1.el7_7.x86_64
--> Processing Dependency: httpd for package: php-5.4.16-46.1.el7_7.x86_64
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-90.el7.centos will be installed
--> Processing Dependency: httpd-tools = 2.4.6-90.el7.centos for package: httpd-2.4.6-90.el7.centos.x86_64
---> Package php-cli.x86_64 0:5.4.16-46.1.el7_7 will be installed
---> Package php-common.x86_64 0:5.4.16-46.1.el7_7 will be installed
--> Processing Dependency: libzip.so.2()(64bit) for package: php-common-5.4.16-46.1.el7_7.x86_64
--> Running transaction check
---> Package httpd-tools.x86_64 0:2.4.6-90.el7.centos will be installed
---> Package libzip.x86_64 0:0.10.1-8.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================
 Package                                  Arch                                Version                                            Repository                            Size
============================================================================================================================================================================
Installing:
 php                                      x86_64                              5.4.16-46.1.el7_7                                  updates                              1.4 M
Installing for dependencies:
 httpd                                    x86_64                              2.4.6-90.el7.centos                                base                                 2.7 M
 httpd-tools                              x86_64                              2.4.6-90.el7.centos                                base                                  91 k
 libzip                                   x86_64                              0.10.1-8.el7                                       base                                  48 k
 php-cli                                  x86_64                              5.4.16-46.1.el7_7                                  updates                              2.7 M
 php-common                               x86_64                              5.4.16-46.1.el7_7                                  updates                              565 k

Transaction Summary
============================================================================================================================================================================
Install  1 Package (+5 Dependent packages)

Total download size: 7.5 M
Installed size: 27 M
Downloading packages:
(1/6): httpd-tools-2.4.6-90.el7.centos.x86_64.rpm                                                                                                    |  91 kB  00:00:00     
(2/6): php-cli-5.4.16-46.1.el7_7.x86_64.rpm                                                                                                          | 2.7 MB  00:00:00     
(3/6): libzip-0.10.1-8.el7.x86_64.rpm                                                                                                                |  48 kB  00:00:00     
(4/6): php-common-5.4.16-46.1.el7_7.x86_64.rpm                                                                                                       | 565 kB  00:00:00     
(5/6): php-5.4.16-46.1.el7_7.x86_64.rpm                                                                                                              | 1.4 MB  00:00:03     
(6/6): httpd-2.4.6-90.el7.centos.x86_64.rpm                                                                                                          | 2.7 MB  00:00:06     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                       1.1 MB/s | 7.5 MB  00:00:06     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libzip-0.10.1-8.el7.x86_64                                                                                                                               1/6 
  Installing : php-common-5.4.16-46.1.el7_7.x86_64                                                                                                                      2/6 
  Installing : php-cli-5.4.16-46.1.el7_7.x86_64                                                                                                                         3/6 
  Installing : httpd-tools-2.4.6-90.el7.centos.x86_64                                                                                                                   4/6 
  Installing : httpd-2.4.6-90.el7.centos.x86_64                                                                                                                         5/6 
  Installing : php-5.4.16-46.1.el7_7.x86_64                                                                                                                             6/6 
  Verifying  : php-cli-5.4.16-46.1.el7_7.x86_64                                                                                                                         1/6 
  Verifying  : httpd-tools-2.4.6-90.el7.centos.x86_64                                                                                                                   2/6 
  Verifying  : httpd-2.4.6-90.el7.centos.x86_64                                                                                                                         3/6 
  Verifying  : libzip-0.10.1-8.el7.x86_64                                                                                                                               4/6 
  Verifying  : php-5.4.16-46.1.el7_7.x86_64                                                                                                                             5/6 
  Verifying  : php-common-5.4.16-46.1.el7_7.x86_64                                                                                                                      6/6 

Installed:
  php.x86_64 0:5.4.16-46.1.el7_7                                                                                                                                            

Dependency Installed:
  httpd.x86_64 0:2.4.6-90.el7.centos           httpd-tools.x86_64 0:2.4.6-90.el7.centos        libzip.x86_64 0:0.10.1-8.el7        php-cli.x86_64 0:5.4.16-46.1.el7_7       
  php-common.x86_64 0:5.4.16-46.1.el7_7       

Complete!
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# yum -y install php

2>.安装php软件后查看相关配置文件

[root@node101.yinzhengjie.org.cn ~]# rpm -ql php
/etc/httpd/conf.d/php.conf               #httpd的配置文件中多出来一个子配置文件  
/etc/httpd/conf.modules.d/10-php.conf        #自动安装了模块相关的配置,该配置文件中有php相关模块的加载
/usr/lib64/httpd/modules/libphp5.so          #在apache httpd server模块存放目录生成了PHP相关的模块库,libphp5.so支持MPM为prefork,而event和worker的MPM需要libphp5-zts.so支持哟~
/usr/share/httpd/icons/php.gif
/var/lib/php/session
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# cat /etc/httpd/conf.d/php.conf
#
# Cause the PHP interpreter to handle files with a .php extension.
#
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

#
# Allow php to handle Multiviews
#
AddType text/html .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

#
# Uncomment the following lines to allow PHP to pretty-print .phps
# files as PHP source code:
#
#<FilesMatch \.phps$>
#    SetHandler application/x-httpd-php-source
#</FilesMatch>

#
# Apache specific PHP configuration options
# those can be override in each configured vhost
#
php_value session.save_handler "files"
php_value session.save_path    "/var/lib/php/session"
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# cat /etc/httpd/conf.d/php.conf
[root@node101.yinzhengjie.org.cn ~]# cat /etc/httpd/conf.modules.d/10-php.conf
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>

[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# cat /etc/httpd/conf.modules.d/10-php.conf

3>.编写php测试代码

[root@node101.yinzhengjie.org.cn ~]# vim /var/www/html/test.php        #编写php测试代码
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# cat /var/www/html/test.php
<?php
phpinfo();
?>
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# httpd -t
Syntax OK
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# systemctl start httpd          #配置完成后,启动httpd服务
[root@node101.yinzhengjie.org.cn ~]# 
[root@node101.yinzhengjie.org.cn ~]# ss -ntl
State      Recv-Q Send-Q                                         Local Address:Port                                                        Peer Address:Port              
LISTEN     0      128                                                        *:80                                                                     *:*                  
LISTEN     0      128                                                        *:22                                                                     *:*                  
LISTEN     0      128                                                       :::22                                                                    :::*                  
[root@node101.yinzhengjie.org.cn ~]# 

4>.客户端访问httpd服务指定资源

 

六.LAMP架构实战案例

通过上面的学习,我们了解到如何通过php的模块去连接数据库,与此同时也写过一些php测试代码,想必对PHP这个脚本解释性语言有了大致的了解。

但毕竟咱们不是专业的php开发人员,想要使用PHP开发大型的网站项目规矩还够呛啊,值得庆幸的是,有很多开源的php项目,咱们开源拿过来安装一下练练手。

博主推荐阅读基于module(php方式实现):
  PhpMyAdmin案例 
    https://www.cnblogs.com/yinzhengjie/p/12019502.html
  WordPress案例
    https://www.cnblogs.com/yinzhengjie/p/12019875.html   Discuz!论坛案例     https://www.cnblogs.com/yinzhengjie/p/12020030.html
博主推荐阅读基于fastcgi(php-fpm方式实现): 
  https:
//www.cnblogs.com/yinzhengjie/p/12020168.html

 

 

 

posted @ 2019-12-10 05:01  尹正杰  阅读(407)  评论(0编辑  收藏  举报