展会信息港展会大全

CentOS 7下LAMP一键安装
来源:互联网   发布日期:2015-08-20 10:13:51   浏览:1686次  

导读: 前不久 CentOS 更新到版本 CentOS 7.0.1406,为了支持此版本,LAMP 一键安装脚本做了大量的更新和测试,并遇到了不少问题,在此一一记录下来。 由于 CentOS 7 将 service 重定向为 systemctl ,导致开机自启动脚本有的需要重写,这个过程也耗费了不少时间测...

LAMP

前不久 CentOS 更新到版本 CentOS 7.0.1406,为了支持此版本,LAMP 一键安装脚本做了大量的更新和测试,并遇到了不少问题,在此一一记录下来。

由于 CentOS 7 将 service 重定向为 systemctl ,导致开机自启动脚本有的需要重写,这个过程也耗费了不少时间测试。同时,原先在 CentOS 6 存在的一些依赖包,在 CentOS 7 中不存在了,比如 libc-client-devel,这是安装 php-imap 扩展所必须的依赖,少了它编译 PHP 的扩展 imap 时必然会出错,于是只能手动编译安装 imap-2007f ,并指定 imap 扩展的路径。

去掉了一些在新旧 CentOS 都不存在的依赖包,比如 libmcrypt-devel,并全部编译安装最新版。

其中一些最主要的更新,列举如下。

1、获取公网 IP 的方式变更

在 CentOS 7 中,默认没有安装 ifconfig ,也就是依赖包 net-tools,所以将原来从 ifconfig 获取 IP 变更为 curl 外链来获取 IP。

所以,安装本脚本,务必要保证联网。

2、手动安装一些依赖包

这些依赖包包括 pcre、libiconv、libmcrypt、mcrypt、re2c、libedit、imap。

在 CentOS 5 中 pcre 版本过低会导致编译 Apache 失败;MySQL 要使用 readline 功能,编译安装 libedit;PHP 的扩展 imap,依赖 libc-client 共享库,编译安装 imap-2007f 等等。

其中有些报错信息网上查到也语焉不详,尤其是中文网站。所以在此列举一下。

编译 PHP 时出错:

configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.

就是 imap 扩展缺少依赖包导致的。编译安装 imap-2007f 步骤:

wget ftp://ftp.cac.washington.edu/imap/imap-2007f.tar.gz

tar -zxf imap-2007f.tar.gz

cd imap-2007f

make lr5 PASSWDTYPE=std SSLTYPE=unix.nopwd EXTRACFLAGS=-fPIC IP=4

rm -rf /usr/local/imap-2007f/

mkdir /usr/local/imap-2007f/

mkdir /usr/local/imap-2007f/include/

mkdir /usr/local/imap-2007f/lib/

cp c-client/*.h /usr/local/imap-2007f/include/

cp c-client/*.c /usr/local/imap-2007f/lib/

cp c-client/c-client.a /usr/local/imap-2007f/lib/libc-client.a

备注:在 64 位下编译时 make 参数需要带 EXTRACFLAGS=-fPIC ,在 32 位下则不需要。

同时,在 CentOS 7 下编译 PHP 的 imap 扩展时,添加如下参数:

--with-imap=/usr/local/imap-2007f

--with-imap-ssl

在 CentOS 6 下编译时,由于已经安装了依赖包 libc-client-devel ,所以参数如下:

--with-imap

--with-imap-ssl

--with-kerberos

3、新增一些判断函数

增加了一些判断函数,比如是否为 64 位,是否为 CentOS 7 等。

4、更新启动脚本

Apache 的启动脚本 /etc/init.d/httpd 变更,拷贝于 /usr/local/apache/bin/apachectl 文件,同时为了 /etc/init.d/httpd status 能够使用,新增了配置文件 /usr/local/apache/conf/extra/httpd-info.conf 。

5、CentOS 7 下可能会遇到的问题

安装 LAMP 完成后,无法用 IP 访问网站。查看进程也发现了 httpd 和 mysqld 也启动了,防火墙貌似也关闭了,ping 也没问题,但就是无法访问。

经过一番排查,还真就是 CentOS 7 最新的 firewalld 引起的问题。这时就要用经典的 iptables-services 来替代 firewalld 了。

yum -y install iptables-services

systemctl mask firewalld

systemctl enable iptables

systemctl stop firewalld

systemctl start iptables

6、PHP组件支持

到目前为止,我所见过的 LAMP、LNMP、LANMP 等一键安装脚本,对 PHP 组件的支持都不全面,有很多缺失的,最典型的就是 imap、ldap。

为了支持这些组件,我做了大量的改进和测试。这里放一张 PHP 探针截图,支持所有组件,以及 4 种第三方组件。

PHP ext

虽然 LAMP 一键安装脚本已经做了大量测试,但还是会有不完善的地方,如果你在使用过程中遇到问题,可反馈至 http://teddysun.com/lamp ,提交评论,或者附带安装日志 lamp.log 发送邮件至 i[at]teddysun.com。

赞助本站

人工智能实验室

相关热词: CentOS LAMP 一键 安装

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港