当前位置: 首页 > 编程日记 > 正文

ubuntu下nginx+php5的部署

ubuntu下nginx+php5环境的部署和centos系统下的部署稍有不同,废话不多说,以下为操作记录:
1)nginx安装
root@ubuntutest01-KVM:~# sudo apt-get update && sudo apt-get upgrade
root@ubuntutest01-KVM:~# sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev libssl-dev build-essential openssl libssl0.9.8 libssl-dev
root@ubuntutest01-KVM:~# wget http://nginx.org/download/nginx-1.8.0.tar.gz
root@ubuntutest01-KVM:~# tar -zxvf nginx-1.8.0.tar.gz
root@ubuntutest01-KVM:~# cd nginx-1.8.0
root@ubuntutest01-KVM:~# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre
root@ubuntutest01-KVM:~# make && make install

2)php5的安装
add-apt-repository 命令是 apt 源的添加,ppa 就是软件对应的源,在官网上可以找到
root@ubuntutest01-KVM:~# sudo add-apt-repository ppa:ondrej/php5-5.6

如果上面命令执行后报错和没有发现命令则执行
root@ubuntutest01-KVM:~# sudo apt-get install Python-software-properties
root@ubuntutest01-KVM:~# sudo apt-get update
root@ubuntutest01-KVM:~# sudo apt-get install php
root@ubuntutest01-KVM:~# php5 -v

安装好php后,在nginx里添加对接php的配置后,访问.php文件会报错502!
这是因为nginx中访问.php文件的请求都交给php-fpm程序处理的,php-fpm监听9000端口
所以还有启动php-fpm程序。

安装php-fpm
root@ubuntutest01-KVM:~# apt-get install php5-fpm php5-gd php5-cli php5-curl php5-mcrypt php5-mysql php5-readline

启动php-fpm
root@ubuntutest01-KVM:~# service php5-fpm start
root@ubuntutest01-KVM:~# ps -ef|grep php5-fpm
root@ubuntutest01-KVM:~# lsof -i:9000

但是发现php5-fpm启动后,9000端口却没有起来!这是为什么?
这是因为php-fpm有两种监听方式:一种是.sock文件方式,另一种是9000端口方式
修改办法:
root@ubuntutest01-KVM:~# vim /etc/php5/fpm/pool.d/www.conf
.....
;listen = /var/run/php5-fpm.sock               //注释这行,这是默认的监听方式
listen = 9000                                            //改为监听9000端口方式

重启php-fpm
root@ubuntutest01-KVM:~# service php5-fpm restart
root@ubuntutest01-KVM:~# lsof -i:9000        //发现9000端口已经起来了

3)nginx+php配置
root@ubuntutest01-KVM:~# vim /usr/local/nginx/conf/nginx.conf       //将nginx启动用户改成www-data,确保这个用户存在,不存在就手动创建,保证nginx和php启动用户一致

