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