一、目标
目标是安装Web Application 可扩展的运营环境,所以系统由多个角色组成:LB Server、Web Server、APP Server、DB Server。
由于本文的主旨是LAMP(Linux、Apache、Mysql、php)安装,所以这里仅就Web Server与DB Server的安装部署作说明。
二、软件版本
Linux:CentOS6.3
Apache:2.2
Mysql:5.1/5.5(升级需求)
PHP:5.3/5.2(老代码运行需求)
就Linux的发行版本来说,会遇到Linux发行版本与需要运行的软件版本不一致的问题,经常花费相当多的时间做安装、编译与配置。
这里是一些经验的总结:
- 我们在配置Server上走了弯路,认为Apache,php,mysql要分开安装在不同Server上。其实,完全没有必要,安装但关闭服务即可与配置目标一致,又可在出问题时开启进行本地测试。
- 在Mysql版本上也纠结了很长时间。应该一开始就用最易用的方式搭建App,在保证应用没有问题的情况下(也就是我们熟悉App应用配置后),再对系统进行版本选择、配置、优化
三、安装流程
1、DB Server安装
Mysql版本:5.1
1.1、安装Mysql
首先来进行 MySQL 的安装。打开超级终端,输入:
[root@localhost ~]# yum install mysql mysql-server
安装完毕,让 MySQL 能够随系统自动启动:
[root@localhost ~]# chkconfig --levels 235 mysqld on
[root@localhost ~]# /etc/init.d/mysqld start
设置 MySQL 数据 root 账户的密码:
[root@localhost ~]# mysql_secure_installation
当出现如下提示时候直接按回车、输入新密码、进行设置确认:
Enter current password for root
Set root password? [Y/n]
New password:
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n]
Reload privilege tables now? [Y/n]
至此MySql安装完成。
1.2、安装Apache
由于 CentOS 已经封装了 Apache,直接运行安装:
[root@localhost ~]# yum install httpd
同样配置系统让 Apache 随系统启动:
[root@localhost ~]# chkconfig --levels 235 httpd on
[root@localhost ~]# /etc/init.d/httpd start
此时已经可以访问你的服务器,不出意外的话,能够看到 “Apache 2 Test Page powered by CentOS” 的测试页面。如下图所示
注意,如果其他机器访问这台服务无法显示这个页面,而直接在这台服务器上可以访问的话,一般情况下是 CentOS 自带的防火墙禁止了。
处理方式:
- 你只需要进入防火墙,将 “WWW” 对应的 “80” 端口打开即可。
-
执行命令:
[root@localhost ~]#iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80-j ACCEPT
注意:在 CentOS 中 Apache 的默认根目录是 /var/www/html,配置文件 /etc/httpd/conf/httpd.conf。其他配置存储在 /etc/httpd/conf.d/ 目录。
1.3、安装PHP
输入如下指令安装 PHP:
[root@localhost ~]# yum install php
需要重新启动 Apache 服务:
[root@localhost ~]# /etc/init.d/httpd restart
1.4、测试PHP相关信息
这步实际上可以省略,但是为了测试是否安装成功,你可以新建一个 PHP 页面进行测试,使用 vim 编辑器新建:
[root@localhost ~]# vi /var/www/html/info.php
按 “i” 键进行编辑,输入:
<?php
phpinfo();
?>
此时你可以访问你的站点地址,例如 “http://localhost/info.php”,查看是否能看到相关的 PHP 信息
看到这样的图,就说明 PHP 安装成功了。
1.5、将PHP模块和MySql模块关联起来
还需要将 PHP 和 MySQL 关联起来,才能正常工作。搜索模块:
[root@localhost ~]# yum search php
安装相关模块:
[root@localhost ~]# yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
需要重启 Apache 模块才能生效:
[root@localhost ~]# /etc/init.d/httpd restart
再次刷新刚才建立的 “info.php” 页面,往下拉找到相关 MySQL 模块,看是否检测到相关信息。
如果看到如上图相关信息,则说明 MySQL 工作正常了。
1.6、安装phpMyAdmin管理数据库
这步不是必须的,但对于系统的调试差错很有帮助,建议安装。
phpMyAdmin是一个Web界面,通过它可以管理你的MySQL数据库。
首先,我们使我们的CentOS 系统的RPMForge软件库phpMyAdmin是不是官方的CentOS 6.0库:
导入rpmforge的GPG密钥:
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
x86_64 系统安装命令:
yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
i386 系统安装命令:
yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
现在可以安装phpMyAdmin如下:
yum install phpmyadmin
现在,我们配置phpMyAdmin。改变Apache的配置,使phpMyAdmin连接,而不仅仅是从localhost(注释掉允许) :
vi /etc/httpd/conf.d/phpmyadmin.conf
修改配置文件内容如下:
#
# Web application to manage MySQL
#
#
# Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1
#
Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin
下一步,我们改变在phpMyAdmin的身份验证 cookie ,HTTP:
vi /usr/share/phpmyadmin/config.inc.php
文件中修改内容如下:
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = ‘http’;
[...]
重新启动Apache:
/etc/init.d/httpd restart
之后,您可以根据访问phpMyAdmin http://localhost/phpmyadmin/管理数据库。
至此,DB Server 安装成功,这时可用关闭Apache提高Mysql在系统资源的使用率:
[root@localhost ~]# chkconfig --levels 235 httpd off
[root@localhost ~]# /etc/init.d/httpd stop
2、Web Server安装
Apache版本:2.2
PHP版本:5.2
2.1、安装MySql
如1.1安装方式完全相同
2.2、安装Apache
如1.2安装方式完全相同
2.3、安装PHP
由于我们需要安装PHP5.2,而CentOS6.3提供的缺省安装方式的PHP是5.3版本(PHP5.3与PHP5.2有较大的更新,不少之前的应用程序在PHP5.3上不可用)
所以我们需要使用第三方包含PHP5.2的RPM的YUM repo。Atomic YUM repo有两个PHP5.2和5.3的RPM。在启用Atomic YUM repo后,排除PHP5.3的RPM,然后再安装PHP5.2的RPM。
启用Atomicorp repo
wget -q -O - http://www.atomicorp.com/installers/atomic | sh
排除PHP5.3的RPM
vi /etc/yum.conf
在配置文件中增加如下内容
exclude=php-*5.3*
安装PHP5.2
arch=$(uname -m)
yum install php-common.$arch php-gd.$arch php-soap.$arch php-cli.$arch php-pdo.$arch php-mhash.$arch php-bcmath.$arch php-imap.$arch php-mcrypt.$arch php-xml.$arch php-devel.$arch php.$arch php-mysql.$arch php-mbstring.$arch php-xmlrpc.$arch -y
如果顺利,就完成PHP5.2的安装了。
当然这里有个问题,如果Atomic repo修改对应PHP版本RPM该怎么办?一个完整的解决方案就是在本地建立YUM repo库(具体方法见如何建立本地yum repo库)
2.5、将PHP模块和MySql模块关联起来,和phpmyadmin安装
与1.5、1.6完全一致即可
2.6、关闭Mysql服务
[root@localhost ~]# chkconfig --levels 235 mysqld off
[root@localhost ~]# /etc/init.d/mysqld stop
四、小结
至此,WebServer与DBServer的LAMP环境均已建设完成。
当然,到这一步只是完成软件安装,之后Apache、php、mysql均需要再配置来满足应用的需要,提供更好的效能。这些将在之后的文档中进行说明。
参考文献:
http://www.cnblogs.com/linuxer/archive/2011/09/21/2272542.html
http://shellboy.com/install-php-52-on-rhel-centos-6.html
http://www.fantxi.com/blog/archives/enable-remote-access-mysql-centos/