Httpd+PHP+Mariadb

httpd-2.4+php-5.4.16+mariadb-5.5.41之modules模式(prefork)

1、安装所需软件

[[email protected]
~]# yum install httpd php php-mysql mariadb

2、php软件包所生成的文件

[[email protected]
~]# rpm -ql php

/etc/httpd/conf.d/php.conf

/etc/httpd/conf.modules.d/10-php.conf

/usr/lib64/httpd/modules/libphp5.so      #此模块是httpd(prefork模型)所需的php模块,Event和worker模型使用的php模块应该为libphp5-zts.so文件,但此文件需要编译安装生成

3、php.conf文件配置httpd能识别php的资源类型

[[email protected]
~]# cat /etc/httpd/conf.d/php.conf | grep ‘^[^#]‘

<FilesMatch
\.php$>

SetHandler application/x-httpd-php

</FilesMatch>

AddType
text/html .php

DirectoryIndex
index.php

php_value
session.save_handler "files"

php_value
session.save_path   
"/var/lib/php/session"

####10-php.conf配置httpd加载Php所需的模块

[[email protected]
~] cat /etc/httpd/conf.modules.d/10-php.conf 
| grep ‘^[^#]‘

<IfModule
prefork.c>

LoadModule
php5_module modules/libphp5.so   #加载指定的模块

</IfModule>

4、php-mysql

php连接Mysql的工具

启动相关服务

[[email protected]
~]systemctl start httpd.service

[[email protected]
~]systemctl start mariadb

建立测试页面,测试php及mariadb

[[email protected] ~]vim/var/www/html/index.php

[[email protected]
~]# cat/var/www/html/index.php

<?php

$conn = mysql_connect(‘172.16.36.73‘,‘wpuser‘,‘wppass‘);

if ($conn)

echo "oK.";

else

echo "Failure..";

phpinfo();

?>

<?php

phpinfo();

?>

#####

1 phpinfo() 是php内置的一个函数,可以查看php的相关信息

2 mysql_connect是php连接mysql的一个内置函数

打开浏览器输入IP地址如果能正常显示ok,或者能正常显示php的状态信息,
即说明Php模块运行正常

实现httpd(Event)+php(modules)+mariadb+xcache

二、实现httpd(Event)+php(modules)+mariadb+xcache

1、安装httpd

[[email protected]
~]# yum install httpd

修改httpd的工作模型

[[email protected] conf.modules.d]#vim /etc/httpd/conf.modules.d/00-mpm.conf

#
Select the MPM module which should be used by uncommenting exactly

#
one of the following LoadModule lines:

#
prefork MPM: Implements a non-threaded, pre-forking web server

#
See: http://httpd.apache.org/docs/2.4/mod/prefork.html

#LoadModule
mpm_prefork_module modules/mod_mpm_prefork.so

#
worker MPM: Multi-Processing Module implementing a hybrid

#
multi-threaded multi-process web server

#
See: http://httpd.apache.org/docs/2.4/mod/worker.html

#

#LoadModule
mpm_worker_module modules/mod_mpm_worker.so

#
event MPM: A variant of the worker MPM with the goal of consuming

#
threads only for connections with active processing

#
See: http://httpd.apache.org/docs/2.4/mod/event.html

#

LoadModule mpm_event_module
modules/mod_mpm_event.so 开启这行

2、Yum安装mariadb

[[email protected] ~]#yum
install mariadb-server

3、编译安装php

获取php软件包

解压:

[[email protected]
~]# tar xf php-5.4.26.tar.bz2

[[email protected]
~]# cd php-5.4.26/

安装依赖的包

[[email protected]
php-5.4.26]#  yum install libxml2-devel

[[email protected]
php-5.4.26]# yum install bzip2-devel

[[email protected]
php-5.4.26]# yum insall libmcrypt

[[email protected]
php-5.4.26]#yum insall libmcrypt-devel

[[email protected]
php-5.4.26]# yum install libmcrypt-devel

开始配置编译

[[email protected]
php-5.4.26]# ./configure --prefix=/usr/local/php --with-mysql=mysqlnd
--with-pdo-mysql=mysqlnd --with-openssl --with-mysqli=mysqlnd --enable-mbstring
--with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib
--with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/bin/apxs
--with-mcrypt --with-config-file-path=/etc
--with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts

注意事项

--with-apxs2=/usr/bin/apxs : 利用httpd下的apxs工具,将php编译为httpd的模块,
需要在httpd的配置文件中确认是否加载此模块 : LoadModule php5_module        /usr/lib64/httpd/modules/libphp5.so

说明:

1、这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。

2、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php
5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。

#
./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd

开始安装编译:

[[email protected] php-5.4.26]#  make && make
install

4、配置php

[[email protected]  php-5.4.40]# cp php.ini-production
/etc/php.ini

5、配置httpd.conf文件

[[email protected] ~]vim /etchttpd/conf/httpd.conf

ADDType
application/x-httpd-php .php

ADDType
application/x-httpd-phps .phps

DirectoryIndex
index.php index.html

6、重启httpd服务

systemctl
restart httpd

测试php的工作状态

[[email protected] ~]# vim /var/www/html/index.php

<?php

$conn =
mysql_connect(‘127.0.0.1‘,‘wpuser‘,‘wppass‘);

if ($conn)

echo "YES";

else

echo "Failure";

mysql_close();

?>

7、配置使用xcache

获取xcache-3.2.0软件

配置并编译xcache

[[[email protected]  xcache-3.2.0]# mkdir /etc/php.d

[[[email protected]  xcache-3.2.0]# cp xcache.ini /etc/php.d

接下来编辑/etc/php.d/xcache.ini,找到extension开头的行,修改为如下行:

zend_extension
= /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

注意:
如果php.ini文件中有多条extension指令行,要确保此新增的行排在第一位

启用服务器状态

mod_status模块可以让管理员查看服务器的执行状态,它通过一个HTML页面展示了当前服务器的统计数据。这些数据通常包括但不限于:

(1) 处于工作状态的worker进程数;

(2) 空闲状态的worker进程数;

(3) 每个worker的状态,包括此worker已经响应的请求数,及由此worker发送的内容的字节数;

(4)
当前服务器总共发送的字节数;

(5)
服务器自上次启动或重启以来至当前的时长;

(6)
平均每秒钟响应的请求数、平均每秒钟发送的字节数、平均每个请求所请求内容的字节数;

启用状态页面的方法很简单,只需要在主配置文件中添加如下内容即可:

[[email protected] ~]# vim
/etc/httpd/conf/httpd.conf

<Location /server-status>

SetHandler
server-status

Require
all granted

</Location>

需要提醒的是,这里的状态信息不应该被所有人随意访问,因此,应该限制仅允许某些特定地址的客户端查看。比如使用Require ip 172.16.0.0/16来限制仅允许指定网段的主机查看此页面。

httpd(prefork)+php(fpm)+mariadb(三层架构)

三、使用三台服务器,httpd 及php, mariadb都独立运行于一台服务器之上

1、httpd服务器

安装httpd

[[email protected] ~] #yum
install httpd

配置httpd

1 确认proxy的模块有没有被装载

cat
/etc/httpd/conf.modules.d/00-proxy.conf

LoadModule
proxy_module modules/mod_proxy.so

LoadModule
proxy_fcgi_module modules/mod_proxy_fcgi.so

以上的两个模块确认需要被装载

编辑httpd.conf并配置,添加如下:

DirectoryIndex
index.html index.php

proxyrequests
off   #关闭正向代理

proxypassmatch ^/(.*\.php)$ fcgi://172.16.36.71:9000/var/www/html/$1   #将所有php结尾的文件请求通过fcgi转发到指定的服务器中

2、php服务器

安装php(fpm)

####获取php软件包

[[email protected] ~]# tar
xf php-5.4.26.tar.bz2

[[email protected] ~]# cd
php-5.4.26/

[[email protected] php-5.4.26]# yum install libxml2-devel

[[email protected] php-5.4.26]#yum install openssl-devel

[[email protected] php-5.4.26]#yum install bzip2-devel

[[email protected] php-5.4.26]#yum install libmcrypt-devel

[[email protected] php-5.4.26]# ./configure --prefix=/usr/local/php
--with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl
--with-mysqli=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir
--with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets  --with-mcrypt --with-config-file-path=/etc
--with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-fpm

make
-j 4 && make install

配置php服务

[[email protected] php-5.4.26]# cp php.ini-production /etc/php.ini

配置Php-fpm服务

[[email protected] php-5.4.26]# cp sapi/fpm/init.d.php-fpm
/etc/init.d/php-fpm

[[email protected] php-5.4.26]# chmod +x /etc/init.d/php-fpm

[[email protected] php-5.4.26]# chkconfig --add php-fpm

[[email protected] php-5.4.26]# chkconfig php-fpm on

[[email protected] php-5.4.26]# cp php-fpm.conf.default php-fpm.conf

修改php-fpm的运行配置文件

[[email protected] php-5.4.26]# vim /usr/local/php/etc/php-fpm.conf

pm.max_children
= 50

pm.start_servers
= 5

pm.min_spare_servers
= 2

pm.max_spare_servers
= 8

pid
= /usr/local/php5/var/run/php-fpm.pi

接下来就可以启动php-fpm了:

[[email protected] php-5.4.26]# systemctl startphp-fpm

使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):

[[email protected] php-5.4.26]# ps aux | grep php-fpm

默认情况下,fpm监听在127.0.0.1的9000端口,也可以使用如下命令验正其是否已经监听在相应的套接字。

[[email protected] php-5.4.26]# netstat -tnlp | grep php-fpm

tcp        0     
0 172.16.36.71:9000             
0.0.0.0:*                   LISTEN      689/php-fpm

为php提供测试页面

在php服务器上/var/www/html,建立index.php文件,

[[email protected] php-5.4.26]# cat /var/www/html/index.php

<?php

phpinfo();

?>

3、mysql服务器:

安装mariadb

[[email protected] ~]# yum
install mairadb-server

[[email protected] ~]# systemctl start mariadb

建立php连接所需的用户名和密码

[[email protected] ~]# mysql

Welcome
to the MariaDB monitor.  Commands end
with ; or \g.

Your
MariaDB connection id is 2

Server
version: 5.5.44-MariaDB MariaDB Server

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

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

MariaDB
[(none)]> GRANT ALL ON wpdb.* TO ‘wpuser‘@‘172.16.%.%‘ IDENTIFIED BY
‘wppass‘;

Query
OK, 0 rows affected (0.00 sec)

MariaDB
[(none)]> GREATE DATABASE wpdb;

MariaDB
[(none)]> exit

安装部署完成可以自行测试

时间: 2024-10-08 16:38:16

Httpd+PHP+Mariadb的相关文章

httpd, php, mariadb分离式的部署在三台主机上测试性能

CentOS7, amp + xcache,编译安装,php-fpm: a) 分别深度:httpd, php, mariadb分别部署在一个单独的主机上,以及都在同一主机: b) 一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress: c) 为phpMyAdmim提供https服务: 对以上所有部署做压力测试,并对比测试结果,写出测试报告: 环境: 此处用三台主机分别分离提供不同服务: 172.16.1.4------->提供httpd服务 172.16.1.3------

