设为首页 收藏本站
查看: 1644|回复: 0

源码编译Nginx&MySQL&PHP实现LNMP

[复制链接]

尚未签到

发表于 2015-11-16 13:15:56 | 显示全部楼层 |阅读模式
  本实验系统为CentOS_6.4-x86_64,安装软件包为Nginx-1.9.5,MySQL-5.6.24,php-7.0.0RC4,所有包均采用源码编译。

一、安装Nginx:

1、解决依赖关系,编译安装nginx需要事先需要安装开发包组”Development Tools”和 “Development Libraries”。同时,还需要安装openssl-devel、pcre-devel包:

DSC0000.jpg

DSC0001.jpg

2、添加运行nginx服务进程的用户nginx:

DSC0002.jpg

接着开始编译和安装:

DSC0003.jpg

DSC0004.jpg

3、为nginx提供SysV init脚本,而后为此脚本赋予执行权限,添加至服务管理列表,并让其开机自动启动,启动服务并测试了:

DSC0005.jpg

新建文件/etc/rc.d/init.d/nginx,内容如下:

DSC0006.jpg

DSC0007.jpg

DSC0008.jpg

4、测试是否成功启动

DSC0009.jpg

DSC00010.jpg

二、源码安装mysql-5.6.24

1、准备数据存放的文件系统

新建一个逻辑卷,并将其挂载至特定目录即可:这里的挂载目录为/mnt/SQLdata ,


[iyunv@DQ ~]# pvcreate /dev/sda6
[iyunv@DQ ~]# vgcreate sqlstore /dev/sda6
[iyunv@DQ ~]# lvcreate -n storelv -L 1G sqlstore
[iyunv@DQ ~]# mke2fs -j /dev/sqlstore/storelv
[iyunv@DQ ~]# mkdir /mnt/SQLdata
[iyunv@DQ ~]# mount /dev/sqlstore/storelv /mnt/SQLdata/
  2、新建用户以安全方式运行进程:

DSC00011.jpg

3、首先需要安装cmake,这里选用二进制包,解压即可使用

DSC00012.jpg

4、编译安装mysql-5.6.24

DSC00013.jpg

DSC00014.jpg

DSC00015.jpg

DSC00016.jpg

5、提供配置文件,将mysql目录下support-files/my-default.cnf复制到/etc,具体内容需要手动添加

thread_concurrency的值为系统CPU个数乘以2,这里使用如下简单配置:

DSC00017.jpg

6、为mysql提供sysv服务脚本,添加至服务列表,而后就可以启动服务测试使用了。


[iyunv@DQ mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[iyunv@DQ mysql]# chmod +x !$
chmod +x /etc/init.d/mysqld
[iyunv@DQ mysql]# chkconfig --add mysqld
[iyunv@DQ mysql]# chkconfig mysqld on
  7、为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:

输出mysql的man手册至man命令的查找路径;输出mysql的头文件至系统头文件路径/usr/include;输出mysql的库文件给系统库查找路径;而后让系统重新载入系统库;将mysql添加到PATH环境变量,让系统可以直接使用的相关命令。

DSC00018.jpg

说明:在make进行到14%时,报错缺少库文件

DSC00019.jpg

于是查看系统上已安装的zlib包,在执行yum list all |grep zlib查看其它相关包,选择zlibrary-devel用yum进行安装,再次尝试编译不再报错

DSC00020.jpg

多出来的3个包为yum解决依赖关系时自动安装

DSC00021.jpg

三、编译安装php-7.0

1、解决依赖关系:请配置好yum源后执行如下命令(本机上已经配好epel源,也可以挂载本地系统光盘)

DSC00022.jpg

如果想让编译的php支持mcrypt、mhash扩展和libevent,此处还需要安装如下几个rpm包:

DSC00023.jpg

另外,也可以根据需要安装libevent,系统一般会自带libevent,但版本有些低。因此可以升级安装,它包含libevent和libevent-devel两个rpm包。

说明: libevent是一个异步事件通知库文件,其API提供了在某文件描述上发生某事件时或其超时时执行回调函数的机制,它主要用来替换事件驱动的网络服务器上的event loop机制。目前来说, libevent支持/dev/poll、kqueue、select、poll、epoll及Solaris的event ports。

2、解压编译PHP-7.0

首先下载源码包至本地目录https://downloads.php.net/

说明: 解压完成后,切换到源码目录下,查看一下有没有README和INSTALL文档,如果有其中一般会有编译配置步骤说明,而后在编译之前先查看一下帮助选项,这里列出下面编译用到的几个选项


[iyunv@DQ php-7.0.0RC4]# ./configure --help
--enable-fpm            Enable building of the fpm SAPI executable
--with-config-file-path=PATH
Set the path in which to look for php.ini [PREFIX/lib]
--with-config-file-scan-dir=PATH
Set the path where to scan for configuration files
--with-openssl=DIR      Include OpenSSL support (requires OpenSSL >= 0.9.8)
--with-freetype-dir=DIR GD: Set the path to FreeType 2 install prefix
--with-kerberos=DIR     IMAP: Include Kerberos support. DIR is the Kerberos install prefix
--with-mcrypt=DIR       Include mcrypt support
--with-mysqli=FILE      Include MySQLi support.  FILE is the path to mysql_config.  If no value or mysqlnd is passed as FILE, the MySQL native driver will be used
--with-libxml-dir=DIR    DOM: libxml2 install prefix
DSC00024.jpg

DSC00025.jpg

3、为php提供配置文件;为php-fpm提供Sysv init脚本,并将其添加至服务列表;为php-fpm提供配置文件:

DSC00026.jpg

注意:php7中www.conf这个配置文件配置phpfpm的端口号等信息,如果修改默认的9000端口号需在这里改,再改nginx的配置

4、编辑php-fpm的配置文件:/usr/local/php/etc/php-fpm.conf配置fpm的相关选项为实际所需要的值,并启用pid文件,启动php-fpm并验正

DSC00027.jpg

四、整合nginx和php

1、编辑/etc/nginx/nginx.conf,启用如下选项:

DSC00028.jpg

并在所支持的主页面格式中添加php格式的主页,类似如下:

DSC00029.jpg

2、重新载入nginx的配置文件,在/usr/html新建index.php的测试页面,测试php是否能正常工作

DSC00030.jpg

DSC00031.jpg

五、安装xcache,为php加速:

Xcache 是 php 底层的缓存,它将PHP程式编译成字节码(byte code),再透过服务器上安装对应的程式来执行PHP脚本。而 memcached 是应用层缓存,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

xcache 是不需要修改PHP程序的,只要安装了就可以自动为程序加速,而memcached则需要修改程序的,需要在操作数据库之前先询问下 memcached 有没有缓存数据,如果有且没有过期则不再访问数据库,以达到减少数据库查询的目的。

注:LAMP 的瓶颈在M即数据库,以新的KVDB代替旧的关系数据库可以直接提高web应用程序的性能。  

1、解压安装

DSC00032.jpg

make报错,目前还没有找到原因,参见http://xcache.lighttpd.net/,可能xcache-3.2.0还没有增加php7.0的支持,之前编译PHP5.6.8时安装xcache-3.2.0按照此步骤成功扩展了该模块

DSC00033.jpg

正确安装结束时,会出现类似如下行:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

再次尝试编译php-5.6.14,安装xcache时仍旧报错,错误与php7中相同

DSC00034.jpg

DSC00035.jpg

DSC00036.jpg

版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139941-1-1.html 上篇帖子: centos5.3搭建安全高效的LNMP服务器 下篇帖子: LNMP环境搭建——Apache篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表