欢迎您来到腾讯云!积分商城

腾讯云腾讯云论坛

 找回密码
 立即注册
忘了密码?

扫一扫,访问微社区

快捷导航
搜索
查看: 7011|回复: 8

零基础 编译安装 nginx + php 环境 极其详细 小白版

[复制链接]

9

主题

7

好友

738

积分

版主

Rank: 10Rank: 10Rank: 10Rank: 10

云币
1149
威望
738
发表于 2015-9-16 17:20:16 |显示全部楼层 |未分类
很多人之前并没有接触linux系统,但同样渴望在linux下搭建服务,以及体验我们各个产品。Linux 当然是有着无与伦比的稳定性和高效率。很多人因为它看似复杂的命令行界面望而却步。
今天,我为大家一步一步 安装 nginx + php 实现 lemp 环境。 由于 mysql 对于我们接入sdk并没有什么大用处。 这里就暂时不讲mysql 的安装 。

本安装方法采用的业界最常见的编译安装nginx + php-fpm 方法, 因此完全可以应用于正常的企业环境中。 看似可能有点点的复杂 但按照本教程 一步一步来绝对没问题。 之后,使用过程中也很省心。 下面正式开始。

现在,你有的 仅仅是 从腾讯云购买了一台 云主机(cvm)。里面 可能会有一个操作系统(我用的centos6.3 32位的)。 以及root 账号和密码、还有 一个 提供给你的公网ip 地址。 其他的什么都没有 , 系统空空如也。

1.登陆系统
首先我们 需要登录 系统的 工具 。 这边 我使用的 是 CRT(SecureCRT) 这个远程工具 ,当然 你使用 xshell什么的 都可以 全凭个人习惯了。

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

这个软件上来 是这个界面的   点 file  下的 quick Connect 输入 IP 以及 root 账号 登录 , 进入之后会提示你 输入密码  输入密码后 进入 界面 是这个样子 (见下图)

密码零基础 编译安装 nginx + php 环境 极其详细 小白版

密码零基础 编译安装 nginx + php 环境 极其详细 小白版
这会儿小白同学又问了,  咦为啥你的是绿色的? 这个,可以去设置的。。默认的 那个 确实有点不好看 个人喜欢绿色这个风格。 但对于结果影响不大 这里就 不讲怎么弄了 。
总之你现在已经成功登陆到了 你的 系统中去了。

2.安装ftp服务
一会儿,我们需要把很多文件上传到服务器中, 所以配置一个ftp 服务器是很有必要的。
腾讯云的cvm为我们提供了 很多的yum源。 供我们 下载。 ftp 我们只需yum 安装即可。
不懂得同学 无脑 敲 下列命令

yum  -y install vsftpd   

之后 回车

  

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版
然后就出现 上面 这个 样子 的 界面了 。。。


这样我们的ftp 服务就安装完成了。

安装了 ftp 服务 需要启动它

我们 用   service vsftpd start 这个 命令 开启ftp 服务。如图:


零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版
开启了 ftp 服务 我们就可以 利用本地的 windows ftp上传工具 来 给你的 云主机 上传 文件了 。值得注意的是 root 用户 默认不能 作为ftp 用户来上传。 所以 我们需要 本地创建一个 用户 。

敲命令   useradd xiaoming  回车 之后 输入 passwd xiaoming  回车  后 输入你的 密码 和 确认 你的密码。   我用的密码比较简单就用 123456 这个密码吧

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

大体就是 这个样子的  中间 有个 警告。。。一开始我 两次密码 不一致 所以 让我 重新输入了。 后面 那个 警告 就是我密码设置的 太简单了 这个 。。 你们可以设置的难一点嘛。。


好了,现在你有了一个用户叫做 xiaoming  我们可以用他来给服务器上传文件了。

现在 需要我们操作  你本地 windows 了 。我们 需要一个 ftp上传工具。  这里 我用的是 FlashFXP 这个工具

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

进入后,大致是这个界面。 点击左上角  会话  之后,点快速连接 进入如下界面


零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版
点击 连接  即可  连接到 服务器

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版
之后你就可以把你的本地文件很方便的上传到你的服务器当中了。


因为我们没有配置ftp 服务器 所以上传的默认位置是你登录账号 xiaoming  的 家目录下 。

默认 我们上传的东西 都在这儿。  /home/xiaoming/ 这个 文件夹下。

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版
好了 至此 我们 的ftp 服务 也 建好了 。

3.基本的开发工具 安装

这一步 很简单  编译安装软件 需要提前安装编译环境 。 我们 可以直接 yum 获得。 照着我的 命令 直接敲 就对了。

yum -y groupinstall "Development tools" "Compatibility Libraries" 回车

yum -y install pcre-devel openssl-devel libxml2-devel bzip2-devel libcurl-devel  

好了 搞定  很简单吧 。

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


安装过程中  需要耐心等待 因为 要装很多 东西。


这俩命令输完就搞定了基本的编译环境下面就可以正式安装服务了。

4.安装nginx
我这边使用的版本是nginx-1.8.0.tar.gz 你当然可以使用更高的版本 无所谓的 。

