lamp架构安装之apache2.4+Centos7.6+mariadb(mysql)+php5.4.6+mod_php模式

lamp架构安装之apache2.4+Centos7.6+mariadb(mysql)+php5.4.6+mod_php模式

yum httpd
yum install httpd-tools #工具模块,包括ab命令等调试工具
yum install mod_ssl #与https协议实现有关
yum php php-mysql
yum mariadb mariadb-server #mariadb-server会关联依赖mariadb-libs包(该包包括数据库的核心库,核心配置等,如my.cnf就是该包安装时候新建的。),也会关联依赖安装和mariadb客户端包,当然也可以直接yum 我们自己安装,如果已经安装就安装了,还有估计十几个依赖包如一些perl包也会一同安装,所以yum解决了依赖性问题,很方便。
systemctl enable httpd #开机启动
systemctl enable php-fpm
systemctl enable mariadb //这里启动的是mariadb服务进程
#确认apache与php的通信方式为mod_php,我们看一下/etc/httpd/conf.d目录下,当执行完yum install php后,会自动出现一个文件/etc/httpd/conf.d/php-fpm.conf

[root@web01 ~]# vim /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"

systemctl start httpd
systemctl start php-fpm
systemctl start mariadb //这里启动的是mariadb服务进程

1 相关linux安装命令分析:

yum install httpd//web服务
yum install php //安装该包的时候,会自动关联安装依赖包php-common(会自动安装yum php-common包,该包是php的核心公共包,包括php的数组扩展,对象扩展,zend解析引擎,/etc/php.ini文件等),php包自己的功能为生成mod_php.so文件,以及相关与php通信的关于载入mod_php.so的相关配置文件,如/etc/httpd/conf.d/php-fpm.conf等。
yum install mariadb –y //安装mysql客户端
yum install mariadb-server //mysql服务在centos7系统中叫做mariadb,安装mysql的服务器端,该包的依赖包有近十个(包括mariadb-libs(核心库包,如/etc/my.cnf文件就是安装该包时候安装的),mariadb,以及一些perl包等),如果发现这些依赖包没有安装,那么会同时安装这些依赖包。

2 apache与php通信分析:

a. apache的mod_php模块,apache将该php解析模块集成到apache中了。
通过load加载该模块,然后配置.php m o d p h p b . a p a c h e p r o x y p h p f p m t c p s o c k e t u n i x s o c k e t . p h p 扩展名处理模块为该mod_php模块就可以来了。 b.通过apache的proxy代理模块,该模块与php-fpm进行绑定(可以用tcp socket绑定或unix socket文件通信)。然后配置.php 扩展名的处理器指向该绑定php-fpm的代理。

3 php与mysql通信分析:

php的mysql配置文件中配置与mysql服务之间的通信方式((可以用tcp socket绑定或unix socket文件通信))。当我们yum install mariadb-server的时候,会自动在php的相关目录下新增相关sock文件。实际通信一般php的函数如mysqli_connect通过unix domain socket或tcp socket通信,具体哪个应该可以在php.ini中可以配置。

[root@localhost php-fpm]# 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@localhost php-fpm]# cat /etc/php.d/mysqli.ini

; Enable mysqli extension module

extension=mysqli.so

[root@localhost php-fpm]# cat /etc/php.d/mysql.ini

; Enable mysql extension module

extension=mysql.so

[root@localhost php-fpm]# cat /etc/php.d/pdo_mysql.ini

; Enable pdo_mysql extension module

extension=pdo_mysql.so

[root@localhost php-fpm]# systemctl restart php-fpm

这样只需要,通过重启httpd(mod_php模式)或重启php-fpm(php-fpm模式)来重新载入php配置文件就可以啦。

4 测试案例info.php

<?php
echo 51;
$num = 9000;
$i = 0;
while($i<$num){
      $i++;
}
echo php_sapi_name();
var_dump(ini_get('post_max_size'));
 phpinfo();
$mysqli = new mysqli("localhost", "root", "", "test");
if ($mysqli->connect_errno) {
    echo "11Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";
echo '==========';
$mysqli = new mysqli("127.0.0.1", "root", "", "test", 3306);
if ($mysqli->connect_errno) {
    echo "22Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";
?>
发布了31 篇原创文章 · 获赞 0 · 访问量 2823

猜你喜欢

转载自blog.csdn.net/yaqiang2017/article/details/104124436