一、php编译
配置apache-2.4.9以fpm方式的php-5.4.26(php服务器IP为172.16.3.30)
1、编译php
#tar xf php-5.4.26.tar.bz2
#cd php-5.4.26
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --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 --with-config-file-scan-dir=/etc/php.d --with-bz2
编译测检查环境和编译为php模块的区别在于:把指定为模块的这个信息去掉--with-apxs2=/usr/local/apache/bin/apxs换成了--enable-fpm。也不需要--enable-maintainer-zts
说明:
如果使用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
为php提供配置文件:
# cp php.ini-production /etc/php.ini
2、配置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 php-fpm on
为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文件(如下最后一行):
pm = dynamic-------------------------动态来管理以下进程的
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.pid -------找到后启用起来并指明路径pid路径
listen = 172.16.3.30:9000-------------修改监听地址端口(注意这个端口不允许其他人访问,影响速度)
3、启动下即可
接下来就可以启动php-fpm了:
# service php-fpm start
使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):
# ps aux | grep php-fpm
查看监听接口
# netstat -tnlp | grep php-fpm
tcp 0 0 172.16.3.30:9000 0.0.0.0:* LISTEN 24543/php-fpm
二、mariadb编译安装(数据库服务器IP:172.16.3.40)
mariadb-5.5.36:
通过二进制格式安装:
编译好的二进制程序:(安装平台是有关系的,32位的操作系统,只能安装32位数据库)
1、下载安装包,展开程序
mariadb-5.5.36-linux-x86_64.tar.gz
(1)mariadb安装目录必须是mysqld9(否则一些默认的程序无法运行)
#tar xf mariadb-5.5.36-linux-x86_64.tar.gz -C /usr/local------指定解压目录
(2)查看软件包提示怎么安装的
#ls /usr/local/mariadb-5.5.36-linux-x86_64
INSTALL-BINARY---------这个文件当中说明了怎么安装
(3)数据库的数据我们一般存储在和系统不在同一个磁盘上指定的LVM的单独逻辑卷中(方便以后管理扩展、快照备份等),以保重数据不丢失。
创建个逻辑卷
#fdisk /dev/sda (创建/dev/sda3,类型为8e)
#kpartx -af /dev/ada----加载磁盘分区信息
#partx -a /dev/sda
#pvcreate /dev/sda3
#vgcreate myvg /dev/sda3
#lvcreate -L 3G -n mydata myvg
#mke2fs -t ext4 -L MYDATA -b 4096 -m 3 /dev/myvg/mydata
#mkdir /mydata
#echo "LABEL=MYDATA /mydata ext4 defaults 0 0 >> /etc/fstab
#mount -a---立即生效挂载分区
#mkdir /mydata/data----创建个子目录来存放数据
(4)创建数据库的用户和组为mysql用户
#groupadd -r mysql
#useradd -r -g mysql mysql
(5)设置存放数据目录的属组和属主
#chown -R mysql.mysql /mydata/data
2、安装mariadb
# ln -sv mariadb-5.5.36-linux-x86_64/ mysql---方便以后升级安装重名问题,我们在这里创建链接,下次在安装的时候就直接删除连接即可。
#cd /usr/local/mysql
#chown -R root.mysql ./*
(1)初始化修改配置文件
配置文件:/usr/local/mysql/support-files
在这里我们说下配置文件:
my-small.cnf--可用内存的不同的配置文件(小)
my-large.cnf----(大)
my-huge.cnf ------(巨大)
由于这里提供的配置文件与物理机配置不同,选择不同的配置文件。
我们这里使用的是虚拟机做实验,用my-large.cnf足够了
复制配置文件,以my-large.cnf为模版
#mkdir /etc/mysql(默认情况下有rpm -ql mysql-libs查看下,默认提供mysql客户端包)
#cp /usr/local/mysql/support-files/my-large.cnf /etc/mysql/my.cnf
#vim /etc/mysql/my.cnf
在配置文件中必须加上指明数据存储的目录datadir = /mydata/data这个目录必须放定义mysqld属性下
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MariaDB server
[mysqld]
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
datadir = /mydata/data-----在这个配置文件 中只需要添加这条信息即可指定数据的存储目录
(2)执行初始化脚本;
由于mysql_install_db需要/usr/local/mysql/目录下的bin文件的信息,指明路径执行
#cd /usr/local/mysql
#scripts/mysql_install_db --datadir=/mydata/data --user=mysql
命令解释:--datadir=/mydata/data:指定数据库存放的目录
--user=mysql:必须用mysql用户运行
(3)查看初始化是否成功
# ls /mydata/data(主要查看我们存放数据的目录下是否生成数据库信息。)
aria_log.00000001 mysql mysql-bin.000002 performance_schema
aria_log_control mysql-bin.000001 mysql-bin.index test
(4)启动服务这里需要启动脚本
在安装目录下/usr/local/mysql/support-files/
#ls /usr/local/mysql/support-files/
[root@ning mysql]# ls support-files/(中的mysql.server)
binary-configure magic my-medium.cnf mysql.server
config.huge.ini my-huge.cnf my-small.cnf ndb-config-2-node.ini
config.medium.ini my-innodb-heavy-4G.cnf mysqld_multi.server SELinux
config.small.ini my-large.cnf mysql-log-rotate solaris
只要是安装目录没有改动(/usr/local/mysql下),复制过去就能启动
# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld(注意下,要是你的虚拟机上还装有不同版本的mysql,在启动脚本下有服务启动脚本,你只需要复制过去叫,mysqld55起个名字即可,在以后使用时记得即可)
#chkconfig --add mysqld
#chkcofnig --list
#service mysqld start
(5)测试:安装的结果,由于是我们编译安装还需要提供,启动命令的修改
导出:命令
# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH----指定路径
# source /etc/profile.d/mysql.sh
导出:帮助信息
#vim /etc/man.config
MANPATH /usr/local/mysql/man
导出:头信息文件
#ln -sv /usr/local/mysql/include/ /usr/include/mysql
导出:库文件
#ldconfig -v |grep mysql- --查看以下库文件版本
# vim /etc/ld.so.conf.d/mysql.conf--创建配置文件并添加以下内容即可
usr/local/mysql/lib
成功的结果:
[root@ning mysql]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.36-MariaDB-log MariaDB Server-----查看版本是否正确
Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> Ctrl-C -- exit!
Aborted
[root@ning mysql]# vim /etc/profile.d/mysql.sh
[root@ning mysql]# mysql
Your MariaDB connection id is 5
Server version: 5.5.36-MariaDB-log MariaDB Server
MariaDB [(none)]>
授权远程连接用户:
#mysql
>create database mysdb-------创建库
>show databases;-----查看下有多少个库
>grant all on mydb.* to 'root'@'172.16.3.%' identified by 'ning';(授权帐号为root,密码为ning)
> flush privileges;-----刷新数据库修改
> select Host,User from mysql.user\w;---------查看下授权状态
三、配置httpd-2.4.9(为apache服务器IP为172.16.3.1)
httpd的编译安装在这里不在提供编译说明,上篇博客中有详细解释
1、启用httpd的相关模块
在启用之前我们先查看下模块信息ls /usr/local/apache/modules/是否有mod_proxy.so和mod_proxy_fcgi.so
在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载(去掉注释启用就行了)
在apache的配置文件中启动以下两个模块让它支持fcgi
LoadModule proxy_module modules/mod_proxy.so------fcgi的代理模块
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so-----fcgi模块
0.0.0.0:* LISTEN 689/php-fpm
2、编辑apache配置文件httpd.conf,让apache能识别php格式的页面,并支持php格式的主页
# vim /etc/httpd/httpd.conf
(1)、添加如下二行(让apache支持php)
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
(2)、定位至DirectoryIndex index.html
修改为:
DirectoryIndex index.php index.html(支持,index.php)
补充:Apache httpd 2.4以前的版本中,要么把PHP作为Apache的模块运行,要么添加一个第三方模块支持PHP-FPM实现。
3、配置虚拟主机支持使用fcgi
在相应的虚拟主机中添加类似如下两行。
<VirtualHOST 172.16.3.1:80>
DocumentRoot "/usr/local/host1"
ServerName www.centos.com
ErrorLog /usr/local/host1/error_log
CustomLog /usr/local/host1/access_log common
ProxyRequests Off------------关闭正向代理功能
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.3.30:9000/usr/local/host1/$1---指定php服务器的fcgi监听的地址,IP为:php服务器的地址,路径为:apache网站根目录下:
<Directory "/usr/local/host1">
Require all granted
</Directory>
</VirtUalHOST>
<VirtualHOST 172.16.3.1:80>
documentroot "/usr/local/host2/php"
servername www.apache.com
ErrorLog /usr/local/host2/error_log
CustomLog /usr/local/host2/access_log common
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.3.30:9000/usr/local/host2/php/$1
<Directory "/usr/local/host2/php">
命令解释:
ProxyRequests Off:关闭正向代理
ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。
网站站点配置;(测试主机的连通性)
路径在/usr/local/host1/index.php
<html> <body><h>ninghongliang </h>
<?php
$link = mysql_connect('172.16.3.1','root','ning');----这里连接的数据库地址信息:IP:172.16.3.1是数据库服务器的IP,root为帐号,ning为密码(这里的地址账户和密码需要mysql授权的账户和密码)
if ($link)
echo "Success...";
else
echo "Failure";
phpinfo();
?>
</body></html
路径在/usr/local/host2/php/index.php
我在这里真是的安装了一个图像化的数据库管理网站phpMyAdmin
源包phpMyAdmin-3.5.1-all-languages.tar.bz2
#tar xf phpMyAdmin-3.5.1-all-languages.tar.bz2
#mv phpMyAdmin-3.5.1-all-languages php
#cd php
#cp config.sample.inc.php config.inc.php (复制这个网站的主配置文件为config.inc.php)
需要修改里面的连接数据库的IP地址,
#vim config.inc.php
$cfg['Servers'][$i]['host'] = 'localhost';修改为$cfg['Servers'][$i]['host'] = '172.16.3.30';