阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7源码编译安装PHP5.6和Nginx1.7.9及MySQL(搭建LNMP环境)

254次阅读
没有评论

共计 4763 个字符,预计需要花费 12 分钟才能阅读完成。

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

想搭建一个 lnmp 的备份服务器…源码编译安装,各种依赖包纠结,所以呢,mariadb(mysql) 是 yum 安装的,php5.6 和 nginx1.7.9 是源码安装的…装着装着,在跑./configure 脚本的时候,又忘记启用 enable curl 等等常用扩展鸟,装完后,又去源码目录编译扩展,动态添加扩展…

一、安装 mariadb(mysql) 服务  yum install mariadb mariadb-server mariadb-devel

自从 mysql 被 Oracle 公司收购后,mysql 就有闭源收费的风险,所以,就有了社区版改装的 mysql 分支 mariadb 来规避这个风险。centos7 开始,yum 源的 mysql 全部都替换成 mariadb 的了。所以,mariadb 是 mysql 的一个分支。不过貌似听说,google 有一部分数据库也都已经迁移到 mariadb 了,真是要鄙视一下 oracle 公司,oracle 数据库都这么赚了,还打着 mysql 的主意…

二、源码编译安装 php5.6

1. 下载 php5.6        wget http://cn2.php.net/distributions/php-5.6.5.tar.gz        纠结的是,刚安装好的 centos 7 连 wget 都木有,所以 yum -y install wget 然后再下载,,,

2. 解压  tar -xvzf php-5.6.5.tar.gz            进入  cd php-5.6.5

3. 运行./configure 脚本,启用需要的扩展模块,并指定 php 的安装目录  ./configure –enable-fpm –enable-mbstring –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd

这一步很是关键的,我忘记指定–prefix,它默认也是给我安装在 /usr/local/php,不过还是指定一下比较妥当。还有,在这里的时候只记得安装 mbstring 和 fpm 扩展,忘记 curl 和 intl(有一个东东是用 yii2 框架做的,需要介个东东) 了,不过忘了也木有关系,到时候在编译扩展,动态安装进去。不过为了能顺利一口气等下输出 phpinfo 页面,能让 nginx 支持 php,一定要把–enable-fpm 加上去,fpm 是 php 的一个脚本管理器,貌似说 php5.3 版本以前,fpm 只是一个补丁 patch,要去 patch 这个目录找他,php5.3 后呢,据说是转正了,php 里面已经集成了,不是第三方包了。只要跟上–enable-fpm 安装完后就可以跑鸟…php 链接 mysql 呢,这个东东也是必须要哒,–with-mysql 是指定 mysql 的头文件,可以 whereis mysql 然后指定 mysql 的安装目录,不过 php5.5 后,直接用 php 提供的 mysql 驱动 mysqlnd 就口以了,据说这个驱动比 mysql 写的那个性能要好。。。巴拉巴拉。。。没有超大流量的站点,我是没能体会到……………….

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

php5.6 ./configure

配置完后,如果没有错误的话,就话看到成功的信息了。如果提示缺什么扩展就装上 xxx-devel 开发包,再运行./configure

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

./configure 结果

然后就是编译 make 了,我的服务器是 3.5G 内存的,双核 cpu 来着,花了貌似十多分钟编译吧

编译完成后,就是 make install 安装滴啦…

make install 结果

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

make install

运行 php - v 就口以看到 php 的版本信息啦,php 5.6 最新版就安装上啦。

ok,到这里差不多的啦,但是还有 php 的配置文件 php.ini 呢,复制一份安装目录下的 php.ini-development 这个配置文件模板到 php 的目录。yum 安装的 php,php 会去 /etc/php.ini 下找自己的配置文件。源码安装的配置文件放哪里的呢。。。写一个 phpinfo() 的页面,然后打开这个页面,google chrome 下 ctrl + f 查找一下 php.ini 就会看到 php 是去哪里找的 php.ini,然后就 cp 这个 php.ini-development 到这个目录下,并改名成 php.ini 就口以了。当然,貌似 php.ini 一般是在 /etc/php.ini 或者 /usr/local/lib/php.ini 中,不对的话,查找一下是最靠谱的解决办法。

为了要让 nginx 支持 php,需要 fastcgi 处理有关 php 的页面,而 php 就需要 php-fpm 这个组件来支持,这个跟 appache 支持 php 是两个不同的原理。上面安装的时候已经./configure –enable-fpm 啦,所以 fpm 已经开启了。当然,我们还需要配置一下 php-fpm,在安装 php 的时候,已经为我们生成了一个配置模板了,在 /usr/local/etc/php-fpm.conf.default 了,只要复制这个模板并改名为 php-fpm.conf 就口以了,进去把 daemonize 改成 yes,以后台服务的运行方式启动。然后捏,whereis php-fpm,这个是个可执行文件,直接执行 php-fpm 就可以运行了,然后 netstat -an| grep php-fpm,看到,果然 9000 号端口在监听啦

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