LAMP架构之httpd+(php-fpm)+mariadb

前言: FastCGI是语言无关的.可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能.众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能.伸缩性.Fail-Over特性等等. CentOS 7: httpd-2.4:rpm包默认编译支持了fcgi模块: php-fpm包:专用于将php运行于fpm模式: =============================

LAPM(linux+httpd+php+mariadb)环境搭建

前言 LAMP(linux+apache+mariadb+php)以下都以源码安装方式,环境为3台虚拟机内存各4G.2核cpu,apache通过fastcgi连接php,数据库用mariadb. 搭建环境:Centos6.4 服务器一 IP地址:192.168.146.140 安装软件:apache2.4.12 硬盘:20G 服务器二 IP地址:192.168.146.141 安装软件:PHP5.6 硬盘:20G 服务器三 IP地址:192.168.146.139 安装软件:mariadb-10

三台centos7主机分别部署httpd,php-fpm,mariadb

CentOS 7, amp + xcache, rpm包,php-fpm: a) httpd, php, mariadb分别部署在一个单独的主机上: b) 一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress: c) 为phpMyAdmim提供https服务: 分别三台centos 7主机分别部署 httpd , php-fpm  ,  mariadb 第一台 172.16.100.31 -->httpd 第二台 172.16.100.32 -->php-fpm    分

