共计 10884 个字符,预计需要花费 28 分钟才能阅读完成。
环境说明:
- 系统: CentOS 6.6
- 部署模式: 分离式(三个服务部署到三台服务上)
- 版本: HTTP 2.4.25 + PHP 5.4.13 + MySQL 5.5.28
- IP 规划: HTTP: 192.168.205.116 PHP: 192.168.205.117 MySQL: 192.168.205.115
效果截图:
httpd 编译安装
-
编译安装 apr
1) wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.gz
2) tar xf apr-1.5.2.tar.gz
3) cd apr-1.5.2
4) ./configure
5) make&makeinstall
-
编译安装 apr-util
1) wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
2) cd apr-util-1.5.4
3) tar xf apr-util-1.5.4.tar.gz
4) ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr/
5) make&makeinstall
-
编译安装 httpd
1) yum install pcre pcre-devel -y
2) yum install openssl-devel -y
3) wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.25.tar.bz2
4) cd httpd-2.4.25
5) ./configure \
–prefix=/usr/local/httpd \
–sysconfdir=/etc/httpd \
–enable-so \
–enable-rewrite \
–enable-ssl –enable-cgi \
–enable-cgid –enable-modules=most \
–enable-mpms-shared=all \
–with-apr=/usr/local/apr \
–with-apr-util=/usr/local/apr-util \
–with-ssl=/usr/local/openssl \
–enable-proxy \
–enable-proxy-fcgi
6) make && make install
-
关闭 selinux 和防火墙
1) getenforce
2) setenforce 0
3) vim /etc/selinux/config
4) getenforce
5) iptables -F
-
修改配置文件
1) vim /etc/httpd/httpd.conf
2) 添加 PidFile “/var/run/httpd.pid”: 修改 pid 进程文件位置
-
服务启动验证
1) /usr/local/httpd/apachectl start
2) netstat -tnlp
-
创建启动文件
1) vim /etc/init.d/httpd
. /etc/rc.d/init.d/functions
#chkconfig: 2345 10 90
#
# pull in sysconfig settings
[-f /etc/sysconfig/httpd ] && . /etc/sysconfig/httpd
HTTPD_LANG=${HTTPD_LANG-"C"}
INITLOG_ARGS=""
#apachectl=/usr/local/apache/bin/apachctl
#httpd=${HTTPD-/usr/local/apache/bin/httpd}
httpd=${HTTPD-/usr/local/httpd/bin/apachectl}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
start()
{echo -n $"Starting $prog: "
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
RETVAL=$?
echo
[$RETVAL -eq 0 ] && touch $lockfile
return $RETVAL
}
stop()
{echo -n $"Stopping $prog: "
killproc -p ${pidfile} -d 10 $httpd
RETVAL=$?
# if we are in halt or reboot runlevel kill all running sessions
# so the TCP connections are closed cleanly
echo
[$RETVAL -eq 0 ] && rm -f ${lockfile} ${pidfile}
}
reload()
{echo -n $"Reloading $prog: "
if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
RETVAL=$?
echo $"not reloading due to configuration syntax error"
failure $"not reloading $httpd due to configuration syntax error"
else
killproc -p ${pidfile} $httpd -HUP
RETVAL=$?
fi
echo
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $httpd
RETVAL=$?
;;
restart)
restart
;;
condrestart)
if [-f ${pidfile} ]; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
2) 添加执行权限
a) chmod +x /etc/init.d/httpd
3) 加入到启动服务列表中
a) chkconfig –add httpd
b) chkconfig –list httpd
c) chkconfig –level 35 httpd on
4) 处理报错信息
a) vim /etc/httpd/httpd.conf
ServerName localhost:80
-
添加环境变量
a) vim /etc/profile.d/httpd.sh
a) export PATH=$PATH:/usr/local/httpd/bin/
b) 注意 httpd - t 生效需要退出重新登录
MySQL 二进制安装
-
下载安装
1) wget https://downloads.mysql.com/archives/get/file/mysql-5.5.28-linux2.6-i686.tar.gz
ii. 解压到指定目录
1) tar xf mysql-5.5.28-linux2.6-i686.tar.gz -C /usr/local/
iii. 切换到该目录下
1) cd /usr/local/
iv. 做链接
1) ln -sv mysql-5.5.28-linux2.6-i686/ mysql
v. 添加用户, 修改属主, 属组
1) groupadd -r -g 306 mysql
2) useradd -g 306 -r -u 306 mysql
3) chown -R root.mysql /usr/local/mysql/*
-
制作逻辑卷并将数据库文件指定至逻辑卷
vi. 制作逻辑卷
1) fdisk /dev/sdb
2) pvcreate /dev/sdb5
3) vgcreate myvg /dev/sdb5
4) lvcreate -n mydata -L 5G myvg
5) lvs
6) mke2fs -j /dev/myvg/mydata
vii. 数据库数据存放至逻辑卷
1) mkdir /mydata/
2) mount /dev/myvg/mydata /mydata/
viii. 修改 /etc/fstab 文件
1) /dev/myvg/mydata /mydata ext3 defaults 0 0
2) mount -a
ix. 修改数据存储文件夹权限
1) chown -R mysql.mysql data/
2) chmod o-x /mydata/data/
-
初始化数据库
1) yum install -y libaio: 初始化时报错的解决办法
2) cd /user/local/mysql
3) scripts/mysql_install_db –user=mysql –datadir=/mydata/data/
4) chown -R root /usr/local/mysql/*
-
创建开机自启
xi. 修改启动文件
1) cp support-files/mysql.server /etc/init.d/mysqld
xii. 添加入开机启动
1) chkconfig –add mysqld
2) chkconfig –list mysqld
-
添加配置文件
1) cp /usr/local/mysql-5.5.28-linux2.6-i686/support-files/my-huge.cnf /etc/my.cnf
2) vim /etc/my.cnf
a) datadir = /mydata/data/mysql
b) thread_concurrency = 8
c) mysql 中一个 cpu 提供 2 个线程
i) 查看当前系统有几个 cpu:cat /proc/cpuinfo
ii) 所以这里最多有 2 个线程,修改为 2
-
添加 PATH 环境变量执行 mysql 命令
1) vim /etc/profile.d/mysqld.sh
a) export PATH=$PATH:/usr/local/mysql/bin
2) 退出重新登录
-
开启服务测试
1) service mysqld start
-
修改 MySQL 的 root 用户的密码以及打开远程连接
mysql -u root mysql
mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@”%” IDENTIFIED BY “william”; // 为 root 添加远程连接的能力。
mysql>update user set Password = password(‘xxxxxx’) where User=’root’;
mysql>select Host,User,Password from user where User=’root’;
mysql>flush privileges;
mysql>exit
重新登录:mysql -u root -p
PHP 源码编译安装
-
编译安装 libmcrypt
1) wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.6.tar.gz
2) tar xf libmcrypt-2.5.6.tar.gz
3) cd libmcrypt-2.5.6
a) ./configure –prefix=/usr/local/libmcrypt
-
编译安装 PHP
ii. wget http://museum.php.net/php5/php-5.4.13.tar.bz2
iii. yum install gcc openssl-devel libxml2-devel bzip2-devel -y
cd php-5.4.13
iv. 编译安装
./configure \
–prefix=/usr/local/php \
–enable-fpm \
–with-config-file-path=/etc \
–with-config-file-scan-dir=/etc/php.d \
–with-libxml-dir=/usr \
–with-openssl \
–with-zlib \
–with-bz2 \
–with-jpeg-dir \
–with-png-dir \
–with-freetype-dir \
–enable-mbstring \
–with-mcrypt \
–enable-sockets \
–with-mysql=mysqlnd \
–with-mysqli=mysqlnd \
–with-pdo-mysql=mysqlnd \
–enable-maintainer-zts \
–with-mcrypt=/usr/local/libmcrypt
1) make && make install
-
设置启动项
1) cp php.ini-production /etc/php.ini
2) 为 php-fpm 提供 Sysv init 脚本, 并将其添加至服务列表
a) cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
b) chmod +x /etc/init.d/php-fpm
c) chkconfig –add php-fpm
d) chkconfig –list php-fpm
vi. 修改 httpd.conf
1) AddType application/x-httpd-php .php
2) AddType application/x-httpd-source .phps
vii. 配置 php-fpm
1) 为 php-fpm 提供 Sysv init 脚本, 并将其添加至服务器列表
a) cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
b) chmod +x /etc/rc.d/init.d/php-fpm
c) chkconfig –add php-fpm
d) chkconfig php-fpm on
-
为 php-fpm 提供配置文件
a) cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
3) 编辑 php-fpm 的配置文件
a) vim /usr/local/php/etc/php-fpm.conf
b) 配置 fpm 的相关选项为你所需要的值, 并启用 pid 文件
i) pm.max_children = 50
ii) pm.start_servers = 5
iii) pm.min_spare_servers=2
iv) pm.max_spare_servers=8
v) pid=/usr/local/php/var/run/php-fpm.pid
-
启动服务
1) service php-fpm start
2) netstat -tnlp
PHP 连接 HTTP
i. 修改 php 服务器 配置 php-fpm 的文件 vim /usr/local/php/etc/php-fpm 定位到 listen =192.168.205.117:9000
ii. 在该主机上新建虚拟主机目录用于存放网页文件
mkdir -pv /www/{glinux,gliuxstar}
iii. 配置http 服务器Apache 虚拟主机使用 php
1) 在 httpd 主机上, 192.168.205.116, 建立一个目录作为虚拟主机的家目录
a) mkdir -pv /www/{glinux,glinuxstar}
-
编辑主配置文件(关闭中心主机, 开启虚拟主机)
a) vim /etc/httpd/httpd.conf
One. 注释 #DocumentRoot “/usr/local/apache/htdocs”
Two. 并打开启用 Include /etc/httpd/extra/httpd-vhosts.conf
Three. 同时定位 AddType;添加下面两行
First. AddType application/x-httpd-php .php
Second. AddType application/x-httpd-php-source .phps
Four. 并且定位至 DirectoryIndex
First. <IfModule dir_module>
1. DirectoryIndex index.php index.html #添加 index.php(最好添加在最前面)
Second. </IfModule>
Five. 启动模块
First. 还要启用 proxy_module proxy-fcgi_module 等
Second. LoadModule proxy_module modules/mod_proxy.so #开启
Third. LoadModule proxy_connect_module modules/mod_proxy_connect.so
Fourth. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
Fifth. LoadModule proxy_http_module modules/mod_proxy_http.so
Sixth. LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #开启
-
编辑虚拟主机配置文件 vim /etc/httpd/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot “/www/glinux”
ServerName www.glinux.com
ServerAlias glinux.com
ErrorLog “/usr/local/httpd/logs/glinux.error_log”
CustomLog “/usr/local/httpd/logs/glinux.access_log” combined
ProxyRequests off
ProxyPassMatch ^/(.*.php)$ fcgi://192.168.205.117:9000/www/glinux/$1
<Directory “/www/glinux”>
Options none
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
-
在 php 服务器上的 /www/glinux 目录下分别建立网页文件, 重启服务即可
vim /www/glinux/index.php
<?php
phpinfo();
?>
-
测试 phpinfo 成功
浏览器里输入: http://192.168.205.116
-
php 支持扩展功能 xcache
1) wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
2) 安装 xcache
a) tar xf xcache-3.2.0.tar.gz
b) cd xcache-3.2.0
c) 安装依赖关系
i) yum -y install m4 autoconf
d) /usr/local/php/bin/phpize
e) ./configure –enable-xcache –with-php-config=/usr/local/php/bin/php-config
f) make && make install
3) 安装完毕后会出现这么一行 Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
4) 编辑 php.ini,整合 php 和 xcache:
a) 首先将 xcache 提供的样例配置导入 php.ini
i) # mkdir /etc/php.d
ii) # cp xcache.ini /etc/php.d
iii) 说明:xcache.ini 文件在 xcache 的源码目录中。
5) 接下来编辑 /etc/php.d/xcache.ini,找到 extension 开头的行,修改为如下行:
a) extension = /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so
b) 注意:如果 php.ini 文件中有多条 zend_extension 指令行,要确保此新增的行排在第一位。
6) 然后重启服务即在 phpinfo 的页面中就可看见 xcache 的选项了。
7) 关闭 xcache 方法
a) vim /etc/php.d/xcache.ini
i) xcache.size = 0:设置为 0 是关闭 xcache
PHP 连接 MySQL
-
mysql 数据库修改
use mysql;
grant all privileges on *.* to ‘root’@’192.9.205.105’ identified by ‘william’;
select Host,User,Password from user where User=’root’;
flush privileges;
-
进入 php 主机编辑 index.php 文件内容
<?php
$link=mysql_connect(‘192.168.205.115′,’root’,’william’);
if($link){
echo “success..william!”;
}else{
echo “failed..frank!”.mysql_error();
}
mysql_close($link);
phpinfo();
?>
-
测试连接情况切记,要将防火墙关闭!
浏览器里输入: http://192.168.205.116
部署 phpMyAdmin
-
下载 phpMyAdmin
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.0/phpMyAdmin-4.7.0-all-languages.tar.gz
-
配置 phpmyadmin
1) 在 php 主机和 http 主机上分别在 /www 目录建立一个文件夹 glinux, 并同样执行下面操作
2) tar xf phpMyAdmin-4.7.0-all-languages.zip
3) cd /www/glinux
4) mv /root/phpMyAdmin-4.7.0/* ./
5) 接下来在 php 主机上进行对 phpmyadmin 的配置。
6) cp config.sample.inc.php config.inc.php
7) vim config.inc.php
a) 主要找到
b) $cfg[‘Servers’][$i][‘host’]=‘192.168.205.115’数据库服务器的 IP 地址
c) $cfg[‘blowfish_secret’] = ‘william’; 这里的字符随意,这个主要是为了区分 cookie。
8) 然后重启三台主机上的服务即可测试。
下面关于 LAMP 相关 的内容你可能也喜欢:
LAMP 平台安装 Xcache 和 Memcached 加速网站运行 http://www.linuxidc.com/Linux/2015-06/118835.htm
CentOS 7 下搭建 LAMP 平台环境 http://www.linuxidc.com/Linux/2015-06/118818.htm
CentOS 6.5 系统安装配置 LAMP(Apache+PHP5+MySQL)服务器环境 http://www.linuxidc.com/Linux/2014-12/111030.htm
CentOS 7.2 yum 安装 LAMP 环境 http://www.linuxidc.com/Linux/2016-11/136766.htm
Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境 http://www.linuxidc.com/Linux/2014-10/107924.htm
Ubuntu 14.10 下安装 LAMP 服务图文详解 http://www.linuxidc.com/Linux/2014-12/110082.htm
LAMP 结合 NFS 构建小型博客站点 http://www.linuxidc.com/Linux/2015-08/121029.htm
CentOS7 下安装部署 LAMP 环境 http://www.linuxidc.com/Linux/2016-04/130653.htm
Ubuntu Server 14.04 LTS 下搭建 LAMP 环境图文详解 http://www.linuxidc.com/Linux/2016-12/138758.htm
Ubuntu Server 16.04 下配置 LAMP 环境 http://www.linuxidc.com/Linux/2016-12/138757.htm
CentOS 6.7 编译安装 LAMP 详解 http://www.linuxidc.com/Linux/2017-03/141244.htm
Ubuntu 16.04 搭建 LAMP 开发环境 http://www.linuxidc.com/Linux/2016-10/136327.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143737.htm