CentOS 5.5 x86_64 平台下的 LNMP

被 x86_64 平台弄的蛋都碎了,各种依赖问题,各种冲突。先前使用 epel 装了个 nginx ,还凑或着用;后来需要加入 mysql,使用 mysql.com 的rpm 包安装也没有问题(使用 yum 安装各种 error),后来需要 php 的支持,于是悲剧就来了。于是就有了这篇记录。

更新,使用的是 mirrors.163.com 的,详情见附录。

# yum update

安装 epel
epel 的解释请看附录。

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

安装 remi
remi 的解释请看附录。

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

添加 nginx-stable,php-fpm 的源

# vi /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx
baseurl=http://centos.alt.ru/repository/centos/5/$basearch/
enabled=1
gpgcheck=0

# yum makecache

安装 nginx,php*,mysql

# yum -y install nginx php php-{fpm,gd,xml,xmlrpc,mbstring,mysql,imap,cli} mysql{,-server}.x86_64

开启,开机自启

# service php-fpm start && chkconfig php-fpm on
# service nginx start && chkconfig nginx on
# service mysqld start && chkconfig mysqld on

注意 selinux,最起码是 permissive,个人建议在安装系统的时候就将其关闭;还有防火墙 iptables 的设置。

附录:

epel

epel(extra Packages for Enterprise Linux)是一个 yum 源,该源中有很多软件,针对RHEL设计的。系 Fedora 组织维护,适用于Centos,RHEL。使用:
i386
http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
x86_64
http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm

安装这个 rpm 包后会在 /etc/yum.repos.d/ 目录下生成两个 repo 文件,也就是相应的 epel 的源了。

remi

为 何用 remi 源更新 rhel 中内置的 PHP+MySQL (这个是在初始安装系统时需要勾选的)版本?自带的 PHP+MySQL 版本一般都比当前最新的稳定版低,想使用最新的稳定版本需要手动 便宜安装,耗时不用说了,还要解决令人头疼的一系列的软件的依赖关系,作为系统管理员希望找到便捷的升级 PHP+MySQL 版本的方法。remi 源针对 Fedora 和 rhel、CentOS 的更新源。remi 解决了相关软件的依赖关系,而且不会跟 Fedora 和 rhel、CentOS 原来的软件包冲突。 remi 使用 yum 自动从网络上下载需要更新的软件包进行更新。
下载和安装必须的rpm包

wget http://download.fedora.redhat.com/pub/epel/beta/6/i386/epel-release-6-5.noarch.rpm    
(注意remi需要使用EPEL,所以要安装epel的rpm包)
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

使用的时候

# cd /etc/yum.repos.d
# mv CentOS-Media.repo CentOS-Media.repo.bk
# mv CentOS-Base.repo CentOS-Base.repo.bk
# wget http://mirrors.163.com/.help/CentOS5-Base-163.repo
# ll
total 36
-rw-r–r– 1 root root 2341 02-14 21:04 CentOS5-Base-163.repo
-rw-r–r– 1 root root 2245 2010-04-26 CentOS-Base.repo.bk
-rw-r–r– 1 root root  626 2010-04-26 CentOS-Media.repo
-rw-r–r– 1 root root  954 2010-08-12 epel.repo
-rw-r–r– 1 root root 1054 2010-08-12 epel-testing.repo
-rw-r–r– 1 root root  148 02-24 13:20 nginx.repo
-rw-r–r– 1 root root  509 2009-05-05 remi.repo

rpmforge

还有一个比较好的第三方源:RPMForge,库现在已经拥有超过 10000种的 CentOS 的软件包,被CentOS社区认为是最安全也是最稳定的一个第三方软件库。

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
# rpm -ivh rpmforge-release-0.5.1-1.el5.rf.*.rpm
# ll
total 48
-rw-r–r– 1 root root 2407 02-24 21:03 CentOS5-Base-163.repo
-rw-r–r– 1 root root 2245 2010-04-26 CentOS-Base.repo.bk
-rw-r–r– 1 root root  626 2010-04-26 CentOS-Media.repo.bk
-rw-r–r– 1 root root  966 02-24 21:03 epel.repo
-rw-r–r– 1 root root 1054 2010-08-12 epel-testing.repo
-rw-r–r– 1 root root  739 2010-01-04 mirrors-rpmforge
-rw-r–r– 1 root root  148 02-24 13:20 nginx.repo
-rw-r–r– 1 root root  509 2009-05-05 remi.repo
-rw-r–r– 1 root root  448 02-24 21:08 rpmforge.repo
-rw-r–r– 1 root root  325 2010-01-04 rpmforge-testing.repo

因为官方提供的软件源,都是比较稳定和被推荐使用的。因此,官方源的顺序要高于第三方源的顺序。如何保证这个顺序,就需要安装 yum-priorities 这插件了。

# yum install yum-priorities

安装完后需要设置 /etc/yum.repos.d/ 目录下的 .repo 相关文件(如CentOS-Base.repo),在这些文件中插入顺序指令:priority=N (N为1到99的正整数,数值越小越优先)。
详细设置可以点击这里

参考自:http://mohamedhagag.wordpress.com/2011/01/04/simple-fast-install-of-nginx-with-php-on-centos-5-x/
http://blog.opendigest.org/show-751-1.html
http://www.ha97.com/2626.html
 

  • Mucid

    centos源太贫乏,只能自己编译安装LNMP,就体验到CentOS的痛苦了,EXT3分区,python版本才2.4.3,好多库缺少,文档缺失。
    还是换回ubuntuserver去。。

    • http://jaseywang.info jaseywang

      手动添加第三方的源应该就没问题了;文档的话,看 rh 的~

      • Mucid

        na,我怎么就没想到看rh的文档!!!……

        不过,centos不适合搞开发设计……