www服务器假设linux+apache+mariadb+php

这两天被这搭建www服务器折磨惨了,尤其是数据库这一块,只能怪大一的时候认真上数据库的课. 我用到的是CentOS 7系统搭建服务器的,阿里云学生特惠9.9每月买的(这不是在打小广告哦!).参考鸟哥的私房菜服务器架设篇,还有好多网上的内容,遇到问题就google.百度查,还有感谢老师和学姐的解答. 这是第一次比较像教程的日志,由于是新手,写下来供下次查阅,望大神勿喷! 首先介绍下LAMP,linux.php自然不必说.apache是免费开源的,是搭建www服务器的必备,类似的有nginx.win

Owncloud安装配置

1.更改yum源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupwget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repoyum clean allyum makecachesetenforce 0systemctl stop firewalldsystemctl disable

基于HAProxy+Keepalived高可用负载均衡web服务的搭建

一 原理简介 1.HAProxyHAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进当前的架构中, 同时可以保护web服务器不被暴露到网络上.2.KeepalivedKeepalived 是一个基于VRRP协议来实现的LVS服务高

lamp编译安装

================================================================================ 编译安装amp  1.编译前环境准备及相关介绍 ★系统环境:CentOS 6, 7 CentOS 6:apr, apr-util 的版本为1.3.9,不适用于httpd-2.4的编译安装: CentOS 7:apr, apr-util的版本为1.4+, (apr:简言之是为apache各程序包运行时提供的环境,可以当做是httpd的虚拟

CentOS 7配置+xcache, php module

  CentOS7, apm+xcache, php module;        a) 一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress:        b) 为phpMyAdmim提供https服务: selinux处于关闭状态 httpd2.4 mariadb5.5 php5.4   安装:php-mysql phpmariadb-server httpd yum-y install php-mysql php mariadb-server httpd   配置安