php-fpm listening

三、源码编译安装 nginx1.7.9

1. 下载 nginx 最新版 wget http://nginx.org/download/nginx-1.7.9.tar.gz

2. 解压 && 进入 tar -xvzf nginx-1.7.9.tar.gz

cd nginx-1.7.9

3. 运行./configure 脚本,指定安装目录      ./configure –sbin-path=/usr/local/nginx –conf-path=/usr/local/nginx/nginx.conf –pid-path=/usr/local/nginx/nginx.pid –with–http_ssl_module

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

nginx ./configure

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

nginx ./configure 结果

然后就设置完了,,,如果报错的话,一般就是找不到依赖,缺什么就 yum -y install xxx-devel,安装完后就口以了。第一次的时候,提示我缺少 pcre,介个东东是正则,rewrite 这样的模块是需要他来支持的,当然可以在 configure 加个选项–without 不安装系统推荐安装的模块就可以跳过这个错误继续安装了。但是,nginx 官方默认安装的模块还是都给装上,少了这个正则,等下 nginx 就没法匹配.php 结尾的文件,再交给 php-fpm 来处理了。

然后,就是编译 make 了。。。纠结的是,nginx 在 make 后,自动就给装上啦,不需要 make install 啦

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

nginx

nginx 成功安装啦

现在,就是要让 nginx 匹配,匹配到.php 结尾的文件,就通过 fastcgi 传给 php-fpm 来解析,解析完后再给 nginx 传给浏览器显示,刚才./configure 时已经指定了 nginx 配置文件地址

修改配置:vim /usr/local/nginx/nginx.conf

大概在 64 行左右,模板已经有支持 php-fpm 的配置了,去掉 #注释,然后重启一下 nginx 就可以了。

再回到 /usr/local/nginx/html 目录,编写一个 phpinfo() 的页面,然后在浏览器中访问这个页面,就能看到 php 和 nginx 的信息了:http://www.linuxidc.com/phpinfo.php

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

phpinfo

往下翻,看到 php 还有很多常用的扩展都没有装上的呢,比如 curl intl openssl 等等其他扩展。这是因为在 php ./configure 的时候,没有 enable 的原因。这些库有需要的时候,可以再去源码目录的 extentison 中编译安装,动态添加进去。

还有一个问题就是,装完后

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

php-mysql

mysql_connet 等系列函数用不了,这种 warning 信息,证明 mysql 驱动是装上了的。因为他毕竟不是报的 undefined function mysql_connet…,这种情况是因为 php 找不到 mysql.sock 的连接。启动 mariadb(mysql) 进入,输入 status,记住 unix socket 的路径

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

mysql.sock

然后把他配置到 php.ini 里面:

vim /usr/local/lib/php.ini 找到 mysql.default_socket,加上刚才的 sock 文件位置

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

mysql.default_socket

然后看看 phpinfo 页面,mysql 扩展中 mysql.default_socket 就有值了。最一开始是没有的,配置了之后才有的,当然如果是 yum 安装的话,不用去配置,php 也是找的到这个 mysql.sock 的。当然 mysqli 和 pdo-mysql 都要这样配一下

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

phpinfo mysql

然后,就能正常输出了

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

mysql 连接成功

因为不是 yum 安装的,nginx 还没有成为系统服务,在 /etc/rd.d/init.d 下新建一个 nginxd 的脚本,方便开机自启以及使用 service nginxd start/stop/restart 来管理 nginx

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境)

service nginxd start

ok,终于完成了 lnmp 环境的搭建!nginx 也支持 php 了。nginx 和 php 都是源码方式安装的,mariadb 是用 yum 源安装的。好好体会一下 nginx 的魅力以及最新版 php 带来的新功能,准备用这个服务器做个备份的,有想过主从服务器,分布式部署,负载均衡,可惜这两台云服务器不在一个内网。。。慢慢思考吧。加油。

Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL  http://www.linuxidc.com/Linux/2014-05/102351.htm

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 6.4 下的 LNMP 生产环境搭建及安装脚本 http://www.linuxidc.com/Linux/2013-11/92428.htm

生产环境实用之 LNMP 架构的编译安装 +SSL 加密实现 http://www.linuxidc.com/Linux/2013-05/85099.htm

LNMP 全功能编译安装 for CentOS 6.3 笔记 http://www.linuxidc.com/Linux/2013-05/83788.htm

CentOS 6.3 安装 LNMP (PHP 5.4,MyySQL5.6) http://www.linuxidc.com/Linux/2013-04/82069.htm

在部署 LNMP 的时候遇到 Nginx 启动失败的 2 个问题 http://www.linuxidc.com/Linux/2013-03/81120.htm

Ubuntu 安装 Nginx php5-fpm MySQL(LNMP 环境搭建) http://www.linuxidc.com/Linux/2012-10/72458.htm

更多 CentOS 相关信息见 CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-12/126200.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4763字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中