直接利用刚才的ftp 把源码包上传到服务器上。

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

直接 拖过去 就可以 。


之后我们就可以在 服务器看到了

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版
敲 命令 cd  /home/xiaoming   
tar  xf nginx-1.8.0.tar.gz -C /usr/src/   
cd  /usr/src/nginx-1.8.0/  


之后 你可以 ls  看一下  当前目录是不是 这样的  

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

之后  

   1.添加 nginx 用户

groupadd -r nginx
useradd -r -g nginx nginx

你可能 收到 提示 已经有了 nginx 用户 和 组 这个无所谓  有了 更好。。


2.接着开始编译和安装:

./configure \
  --prefix=/usr/local/nginx \
  --sbin-path=/usr/local/nginx/sbin/nginx \
  --conf-path=/etc/nginx/nginx.conf \
  --error-log-path=/var/log/nginx/error.log \
  --http-log-path=/var/log/nginx/access.log \
  --pid-path=/var/run/nginx/nginx.pid  \
  --lock-path=/var/lock/nginx.lock \
  --user=nginx \
  --group=nginx \
  --with-http_ssl_module \
  --with-http_flv_module \
  --with-http_mp4_module \
  --with-http_stub_status_module \
  --with-http_gzip_static_module \
  --http-client-body-temp-path=/var/tmp/nginx/client/ \
  --http-proxy-temp-path=/var/tmp/nginx/proxy/ \
  --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
  --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
  --http-scgi-temp-path=/var/tmp/nginx/scgi \
  --with-pcre
回车

直接  复制粘贴 没啥 好说的

注意 :  当前 所在的目录 一定是  /usr/src/nginx-1.8.0/  这个 目录  就是我上面截图给你样子。


上面那个 没问题  就继续  敲命令 :

make && make install

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


这些都搞定  看到的 就是这个样子 。





3.nginx提供SysV init脚本:

