apache+php+mysql分离搭建LAMP


apache和mysql的安装不在描述

分层时

1、apache配置文件修改

1)、启用httpd的相关模块

在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_f

2)、如果不在虚主机中添加则直接在主配置文件中添加

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/DocumentRoot路径/$1

3、编辑apache配置文件httpd.conf,让apache能识别php格式的页面,并支持php格式的主页

#vim /etc/httpd/httpd.conf

1、添加如下二行

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

2、定位至DirectoryIndex index.html

修改为:

DirectoryIndex index.php index.html

2、mysql编译安装没有变化注意编译时会大量消耗资源,请酌情添加swap交换内存来应对

mysql需要创建一个远程连接用户

mysql> GRANT ALL PRIVILEGES on wpdb.* TO 'wpuser'@'%' IDENTIFIED BY 'wppass';

mysql> create database wpdb

mysql> flush privileges

3、php安装

二、编译安装php-5.6.2

1)、解决依赖关系:

配置好yum源后执行

Desktop Platform Development

如果想让编译的php支持mcrypt扩展,还需要下载安装

libmcrypt

libmcrypt-devel

mhash

mhash-devel

建议配置epel源直接yum安装libmcrypt-devel

2)、编译安装php-5.6.2

tar xf php-5.6.2

cd php-5.6.2

./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-openssl --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc/php/ --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts --with-gd


说明:

因为这里PHP是以fastcgi模式运行不需要将PHP编译成httpd的一个模块所以要取消--with-apxs2这个选项,如果使用PHP5.3以上版本,也就是mysql与php不再同一主机上时,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端绑定形成依赖),但从PHP5.4开始它就是默认设置了。

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

上面的结果是,mysql、mysqli、pdo这三个操作mysql的扩展,都配置使用mysqlnd库来操作mysql

--with-mysql项指定使用mysqlnd客户端库了,根本不需要依赖于mysql的安装路径了。因为是使用php源码中自己的的库。

这个库是一个c语言编写的,以扩展形式加入php引擎。

这个库就在php的源码包中,自己编译安装,就生成在自己在php中,根本不需要依赖于神马mysql提供的客户端了

所以顾名思义,叫做Native driver,本地驱动(操作mysql的驱动)。

make && make install

为php提供配置文件:

cp php.ini-production /etc/php.ini


3)、配置php-fpm

为php-fpm提供Sysv init脚本,并将其添加至服务列表

#cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

#chmod +x /etc/rc.d/init.d/php-fpm

#chkconfig --add php-fpm

#chkconfig --list php-fpm

为php-fpm提供配置文件

#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

编辑php-fpm的配置文件:

vim /usr/local/php/etc/php-fpm.conf

配置fpm的相关配置选项为你所需要的值,并启用pid文件:

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

pm = dynamic

pm.max_children = 50 同一时间内最大的线程数

pm.start_servers = 5 启动时创建的线程数

pm.min_spare_servers = 3 最小空闲线程数 空闲线程小于则创建线程

pm.max_spare_servers = 5 最大空闲线程数 空闲线程大于最大则杀死空闲线程

listen = 0.0.0.0:9000 修改监听本机的所有网卡的9000端口


接下来就可以启动php-fpm

service php-fpm start

使用如下命令验证

#ps aux | grep php-fpm

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

ss -tnul | grep php-fpm

tcp LISTEN 0 128 *:9000 *:*

4)在wordpress上创建DocumentRoot路径的绝对路径

4、安装wordpress

将wordpress包上传到php-fpm的上解压到DocumentRoot目录下

解压wordpress

mv wordpress/* /var/www/html/

cp wp-config-sample.php wp-config.php

vim wp-config.php

修改DB_NAME数据库名称DB_USER用户以及DB_PASSWORD用户密码

DB_HOST主机名等

在浏览器输入192.168.1.138/wp-admin/install.php

填写一些基本信息完成安装

最后:一、感谢马哥,马哥我就不在宣传了,他的视频是我看过的最符合我思维逻辑的,各种深入浅出在深入在浅出。佩服佩服。

二、好久没有写了,也就是说没有看视频了真是罪过。

三、我回归了。

四、下一次写LVS


本文出自 “水神” 博客,请务必保留此出处http://lakes.blog.51cto.com/10736359/1764602

更多相关文章

  1. php不重新编译添加模块 php不重新编译添加模块
  2. 具有线程/回复的私人消息系统
  3. PHP多线程编程
  4. 使用多个线程更新DB时如何避免“锁超时”?
  5. mysql python pymysql模块 增删改查 查询 fetchone
  6. 再论mysql线程出现Waiting for table flush被hang住问题
  7. 可视化工具Navicat的使用/pymysql模块的使用
  8. 什么是最好的Node.js mysql模块通过ssl连接到mysql?
  9. MySQL各模块工作配合

随机推荐

  1. imagecreatetruecolor()在symfony中不起作
  2. 写给系统管理员的 25 个 PHP 安全实践
  3. 软件发布:PHP编译工具v1.0
  4. 我得到了“致命错误:未捕获的SoapFault异
  5. 编译安装libevent,memcache,以及php的memca
  6. tp5 ThinkPhp5 自定义异常处理类
  7. ThinkPHP框架快捷键使用说明
  8. 数据库分卷备份 thinkphp3.2版
  9. PHP的SOAP扩展原理和使用(转)
  10. 如果ROW2包含“string”,MySQL会更改ROW1