本次试验用了两个web,一个php和MySQL web1,2 (172.16.31.30,31.31)nfs 172.16.31.34
成都创新互联专注于仲巴网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供仲巴营销型网站建设,仲巴网站制作、仲巴网页设计、仲巴网站官网定制、重庆小程序开发服务,打造仲巴网络公司原创品牌,更为您提供仲巴网站排名全网营销落地服务。
php 172.16.31.32 mysql 172.16.31.32
构建如图所示
1,搭建web
首先# mount -t nfs 172.16.31.34:/mydata/mydata 挂载nfs
此次编译和上篇LAMP中web所用的版本是一个版本,编译步骤相同
1)下载apr-1.5.0.tar.bz2 apr-util-1.5.3.tar.bz2 httpd-2.4.9.tar.bz2 这三个包,依次解压,
# tar xf apr-1.5.0.tar.bz2
# cd apr-1.5.0
# ./configure --prefix=/usr/local/apr
# make && make install
2) 编译安装apr-util
# tar xf apr-util-1.5.3.tar.bz2
# cd apr-util-1.5.3
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
3)编译安装httpd-2.4.9
# tar xf httpd-2.4.9.tar.bz2
# cd httpd-2.4.9
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
# make && make install
两台都是做如此操作,然后修改PATH环境变量
echo "export PATH=/usr/local/apach/bin:$PATH">> /etc/profile.d/httpd.sh
让PATH在当前shell生效并且启动服务
source /etc/profile.d/httpd.sh
apachectl start
# vim /etc/httpd/httpd.con
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so 需启用的两个模块
LoadModule proxy_module modules/mod_proxy.so
ServerName www.caoshujia.com:80
ProxyRequests off 关闭正向代理
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.2.11:9000/mydata/$1 只要是php文件都使用fcgi协议代理到php服务器。
DocumentRoot "/mydata/" 修改站点根目录为nfs
DirectoryIndex index.html index.php 添加默认请求文件
AddType application/x-httpd-php .php 在
AddType application/x-httpd-php-source .phps
# httpd -t
# apache restart
2 php编译安装
1)事先需要安装几个包组,如果安装,无需安装
# yum -y groupinstall "Desktop Platform Development"
# yum -y install bzip2-devel
# yum -y install libmcrypt-devel
2)编译安装
# tar xf php-5.4.26.tar.bz2
# cd php-5.4.26
#./configure --prefix=/usr/local/php --with-mysql --with-mysqli --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --enable-sockets --enable-fpm --with-bz2 --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-mcrypt
# make && make install
3)为php提供配置文件:
# cp php.ini-production /etc/php.ini
4)配置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.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php/var/run/php-fpm.pid
指定php的PID文件所在位置。这条一定要写在[global]下面第一行,不然不会生效。
接下来就可以启动php-fpm了:
# service php-fpm start
检测监听端口
# netstat -tnlp | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 689/php-fpm
[root@localhost php-5.4.26]# service php start
[root@localhost php-5.4.26]# mkdir /mydata
[root@localhost php-5.4.26]# mount -t nfs 172.16.31.34:/mydata/mydata 挂载nfs,用来存储php页面。
[root@localhost php-5.4.26]# chown -R nobody /mydata 修改webdata目录的所有者为nobody, 因为nobody是php进程运行的用户。
3,mysql配置
1首先下载mysql-5.5.33包组(mariadb-5.5.36-linux-x86_64.tar.gz),然后解压mariadb-5.5.36-linux-x86_64.tar.gz到/usr/local
[root@localhost ~]# tar xfmariadb-5.5.36-linux-x86_64.tar.gz -C /usr/local
2准备数据存放的文件系统
a新建一个sda3
[root@localhost~]# fdisk /dev/sda
Command (m for help): n
Commandaction
e extended
p primary partition (1-4)
p
Partitionnumber (1-4): 3
Firstcylinder (7859-13054, default 7859):
Usingdefault value 7859
Lastcylinder, +cylinders or +size{K,M,G} (7859-13054, default 13054): +20G
Command(m for help): t
Partitionnumber (1-4): 3
Hex code(type L to list codes): 8e (文件系统为LVM)
Changedsystem type of partition 3 to 8e (Linux LVM)
Command (m for help): w
b读入磁盘中
[root@localhost ~]# kpartx -af /dev/sda
device-mapper: reload ioctl on sda1failed: Invalid argument
create/reload failed on sda1
device-mapper: reload ioctl on sda2failed: Invalid argument
create/reload failed on sda2
device-mapper: reload ioctl on sda3failed: Invalid argument
create/reload failed on sda3
[root@localhost ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3 (表示已经读入到磁盘中)
c新建逻辑卷,并将其挂载至特定目录,此处目录设置为/mydata
[root@localhost ~]# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
[root@localhost ~]# vgcreate myvg/dev/sda3
Volume group "myvg" successfully created
[root@localhost ~]# lvcreate -L 10G -nmydata myvg
Logical volume "mydata" created
[root@localhost ~]# mke2fs -t ext4 -LMYDATA -b 4096 -m 3 /dev/myvg/mydata
并且能开机挂载,编辑fastab文件
/dev/mapper/vg0-root / ext4 defaults 1 1
UUID=90ebd4cf-95c1-4338-b0dd-19b2b1cb943d/boot ext4 defaults 1 2
/dev/mapper/vg0-usr /usr ext4 defaults 1 2
/dev/mapper/vg0-var /var ext4 defaults 1 2
/dev/mapper/vg0-swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=MYDATA /mydata ext4 defaults 0 0
(开机挂载)
d 新建用户以安全方式运行进程,并创建链接
[root@localhost ~]# groupadd -r mysql
[root@localhost ~]# useradd-g mysql -r mysql
[root@localhost ~]# idmysql
uid=496(mysql)gid=493(mysql) groups=493(mysql)
[root@localhost ~]#chown -R mysql.mysql /mydata/data/
[root@localhost ~]# ll -a/mydata/data/
total 8
drwxr-xr-x 2 mysql mysql4096 Aug 11 20:15 .
先进入/usr/local目录下
[root@localhost local]# ln-sv mariadb-5.5.36-linux-x86_64 mysql
lrwxrwxrwx 1 root root 27 Aug 11 20:18mysql -> mariadb-5.5.36-linux-x86_64
e 为mysql提供主配置文件
cd/usr/local/mysql/
mkdir /etc/mysql创建一个目录,因为在/etc下有个my.cnf
cpsupport-files/my-large.cnf /etc/mysql/my.cnf
vim/etc/mysql/my.cnf
port = 3306
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 (指定mysql数据文件的存放位置)
开始初始化
[root@localhostmysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
(此处必须在 mysql目录下,要在scripts初始化,会报错)
f 为mysql提供sysv服务脚本
[root@localhostmysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
然后添加到服务列表中
[root@localhost mysql]# chkconfig --addmysqld
[root@localhost mysql]# chkconfig --list mysqld
mysqld 0:off1:off2:on3:on4:on5:on6:off
启动服务
root@localhost mysql]# service mysqld start
Starting MySQL... [ OK ]
[root@localhost mysql]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:52971 *:*
LISTEN 0 128 :::50732 :::*
LISTEN 0 128 :::111 :::*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 128 ::1:631 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 127.0.0.1:6010 *:*
LISTEN 0 128 ::1:6010 :::*
LISTEN 0 50 *:3306 *:* (3306端口已启动)
设置权限
[root@localhostmysql]#chmod +x /etc/rc.d/init.d/mysqld
g 编辑环境变量
[root@localhost~]# vim /etc/profile.d/mysql.sh
exportPATH=/usr/local/mysql/bin:$PATH
h导出头文件和库文件
ln -sv /usr/local/mysql/include /usr/include/mysql
[root@localhost~]# vim /etc/ld.so.conf.d/mysql.conf(新建)
/usr/local/mysql/lib
让系统重新载入
[root@localhost ~]#ldconfig -v | grep mysql
/usr/local/mysql/lib:
libmysqld.so.18 -> libmysqld.so.18
libmysqlclient.so.18 ->libmysqlclient_r.so.18.0.0
/usr/lib64/mysql:
libmysqlclient.so.16 -> libmysqlclient.so.16.0.0
libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
[root@localhost ~]#mysql
MariaDB [(none)]> use mysql
MariaDB [mysql]> grant all on discuz.* to disadmin@172.16.31.32 identified by 'root'; 为数据库用户disadmin授权在172.16.31.32主机上登陆,密码为 root
配置完成。