利用  vim  /etc/rc.d/init.d/nginx
下面 这些都可以直接复制的
新建文件/etc/rc.d/init.d/nginx,内容如下:
#!/bin/bash
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/etc/nginx/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs() {
   # make required directories
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   options=`$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in $options; do
       if [ `echo $opt | grep '.*-temp-path'` ]; then
           value=`echo $opt | cut -d "=" -f 2`
           if [ ! -d "$value" ]; then
               # echo "creating" $value
               mkdir -p $value && chown -R $user $value
           fi
       fi
   done
}

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    sleep 1
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

而后为此脚本赋予执行权限:
chmod +x /etc/rc.d/init.d/nginx

添加至服务管理列表,并让其开机自动启动:
chkconfig --add nginx
chkconfig nginx on

而后就可以启动服务并测试了:
service nginx start

你也可以测试 一下

service nginx restart
确认一下 是否 真的  可以了
我的 出现了 这个 问题。。。

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

提示 我们 有个 文件夹 没创建 。 那就 创建 一下喽
  mkdir  -pv  /var/tmp/nginx/client/


零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

然后 就可以喽 ! 至此 我们 nginx 服务 也 配置好了 。

简单 测试 一下 嘛





cd  /usr/local/nginx/html/

ls 你会 看到

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


修改 其中的index.html 的内容

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

就 简单 写一句话 就好了  然后 现在 可以用 浏览器 访问下 你的 ip

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版
好了  现在 你的 nginx 配置 完成喽 。

是不是很激动  呢 ?

5.安装php fastcgi
下面开始 安装php  我们采用的安装包php-5.6.2.tar
1. 首先 还是 把 源码包 拷贝到服务器上面去。 利用ftp

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

2. 把 源码包解压缩 到 /usr/src/ 目录下



cd  /home/xiaoming

tar xf php-5.6.2.tar.gz -C /usr/src/

cd  /usr/src/php-5.6.2

ls

此时 你看到的 应该是这样。。

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


密密麻麻 很多 文件 。 不过不要紧,接下来操作很简单。

3..编译 安装
当然在编译前还给确认编译环境

保险起见,我们再装一个组
执行命令

yum -y groupinstall "X Software Development"


这句话可加可不加都不影响

之后复制下面这一串命令 (注意 这些是 一条命令 这些参数都要写上)

./configure --prefix=/usr/local/php --enable-fpm --enable-sockets --enable-sysvshm   --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-libxml-dir=/usr --enable-xml  --with-mhash  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-curl
---------------------------------分割线------------------------------------------------------------------------
下面这个参数 如果你还有 mysql 就把这句话加上 对应的 都是mysql的路径
--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config



执行 成功 会出现 如下 界面 :


零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


之后  
make & make intall

应该 会 开始 滚屏了

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


Php 编译时间会很长耐心等待下吧。



好了 经过一段时间 的 疯狂 滚屏 我们终于编译好了php

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版




4.为php提供配置文件

cp php.ini-production /etc/php.ini

5.为php-fpm提供Sysv init脚本,并将其添加至服务列表

cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on


6.为php-fpm提供配置文件:

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

7.编辑php-fpm的配置文件:

vim /usr/local/php/etc/php-fpm.conf
配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):





pm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pid = /usr/local/php/var/run/php-fpm.pid  

其中 这些 参数 根据你 服务器的性能进行 调整   

最后 一行的 pid 一定要 写成 那个样子

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


接下来就可以启动php-fpm了:
service php-fpm start

使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):
ps aux | grep php-fpm


零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


6.整合nginxphp5
1、编辑/etc/nginx/nginx.conf

vim /etc/nginx/nginx.conf

启用如下选项:
location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }


零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

注意到 这些 “#” 了么  把这些 把我 圈起来的 那些全都 删掉 前面的 “#

就成了 这样

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版



还是 这个文件

在所支持的主页面格式中添加php格式的主页,类似如下:
location / {
            root   html;
            index  index.php index.html index.htm;
        }


把 这个

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版
改为 这样:

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


2、编辑/etc/nginx/fastcgi_params

vim /etc/nginx/fastcgi_params

打开后 大概是这样的 :

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


之后 这个 文件 所有的 内容全部删除掉


零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

复制 粘贴 下面的 内容到这个文件



fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;


零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


保存 退出


3.而后重新载入nginx的配置文件:
service nginx reload



零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

7.测试
进入 网站根目录
cd  /usr/local/nginx/html/

编辑 一个 php 文件

vim test.php

内容如下:

<?php
phpinfo();
?>

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


保存 退出 即可 ;





之后我么你访问 网页  



零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版


看到这个页面, 此时大功告成 一个 比较专业级的环境就这样搭建好了


如果 ,你完整的按照以上这个步骤来并使用我们腾讯云的cvm  那么,完全可以搭建完成 。

这些是假设你是一个完全不会linux的小白的教程。其中还有一些知识需要你 百度学一下下  比如,如何使用vim编辑文本等。5分钟就可以学会基本操作。

整个环境搭下来,如果你是个高手 不到半个小时搞定  

小白,一点点的参照教程两个小时足够了。  而且,效果很棒 !

完结 撒花。。。。。

-------------------------------------------------------------------------------------------

赞与谢,及时收割

如果本篇文章对您有用,请您小手一抖,给予我们最好的鼓励~~

零基础 编译安装 nginx + php 环境 极其详细 小白版

零基础 编译安装 nginx + php 环境 极其详细 小白版

0

主题

1

好友

72

积分

小白[LV1]

Rank: 1

云币
152
威望
23
发表于 2015-9-16 18:38:40 |显示全部楼层
还没试过,等下试试看行不行。谢谢
回复

使用道具 举报

0

主题

1

好友

72

积分

小白[LV1]

Rank: 1

云币
152
威望
23
发表于 2015-9-18 03:04:14 |显示全部楼层
已安装完成了第3步,接下来不想装nginx,  想用apache,用LAMP环环境。不知道操作代码。
回复

使用道具 举报

0

主题

1

好友

72

积分

小白[LV1]

Rank: 1

云币
152
威望
23
发表于 2015-9-19 01:33:03 |显示全部楼层
按你的介绍,哪剩下的数据库咋办?
回复

使用道具 举报

0

主题

1

好友

72

积分

小白[LV1]

Rank: 1

云币
152
威望
23
发表于 2015-9-20 17:58:45 |显示全部楼层
3.为nginx提供SysV init脚本:
利用  vim  /etc/rc.d/init.d/nginx
这步不明白。照此做之后也不清楚是否成功?

请问chmod是指敲代么?在什么状态下敲入此代码?
回复

使用道具 举报

9

主题

7

好友

738

积分

版主

Rank: 10Rank: 10Rank: 10Rank: 10

云币
1149
威望
738
发表于 2015-9-21 09:53:50 |显示全部楼层
美创意 发表于 2015-9-20 17:58
3.为nginx提供SysV init脚本:
利用  vim  /etc/rc.d/init.d/nginx
这步不明白。照此做之后也不清楚是否成功 ...

上面那个脚本复制粘贴完了 保存退出。  再敲 chmod 这个 命令  退出 编辑器  就可以  敲 这个命令了
回复

使用道具 举报

0

主题

1

好友

72

积分

小白[LV1]

Rank: 1

云币
152
威望
23
发表于 2015-9-21 23:09:21 |显示全部楼层
谢谢!技术指导,
回复

使用道具 举报

0

主题

0

好友

70

积分

小白[LV1]

Rank: 1

云币
250
威望
70
发表于 2016-1-4 01:57:24 |显示全部楼层
很好的教程,照着做部署成功了,谢谢
回复

使用道具 举报

0

主题

0

好友

20

积分

小白[LV1]

Rank: 1

云币
70
威望
20
发表于 2018-5-16 17:14:04 来自手机 |显示全部楼层
垃圾教程啊,这是小白能装好的?脚本命令各种问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
您需要登录后才可以发帖 QQ登录

联系我们|腾讯云平台|积分商城|腾讯云官方论坛    

GMT+8, 2018-9-26 07:54 , Processed in 1.198565 second(s), 35 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部