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:;
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。
nginx+php安装的更多相关文章
- Nginx服务安装配置
1.Nginx介绍 Nginx是一个高性能的HTTP和反向代理服务器,由俄罗斯人开发的,第一个版本发布于2004年10月4日.Nginx由于出色的性能,在世界范围内受到了越来越多人的关注,其特点是占有 ...
- Django Nginx+uwsgi 安装配置
使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttp ...
- mysql 自动备份和nginx自动安装脚本
一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...
- nginx的安装
1,,nginx的安装 为什么使用nginx我就不多说了,很优秀的,请再行google 在安装前,先安装pcre,安装zlib,安装openssl,以及一些其他包 yum install -y gcc ...
- nginx编译安装
Nginx编译安装 1.nginx官网:http://wiki.nginx.org/Install下载:http://nginx.org/en/download.html 2.编译安装# wget h ...
- nginx 的安装
一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # yum install pcre* //如过你已经装了,请跳过这一步 2.安装openssl ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
- nginx的安装与配置
1.nginx的安装与配置 编译安装nginx需要实现安装开发包组“Development tools”和“Server Platform Development”.“Desktop Platform ...
- nginx笔记----安装
nginx的安装 ./configure make && make install (一)准备条件: 1.GCC---gun编译器集合 Nginx是一个由C语言编写的程序,因此首先需要 ...
- Linux下Nginx的安装、升级及动态添加模块
系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...
随机推荐
- Memcache架构新思考
2011年初Marc Kwiatkowski通过Memecache@Facebook介绍了Facebook的Memcache架构,现在重新审视这个架构,仍有很多方面在业界保持先进性.作为weibo内部 ...
- ubuntu11.04安装nginx+php+mysql
先列参考内容,后面我再补充点东西: http://www.4wei.cn/archives/1001436 http://www.gidot.net/blog/article.asp?id=322 上 ...
- uwsgi 服务 invalid request block size: 4161 (max 4096)...skip问题的解决
问题报错: invalid request block size: 4161 (max 4096)...skip 问题原因:默认的uwsgi分配一个小的buffer(4k)来接收每个请求的头信息,如果 ...
- [ Java面试题 ]基础篇之一
1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致. 2.Java有 ...
- L1正则化比L2正则化更易获得稀疏解的原因
我们知道L1正则化和L2正则化都可以用于降低过拟合的风险,但是L1正则化还会带来一个额外的好处:它比L2正则化更容易获得稀疏解,也就是说它求得的w权重向量具有更少的非零分量. 为了理解这一点我们看一个 ...
- 托管C++线程锁实现
最近由于工作需要,开始写托管C++,由于C++11中的mutex,和future等类,托管C++不让调用(报错),所以自己实现了托管C++的线程锁. 该类可确保当一个线程位于代码的临界区时,另一个线程 ...
- 详细的<select>下拉列表详解
我们使用表单下拉列表选择数据,如省.市.县.年.月等数据,我们即可使用下拉菜单表单进行设置.select 我下拉列表菜单标签Option为下拉列表数据标签Value 为Option的数据值(用于数据的 ...
- 部署网站: 配置项目到iis上运行报目录错误
配置项目到iis上运行报目录错误 以下三种方法可使用: 1.添加文件访问权限 everyone (线上环境慎用) 2.重新注册iis 3.web.config 加一段话 在<system.we ...
- Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin【Finchley 版】
Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin[Finchley 版] 发表于 2018-04-24 | 随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请 ...
- Python 基础【一】
python运行流程 一.变量及注释 命名: 合法-变量名由字母.数字和下划线组成,并且不能以数字开头.以下保留字不可以当变量名: ['False', 'None', 'True', 'and', ' ...