Nginx+Php-fpm+MySQL+Redis源代码编译安装指南

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介:

说明:本教程主要包括以下三个部分:

1. 源代码编译安装Nginx

2. 源代码编译安装php以及mysql、redis扩展模块

3. 配置虚拟主机

文中所涉及安装包程序均提供下载链接,欢迎使用

运行环境以及前置条件:Ubuntu 12.04 LTS 已安装g++编译环境

所有源程序路径位于:root@ubuntu:/home/shihai/Desktop/Nginx文件夹下,如下图所示:

\

\

程序安装路径位于:/usr/local文件夹下

\

\

第一部分:安装Nginx

安装Nginx前需要安装依赖库PCRE库、zlib库、SSL库

安装PCRE库——为了rewrite

pcre库下载地址

tar –zxvf pcre-8.21.tar.gz

cd pcre-8.21

./configure --prefix=/usr/local/pcre-8.21

make

make install

安装zlib库——为了gzip压缩

zlib下载地址

tar –zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure --prefix=/usr/local/zlib-1.2.8

make

make install

安装ssl库——支持ssl加密

openssl下载地址

tar -zxvf openssl-1.0.1c.tar.gz

cd openssl-1.0.1c

./config --prefix=/usr/local/openssl-1.0.1

make

make install

安装nginx——服务器软件

nginx下载地址

tar -zxvf nginx-1.2.8.tar.gz

cd nginx-1.2.8

./configure --prefix=/usr/local/nginx-1.2.8 \

--with-pcre=../pcre-8.21/ \

--with-zlib=../zlib-1.2.8/

make

make install

设定nginx启动的配置文件

/usr/local/nginx-1.2.8/sbin# ./nginx -c /usr/local/nginx-1.2.8/conf/nginx.conf

/usr/local/nginx-1.2.8/sbin# ./nginx -s reload

查看nginx进程

ps –ef|grep nginx

\

打开localhost

当你看到上图所示内容时,说明Nginx服务器已经安装成功

\\

 

第二部分:安装php以及mysql、redis扩展模块

安装ncurses——安装mysql前置条件:

ncurses下载地址

tar -zxvf ncurses-5.4.tar.gz

cd ncurses-5.4

./configure

make

make install

安装mysql——此处使用是源码包编译安装

mysql下载地址

tar -zxvf mysql-5.1.73.tar.gz

cd mysql-5.1.73

./configure --prefix=/usr/local/mysql-5.1.73

make

make install

 

安装curl库——用于curl请求

curl库下载地址

tar -zxvf curl-7.39.0.tar.gz

./configure --prefix=/usr/local/curl-7.39.0

make

make install

安装php

php下载地址

tar -zxvf php-5.2.14.tar.gz

gunzip php-5.2.14-fpm-0.5.14.diff.gz

patch -d php-5.2.14 -p1 < php-5.2.14-fpm-0.5.14.diff

cd php-5.2.14

./configure --prefix=/usr/local/php-5.2.14\

--enable-fastcgi \

--enable-fpm \

--enable-sockets \

--enable-mbstring \

--with-mysql=/usr/local/mysql-5.1.73 \

--with-mysqli=/usr/local/mysql-5.1.73/bin/mysql_config\

--with-pdo-mysql=/usr/local/mysql-5.1.73 \

--with-curl=/usr/local/curl-7.39.0 \

--with-openssl=/usr/local/openssl-1.0.1 \

--with-mcrypt

make

make install

 

启动php-fpm使用如下命令:

/usr/local/php-5.2.14/sbin# ./php-fpm start

启动php-fpm的时候出现
Startingphp_fpm Dec 29 15:27:32.502790 [ERROR] fpm_unix_conf_wp(), line 124: pleasespecify user and group other than root, pool 'default'

解决办法:进入目录:/usr/local/php-5.2.14/etc只需要修改php-fpm.conf

Unix user of processes
<!-- <value name="user">nobody</value> -->

Unix group of processes
<!-- <value name="group">nobody</value> -->

将<!––>去掉即可。至于user/group根据实际情况修改(www)。
重新启动 /usr/local/php-5.2.14/sbin# ./php-fpm restart 成功了

\

\

安装redis扩展模块

redis下载地址

unzip phpredis-master.zip

exportPATH=/usr/local/php-5.2.14/bin/:$PATH

cp -r phpredis-master php-5.2.14/ext/

cd php-5.2.14/ext/phpredis-master

phpize

./configure--with-php-config=/usr/local/php-5.2.14/bin/php-config

make

make install

扩展库路径:/usr/local/php-5.2.14/lib/php/extensions/no-debug-non-zts-20060613/

在php扩展库路径下,可以找到编译生成的redis扩展库文件redis.so

打开路径/usr/local/php-5.2.14/lib/php.ini下的php.ini文件,使用命令如下:

vim php.ini

文件内容快速查找(按下“N”可以查找下一个匹配位置),使用命令如下:

:?extension

\\

找到如图所示的指定位置后插入以下内容:

