Linux服务篇之十二:源码包构建LAMP服务器

实验环境:Apache服务器一台、Mysql服务器一台、PHP服务器一台

步骤一:安装Apache服务器

1、安装apr

yum install gcc-c++ -y

yum -y install epel-release

tar zxf apr-1.5.2.tar.gz

cd apr-1.5.2

./configure --prefix=/usr/local/apr;echo $?

make && make install;echo $?

cd ..

wKioL1XipeTS18djAAK7iYuSFzs532.jpg

2、安装apr-util

yum -y install epel-release

tar zxf apr-util-1.5.2.tar.gz

cd apr-util-1.5.2

./configure --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr;echo $?

make && make install;echo $?

cd ..

wKioL1XipaSTZrXmAAL4nmAotn4535.jpg

3、安装httpd2.4.12

yes|yum install pcre-devel openssl-devel

tar jxf httpd-2.4.12.tar.bz

cd httpd-2.4.12

./configure --prefix=/usr/local/httpd24 --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;echo $?

make && make install;echo $?

wKiom1XipRCj4MzSAAO8i0Z0oVo121.jpg

wKioL1Xipy3g0xc7AAJexj3JDFM845.jpg

 

 

二、安装MYSQL服务

1、安装依赖库

yes | yum install gcc gcc-c++ make cmake ncurses-devel bison perl lrzsz -y

wKiom1XirZ2i2fakAAEF0dC78cs461.jpg

出错!由于yum安装了旧版本的GPG keys造成的。 解决办法就是:

rpm --import /etc/pki/rpm-gpg/RPM* 

wKioL1Xir7vQ1W-uAADvAhwOjSM392.jpg

 

2、建用户和组

groupadd mysql

useradd mysql -s /sbin/nologin -M -g mysql

 

3、授权

mkdir /data/mysqldata -p

mkdir /usr/local/mysql -p

chown -R mysql.mysql /data/mysqldata/

 

4、关于MYSQL的sock文件

mysql.sock 文件是在mysql运行时生成的,当停止服务后他就消失了!

编译时可以指定他的路径

-DMYSQL_UNIX_ADDR=/data/mysqldata/mysqldata.sock

也可以编译完成后修改my.cnf配置文件
socket =/data/mysqldata/mysqldata.sock

 

5、编译安装

wget �Cc http://download.softagency.net/MySQL/Downloads/MySQL-5.5/mysql-5.5.44.tar.gz

tar xf mysql-5.5.44.tar.gz

cd mysql-5.5.44

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysqldata -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 -DMYSQL_USER=mysql -DMYSQL_UNIX_ADDR=/data/mysqldata/mysqldata.sock;echo $?

wKioL1XiuM3SCSPoAAKcs2JMFI0765.jpg

make && make install ;echo $?

wKioL1XiwT_ynhtBAALxSSLUKiI047.jpg

 

7、查看安装过的目录

mysql安装的目录:

wKiom1XiwWTDvd9rAAL9NDWfxqg496.jpg

 数据目录:

wKiom1XiwdvxF7gOAABGSbtnLlY133.jpg

 

8、将mysql的安装文件中的my-large.chf文件复制到数据目录下的my.cnf并授权给用户

cp -arp /soft/mysql-5.5.44/support-files/my-large.cnf /data/mysqldata/my.cnf

chown -R mysql.mysql  /data/mysqldata/my.cnf

wKioL1XjFYvACbkyAAD-VJkExVI135.jpg

9、配置my.cnf

vim /data/mysqldata/my.cnf

wKiom1XixHCx0IBAAAG0M_9_75c770.jpg

增加2行内容:

写入数据目录

datadir = /data/mysqldata

basedir = /usr/local/mysql

作为MYSQL主服务器

log-bin=mysql-bin

binlog_format=mixed

server-id = 1

wKiom1XixfCSGJXHAAGw0BduUCU203.jpg

 

10、初始化数据库

wKioL1XjFuGz_qAoAAIbT2LpLUU941.jpg

cd /usr/local/mysql/

./scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysqldata/ --user=mysql

wKioL1XiysHTG3unAAJw4n4Ev4g339.jpg

wKiom1XiyKSSfSJKAAMBfyUgWfY826.jpg

初始化之后,生产了一些数据库

wKiom1XlRXmSGCGwAADkiOC1N50187.jpg

 

11、创建启动MYSQL脚本

mkdir /data/sh -p

 cd /data/sh/

vim mysql_3306_start.sh

#!/bin/sh

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/my.cnf &

ll /usr/local/mysql/bin/mysqld_safe

ll /data/mysqldata/my.cnf
授权启动脚本

chmod 700 mysql_3306_start.sh

启动mysql

wKiom1XlSJSy3ELpAAPlWK_v3BA376.jpg

 设置密码,再次启动MYSQL

/data/app/mysql3306/bin/mysqladmin -uroot password '123'

wKioL1XlU6OQAbdNAALdSu3PJ8c483.jpg

 

12、设置连接脚本

vim mysql_3306_conn.sh

