• nginx+php 安装


    1.环境概述

    虚拟机系统:CentOS Linux release 7.3.1611 (Core)

    宿主机系统:Mac Sierra version 10.12.3

    nginx:1.10.3

    php:7.1.2

    2.虚拟机

    为了使得虚拟机和主机互通且虚拟机能联网,在安装系统之前需要设置网络。在当前虚拟机的设置里找到网络,可以看到Adapter 1默认已经设置为NAT。切到Adapter 2 tab页,设置为Host-only Adapter。

    安装完CentOS之后,编辑 /etc/sysconfig/network-scripts/ifcfg-enp0s3 和 /etc/sysconfig/network-scripts/ifcfg-enp0s8 中ONBOOT=yes(默认为no)。

    重启网络:

    systemctl restart network

    3.ssh连接

    在虚拟机中敲打命令是一件痛苦的事。因此尽可能在宿主机ssh到虚拟机。

    a.查看虚拟机ip

    ip addr

    找到enp0s8的ip地址,我的为192.168.56.101

    b.宿主机连接

    ssh root@192.168.56.101

    4.更新系统

    更新系统到最新版本(无视我的强迫症)

    yum update

    等待。。。

    5.nginx

    a.安装准备

    安装nginx官方源

    rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

    成功的话,可以在 /etc/yum.repos.d目录下看到nginx.repo。如果未看到,执行一个神级命令,它将清理所有缓存数据、重建缓存并更新:

    yum clean all && yum clean metadata && yum clean dbcache && yum makecache && yum update

    再安装nginx官方源。再不生效。。。是不可能的。

    b.安装

    下面先安装nginx的支持组件pcre-devel,再安装nginx

    yum install pcre-devel
    yum install nginx

    c.启动

    systemctl start nginx

    在宿主机浏览器输入192.168.56.101,可以看到熟悉的"Welcome to nginx"。

    至此,nginx安装完成。

    d.个性化首页

    注意,nginx默认访问页面路径在 /usr/share/nginx/html/index.html。为什么呢,因为nginx的配置文件 /etc/nginx/conf.d/default.conf 如下:

    location / { 
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }  

    如果想修改主目录,则修改root。如果想修改主页面,则修改index。

    6.php

    a.下载

    具体下载地址可以到官网php.net查看

    wget http://cn2.php.net/distributions/php-7.1.2.tar.gz

    b.编译安装

    tar xvf php-7.1.2.tar.gz
    cd php-7.1.2
    yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel -y
    ./configure --prefix=/usr/local/php --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
    make
    make install

    其中gd-devel、libjpeg-devel等为编译php的必要组件,需在configure之前安装。

    c.启动

    先将必要的配置文件拷贝好,再启动

    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
    /usr/local/php/sbin/php-fpm

    至此,php安装完成

    注意,如果启动时报错,找不到配置文件php-fpm.conf,可以使用如下命令指定配置文件路径

    /usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf

    d.测试

    在 /usr/share/nginx/html 下新建index.php,内容如下

    <?php
    echo 'Hello PHP';
    ?>

    在宿主机浏览器访问 192.168.56.101/index.php 失败。为什么呢,因为nginx不知道怎么处理php文件。

    7.php+nginx

    编辑 /etc/nginx/conf.d/default.conf

    location ~ .php$ {
        root               /usr/share/nginx/html;
        fastcgi_pass       127.0.0.1:9000;
        fastcgi_index      index.php;
        fastcgi_param      SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include            fastcgi_params;
    }

    重启nginx

    systemctl restart nginx

    在宿主机浏览器访问 192.168.56.101/index.php,成功。

    注意,如果报错 File not found,可以尝试修改配置文件 /usr/local/php/etc/php-fpm.d/www.conf

    user = www-data
    group = www-data

    再重启 php-fpm(先找到原有进程杀掉,再执行)。为什么呢,猜测是因为php-fpm默认启动用户是nobody,没有对index.php的读取权限。

    再重启nginx。

  • 相关阅读:
    Xen, Linux and udev
    xend的调试方法
    xenstored为什么不能重启?
    [转]xen虚拟windows使用vnc桌面鼠标位置偏移现象的解决
    基于模板的代码生成器
    区分JavaScript中的undefined,null和NaN
    ExtJS+ASP.NET实现异步Tree的节点搜索和查找下一个(FindNext)
    ExtJS+ASP.NET实现Tree节点的拖动(DragDrop)
    ExtJS+ASP.NET实现真实的进度条显示服务器端长时间操作的进度
    说说企业架构(企业级架构)和应用程序架构
  • 原文地址:https://www.cnblogs.com/studyhs/p/6587826.html
Copyright © 2020-2023  润新知