user  www-data;
worker_processes  8;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;pid        logs/nginx.pid;events {worker_connections  65535;
}http {include       mime.types;default_type  application/octet-stream;charset utf-8;log_format  main  '$http_x_forwarded_for $remote_addr $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_cookie" $host $request_time';sendfile       on;tcp_nopush     on;tcp_nodelay    on;keepalive_timeout  65;fastcgi_connect_timeout 3000;fastcgi_send_timeout 3000;fastcgi_read_timeout 3000;fastcgi_buffer_size 256k;fastcgi_buffers 8 256k;fastcgi_busy_buffers_size 256k;fastcgi_temp_file_write_size 256k;fastcgi_intercept_errors on;client_header_timeout 600s;client_body_timeout 600s;client_max_body_size 100m;            client_body_buffer_size 256k;          gzip  on;gzip_min_length  1k;gzip_buffers     4 16k;gzip_http_version 1.1;gzip_comp_level 9;gzip_types       text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;gzip_vary on;include vhosts/*.conf;
}

root@ubuntutest01-KVM:~# vim /usr/local/nginx/conf/vhosts/vote.com.conf

server {listen 8080;server_name www.wangshibo.com;access_log  /usr/local/nginx/logs/access.log main;error_log  /usr/local/nginx/logs/error.log;location / {root /home/www/vote;try_files $uri $uri/ @router;index index.html index.php index.htm;}location /nginx_status {stub_status on;access_log off;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}location @router {rewrite ^.*$ /index.php last;}location ~ \.php$ {root          /home/www/vote;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;         //这一行和下面一行要加上,不然访问php文件可能出现空白!fastcgi_param  PATH_INFO  $fastcgi_script_name;include        fastcgi_params;}location ~ ^/(status|ping)$ {include fastcgi_params;fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;}
}

测试文件(html文件和php文件)
root@ubuntutest01-KVM:~# vim /home/www/vote/test.html
sdfsadf
12313123
root@ubuntutest01-KVM:~# vim /home/www/vote/test.php

<?php              //这一行不能空格,否则访问会有问题
phpinfo();
?>

修改php-fpm文件(确保/etc/php5/fpm/php-fpm.conf文件中打开了include=/etc/php5/fpm/pool.d/*.conf)
root@ubuntutest01-KVM:~# vim /etc/php5/fpm/pool.d/www.conf
....
user = www-data
group = www-data
....
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

重启nginx和php-rpm
root@ubuntutest01-KVM:~# /usr/local/nginx/sbin/nginx -s reload
root@ubuntutest01-KVM:~# /etc/init.d/php5-fpm restart

最后,验证访问是否正常:

相关文章:

图像质量评价,图片放大和缩小

#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <iostream>using namespace cv;using namespace std;// PSNR 峰值信噪比计算 返回数值为30-50dB 值越大越好double PSNR(con…

软件开发--深入理解程序的结构

程序由不同的段构成(代码段&#xff0c;数据段)1.程序的静态特征就是指令和数据2.程序的动态特征就是执行指令处理数据 A.段传统上&#xff0c;一个程序一般会有这几个段:.text 、.data、.bss段a.如果处理器由内存管理单元&#xff0c;那么可执行程序被加载到内存以后&#xff…

OpenCV 【十八】图像平滑处理/腐蚀与膨胀(Eroding and Dilating)/开闭运算,形态梯度,顶帽,黑帽运算

图像滤波总结&#xff08;面试经验总结&#xff09;https://blog.csdn.net/Darlingqiang/article/details/79507468 目录 part one 图像平滑处理 1原理 2代码 3效果 part two 腐蚀与膨胀(Eroding and Dilating) 1原理 2代码 3运行结果 part three更多形态学变换 1 原…

第九章 大网高级 ASA 高级设置

url 过滤实验要求&#xff1a;1、 创建class-map 类映射&#xff0c;识别传输流量。2、 创建policy-map策略映射&#xff0c;关联class-map。3、 应用到policy-map到接口上。一、 配置接口地址二、 配置路由&#xff0c;网络互通三、 创建特权和vty 密码四、 验证网络互通五、 …

linux基础知识-链接列表

linux基础知识-链接列表 1. 安装centos 7 1.1 Linux的初识1.2 centOS 7安装教程1.3 centOS 7配置ip和网络问题排查1.4 PuTTY和Xshell远程连接与密钥认证登录1.5 单用户和救援模式2. 文件与目录管理 1.6 系统目录结构、文件类型及相关命令1.7 文件目录管理及相关的命令使用方法…

OpenCV 【十九】图像金字塔/基本的阈值操作/实现自己的线性滤波器

目录 1.part one 图像金字塔 1.1原理 1.1.1图像金字塔 1.1.2高斯金字塔 1.2代码 1.3运行结果 2.part two 基本的阈值操作 2.1原理 2.1.1阈值化的类型&#xff1a; 2.1.2阈值类型1&#xff1a;二进制阈值化 2.1.3阈值类型2&#xff1a;反二进制阈值化 2.1.4阈值类型…

Get started with ros -- 1

原创博文&#xff1a;转载请标明出处&#xff08;周学伟&#xff09;&#xff1a;http://www.cnblogs.com/zxouxuewei/tag/ 一.Introduction&#xff1a; 机器人操作系统&#xff08;ROS&#xff09;是使机器人系统的不同部分能够发现&#xff0c;发送和接收数据的通信接口。MA…

利用 createTrackbar 进行二值化

#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include <iostream> //createTrackbar的回调响应函数 void onChangeTrackBar (int pos,void* data) {// 强制类型转换cv::Mat srcImage *(cv::Mat*)(data); cv:…

ASP.NET Core 2.2中的Endpoint路由

Endpoint路由 在ASP.NET Core 2.2中&#xff0c;新增了一种路由&#xff0c;叫做Endpoint&#xff08;终结点&#xff09;路由。本文将以往的路由系统称为传统路由。 本文通过源码的方式介绍传统路由和Endpoint路由部分核心功能和实现方法&#xff0c;具体功能上的差异见官方文…

OpenCV 【二十】给图像添加边界

目录 1原理 2 代码 3 运行结果 1原理 前一节我们学习了图像的卷积操作。一个很自然的问题是如何处理卷积边缘。当卷积点在图像边界时会发生什么&#xff0c;如何处理这个问题&#xff1f; 大多数用到卷积操作的OpenCV函数都是将给定图像拷贝到另一个轻微变大的图像中&#…

Linux账户安全管理--useradd、groupadd、passwd、chown、chmod工具

groupadd-g 设置组id号实例&#xff1a; groupadd tomcatgroupadd -g600 tomcat删除组用groupdelgroupdel tomcatuseradd-c comment 给新用户添加备注 -d home_dir 为主目录指定一个名字&#xff08;如果不想用登录名作为主目录名的话&#xff09; -e expire_date 用Y…

Rect 选择感兴趣区域

#include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> // 全局变量源图像 cv::Mat srcImage; // 方法1 利用Rect选择区域(100, 180, 150, 50) void regionExtraction(int xRoi, int yRoi, int widthRoi, int…

paramiko的使用

1 import paramiko2 import sys3 4 5 user "root"6 pwd "123456"7 8 9 10 # 上传文件 11 def sftp_upload_file(server_path, local_path): 12 try: 13 t paramiko.Transport((ip, 22)) 14 t.connect(usernameuser, passwordpwd) …

【C++】多线程与并发【一】

文章目录part 0:多线程简介part 1:多线程构造它用于构造线程对象。参量part 2:多线程析构它破坏线程对象。part 3:多线程operator参量 Parameters返回值Data racespart 4:joinable 它返回线程ive对象是否可连接&#xff0c;则返回true&#xff0c;否则返回false。 表示的是否可…

鼠标按键获取感兴趣区域

#include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> #include <stdio.h> using namespace cv; using namespace std; // 全局变量图像源 cv::Mat srcImage; // 所选矩形区域 cv::Rect roiRect; …

git在不同操作系统下自动替换换行符

2019独角兽企业重金招聘Python工程师标准>>> 一天使用docker创建一个镜像执行报一个错 standard_init_linux.go:175: exec user process caused "no such file or directory"参考资料 http://blog.jobbole.com/46200/ http://neue.v2ex.com/t/309469 git …

关于jsp和eclipse服务器端的相关配置和JS的区别

今天配置了一番eclipse的服务器端&#xff0c;由此重新认识了web技术的皮毛&#xff1b; 话不多说&#xff0c;让我们开始&#xff1a; 一&#xff1a; 首先让我们了解一下js和jsp的技术之间的差别&#xff1a; 1&#xff09;js&#xff1a;https://zh.wikipedia.org/wiki/Java…

【C++】多线程与互斥锁【二】

文章目录1. 并发是什么1.1 并发与并行1.2 硬件并发与任务切换1.3 多线程并发与多进程并发2. 为什么使用并发2.1 为什么使用并发2.2 并发和多线程3. 并发需要注意的问题3.1 多线程中的数据竞争实例1&#xff1a;3.2 如何处理数据竞争&#xff1f;实例2&#xff1a;实例3&#xf…

用hosting.json配置ASP.NET Core站点的Hosting环境

通常我们在 Prgram.cs 中使用硬编码的方式配置 ASP.NET Core 站点的 Hosting 环境&#xff0c;最常用的就是 .UseUrls() 。 public class Program {public static void Main(string[] args){var host new WebHostBuilder().UseUrls("http://*:5000").UseKestrel().U…

鼠标按键获取感兴趣区域 2

#include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> #include <stdio.h> using namespace cv; using namespace std; // 全局变量图像源 cv::Mat srcImage; // 所选矩形区域 cv::Rect roiRect; …

偷看日历?9款 APP 涉嫌过度获取权限

最近网友已经看累了APP搞事的瓜&#xff0c;3月29日&#xff0c;“9款 APP 涉嫌过度获取权限”又上了热搜。 不久前上海消保委针对网购平台、旅游出行、生活服务等39款手机APP进行了涉及个人信息权限的评测&#xff0c;主要包括四个方面&#xff1a;App所使用的目标API级别、A…

【C++】多线程与条件变量【三】

文章目录1 条件变量是什么&#xff1f;实例1&#xff1a;2 条件变量本质&#xff1f;3 引入条件变量的原因&#xff1f;实例2&#xff1a;实例3&#xff1a;实例4&#xff1a;4 如何使用条件变量&#xff1f;4.1 std::condition_variable实例5&#xff1a;4.2 std::condition_v…

图像遍历反色处理,遍历多通道图片

#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace cv; // 下标M.at<float>(i,j) 方法1-1 cv::Mat inverseColor1(cv::Mat srcImage) {cv::Mat tempImage srcImage.clone();int row t…

【Treap】bzoj1588-HNOI2002营业额统计

一、题目 Description 营业额统计 Tiger最近被公司升任为营业部经理&#xff0c;他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger拿出了公司的账本&#xff0c;账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节…

推荐一款 Flutter Push 推送功能插件

又到了推荐好插件的时候了。开发 APP 避免不了使用「推送」功能。比如&#xff0c;新上架一个商品&#xff0c;或者最新的一条体育新闻&#xff0c;实时推送给用户。 比较了几家推送平台&#xff0c;貌似「极光」出了 Flutter 插件&#xff0c;所以就拿它试试手&#xff0c;顺便…

【C++】多线程与异步编程【四】

文章目录【C】多线程与异步编程【四】0.三问1.什么是异步编程&#xff1f;1.1同步与异步1.2 **阻塞与非阻塞**2、如何使用异步编程2.1 使用全局变量与条件变量传递结果实例1&#xff1a;2.2 使用promise与future传递结果实例2实例32.3使用packaged_task与future传递结果实例42.…

[LintCode] Maximum Subarray 最大子数组

Given an array of integers, find a contiguous subarray which has the largest sum. Notice The subarray should contain at least one number. Have you met this question in a real interview? YesExample Given the array [−2,2,−3,4,−1,2,1,−5,3], the contiguo…

图像补运算:反色处理

cv::Mat inverseColor1(cv::Mat srcImage) {cv::Mat tempImage srcImage.clone();int row tempImage.rows;int col tempImage.cols;// 对各个像素点遍历进行取反for (int i 0; i < row; i){for (int j 0; j < col; j){// 分别对各个通道进行反色处理tempImage.at<…

2018-2019-2 网络对抗技术 20165239Exp3 免杀原理与实践

2018-2019-2 网络对抗技术 20165239 Exp3 免杀原理与实践 win10 ip地址 192.168.18.1 fenix ip地址为 192.168.18.128 &#xff08;1&#xff09;杀软是如何检测出恶意代码的&#xff1f; •根据计算机病毒课程知道了每个病毒都有其对应的特征码&#xff0c;杀软是根据这些特征…

【C++】多线程与原子操作和无锁编程【五】

【C】多线程与原子操作和无锁编程【五】 1、何为原子操作 前面介绍了多线程间是通过互斥锁与条件变量来保证共享数据的同步的&#xff0c;互斥锁主要是针对过程加锁来实现对共享资源的排他性访问。很多时候&#xff0c;对共享资源的访问主要是对某一数据结构的读写操作&#…