extension = redis.so

php会自动到扩展库路径下加载redis.so文件

如果没找到php.ini文件,可以全盘搜索该文件,使用命令如下:

find / -name php.ini

搜索结果显示此路径下存在/etc/php5/cli/php.ini文件,于是拷贝至/usr/local/php-5.2.14/lib,使用命令如下:

/usr/local/php-5.2.14/lib# cp /etc/php5/cli/php.ini php.ini

此处需要重启php-fpm才能生效,使用命令如下:

/usr/local/php-5.2.14/sbin# ./php-fpm restart

第三部分:配置nginx虚拟主机

新建虚拟主机配置文件目录

/usr/local/nginx-1.2.8# mkdir vhosts

cd vhosts

touch scott.qq.com.conf

vim scottshi.qq.com.conf

输入以下内容配置自定义虚拟主机:

server {

listen 8001;/*监听端口号*/

server_name scott.qq.com;/*域名*/

access_log/usr/local/nginxweb/htdocs/access.log;/*站点访问日志*/

location / {

root /usr/local/nginxweb/htdocs/;/*页面文件目录*/

index index.php index.html index.htm;

}

error_page 500 502 503 504 /50x.html;/*服务器错误页面*/

location = /50x.html {

root html;

}

# pass the PHP scripts to FastCGI serverlistening on 127.0.0.1:9000

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000; /*Nginx转发请求地址*/

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME/usr/local/nginxweb/htdocs/$fastcgi_script_name;

include fastcgi_params;

}

location ~ /\.ht {

deny all;

}

}

保存退出后,进入nginx的配置文件nginx.conf

/usr/local/nginx-1.2.8/conf# vim nginx.conf

与默认server层级并列且位于http层级之内,添加如下内容,使得自定义虚拟主机生效:

include /usr/local/nginx-1.2.8/vhosts/*;

保存退出后,重启nginx服务器,重新载入配置文件,使用命令如下:

/usr/local/nginx-1.2.8/sbin# ./nginx –s reload

 

编写php测试页面:

进入目录/usr/local/nginxweb/htdocs/,新建test.php文件,输入test.php页面内容:

<?php

Phpinfo();

?>

保存退出

使用浏览器,访问以下地址:

scott.qq.com:8001/test.php

此页面会显示配置php时的指令还有各个功能模块,包括fastcgi、mysql、curl、redis等

\

\

\

\

http://www.2cto.com/os/201411/350799.html


本文转自茄子_2008博客园博客,原文链接:http://www.cnblogs.com/xd502djj/p/4654843.html,如需转载请自行联系原作者。


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
14天前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
64 14
|
11天前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
51 7
|
1月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
138 26
|
20天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
151 7
|
1月前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
1月前
|
关系型数据库 MySQL PHP
php实现一个简单的MySQL分页
通过本文的详细步骤和代码示例,我们实现了一个简单的PHP MySQL分页功能。主要步骤包括计算总记录数、设置分页参数、查询当前页的数据以及生成分页链接。这种分页方式适用于大多数Web应用,能够有效提升用户体验和页面响应速度。
34 4
|
1月前
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效交互:从基础到实践####
本文深入探讨了PHP与MySQL数据库之间的高效交互技术,涵盖了从基础连接到高级查询优化的全过程。不同于传统的摘要概述,这里我们直接以一段精简代码示例作为引子,展示如何在PHP中实现与MySQL的快速连接与简单查询,随后文章将围绕这一核心,逐步展开详细讲解,旨在为读者提供一个从入门到精通的实战指南。 ```php <?php // 数据库配置信息 $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "test_db"; // 创建连接 $conn = new mysqli($se
35 0
|
2月前
|
关系型数据库 MySQL PHP
PHP与MySQL的深度整合:构建高效动态网站####
在当今这个数据驱动的时代,掌握如何高效地从数据库中检索和操作数据是至关重要的。本文将深入探讨PHP与MySQL的深度整合方法,揭示它们如何协同工作以优化数据处理流程,提升网站性能和用户体验。我们将通过实例分析、技巧分享和最佳实践指导,帮助你构建出既高效又可靠的动态网站。无论你是初学者还是有经验的开发者,都能从中获得宝贵的见解和实用的技能。 ####
31 0
|
NoSQL PHP Redis
Mac PHP安装Redis扩展
php安装redis的扩展 采用pecl命令进行安装; pecl命令,在使用brew 安装php时,已经为我们安装上了,这里我们直接使用即可。 我们先进入php的bin目录看下命令是否存在,对应路径如下: cd /opt/homebrew/Cellar/php@7.3/7.3.32 这里的7.3为我通过brew install [php@7.3]安装的php具体版本号,大家可以通过ls命令查看文件夹下是否存在pecl命令
1463 0
|
NoSQL PHP Apache
windows下PHP安装Redis扩展不成功的可能原因
windows下PHP安装Redis扩展不成功的可能原因
526 0
windows下PHP安装Redis扩展不成功的可能原因