#!/bin/sh

#/data/app/mysql3306/bin/mysql -uroot -p -S /tmp/mysql3306.sock #/data/app/mysql3306/bin/mysql -uroot -p'}W#-4_,zhb2~}%kl.aIU#KZO' -S /tmp/mysql3306.sock

/usr/local/mysql/bin/mysqladmin -uroot -p'123' -S /data/mysqldata/mysqldata.sock

 

 

13、设置关闭脚本

cat mysql_3306_stop.sh

#!/bin/sh

#/usr/local/mysql/bin/mysqladmin -u root -p'}W#-4_,zhb2~}%kl.aIU#KZO'

shutdown -S /data/mysqldata/mysqldata.sock

/usr/local/mysql/bin/mysqladmin -uroot -p'123' shutdown -S /data/mysqldata/mysqldata.sock

wKioL1Xla8Xhqnf5AAEAgN48RY0036.jpg

 

 

三、安装PHP

1、安装PHP依赖包

yes|yum install libxml2-devel libmcrypt-devel bzip2-devel libxml2-devel openssl-devel bzip2 bzip2-devel

 

2、在这台PHP机器上编译mysql

2.1、安装依赖库

yes | yum install gcc gcc-c++ make cmake ncurses-devel bison perl lrzsz

2.2、建用户和组

groupadd mysql

useradd mysql -s /sbin/nologin -M -g mysql

2.3、授权

mkdir /data/mysqldata -p

chown -R mysql. /data/mysqldata/

2.4、编译安装mysql

tar xf mysql-5.5.44.tar.gz

cd mysql-5.5.44

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysqldata -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 -DMYSQL_USER=mysql -DMYSQL_UNIX_ADDR=/data/mysqldata/mysqldata.sock;echo $?

make && make install;echo $?

cd..

 

3、编译安装libmcrypt

tar -zxvf libmcrypt-2.5.7.tar.gz 
cd libmcrypt-2.5.7 
mkdir -p /usr/local/libmcrypt
./configure
make &&
make install;echo $?

 

4、编译安装PHP

cd php-5.4.42

./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-bz2 --with-config-file-path=/etc/php/php.ini --with-config-file-scan-dir=/etc/php/php.d/

make && make install;echo $?

wKiom1XlraPDCcOrAAQJtFtur9Q973.jpg

安装完成!

wKiom1XlsYrwxj8DAARbXDUiDo0204.jpg

wKiom1XlskzAv8cRAAFL306_rio697.jpg

5、修改PHP配置文件

把php的默认配置文件复制到php.ini

mkdir /etc/php

cd php-5.4.42

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

php-fpm.conf.default默认配置文件复制到etc下

cd php-5.4.42

/bin/cp -arp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

chmod 700 /etc/rc.d/init.d/php-fpm

chkconfig php-fpm on

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

配置文件:

php的配置文件:php.ini

php的守护进程配置文件:fpm.conf

cd /usr/local/php/etc/

grep ^listen php-fpm.conf.default

wKiom1XlxxPDR0OiAAKBbctIvRo940.jpg

 

6、监听套接字

netstat -tulanp

wKioL1XoEgeDXxKWAAH5T3TF1mI398.jpg

Listen.allowed_clients表示允许哪些客户发请求过来,给httpd提供php解析功能的;

sed -i 's@listen = 127.0.0.1:[email protected]@g' php-fpm.conf.default

修改为httpd的IP,

wKiom1XoEJyB-69KAAIEGIWZj5Y141.jpg

以什么用户组来运行,

wKiom1XoEbHglyWpAAGC7DCNpmQ325.jpg

cd /usr/local/php/etc

cp -a php-fpm.conf.default php-fpm.conf

wKiom1XoFvTi-jn9AAGUdLoUfcI019.jpg

 

wKiom1XoEtfgQuYrAAGmbOFZjwY064.jpg

 

7、启动php-fpm 启动2次

wKioL1XoGIvz3qtpAAHagNbU_og796.jpg

 

 

四、配置Apache与php整合

1、在http服务器上开启模块

vim /etc/httpd24/httpd.conf

wKiom1XoGtSyRQFTAAGncTxz8wI405.jpg

2、添加解析的类型
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

wKioL1XoHcuhS2NIAAEXoFeFB-A454.jpg

3、关闭正向代理

wKioL1X3hvXxdyXdAADWaFyLZkY896.jpg

 

 

五、授权php连接MySQL

1、启动数据库

wKioL1XoIUrQ6k20AAGZfFoP7mY983.jpg

2、授权访问,

wKiom1XoH6qCQNHbAACf754h-1Y139.jpg

3、在php服务器上新建测试页面

wKioL1X3jM7gUWAdAADYzfkFdpk421.jpg

4、成功打开测试页面!

wKioL1X3jPOhubmEAANc15P5pIM874.jpg

本文出自 “柏书兵-系统运维” 博客,转载请与作者联系!

你可能感兴趣的:(Linux服务篇之十二:源码包构建LAMP服务器)