Nginx学习笔记——搭建Linux +Nginx+PHP+Mariadb(MySql)开发环境

1.安装Nginx

源安装

本人安装环境是Deepin(Ubuntu的衍生版),所以最简单的方法就是执行

sudo apt-get install nginx

或者CentOS下:

yum install nginx

编译安装

http://nginx.org/ 下载最新版1.9.5,支持HTTP/2模块,号称更快更安全,并且可以向下兼容,具体细节查看NGINX_HTTP2_White_Paper_v4.pdf

依赖关系:openssl-1.0.0s,pcre-8.36,zlib-1.2.8

分别安装好之后,编译:

./configure --sbin-path=/usr/local/nginx/nginx  --conf-path=/usr/local/nginx/nginx.conf  --pid-path=/usr/local/nginx/nginx.pid  --with-http_ssl_module  --with-pcre=/usr/local/src/pcre-8.36

--with-zlib=/usr/local/src/zlib-1.2.8  --with-openssl=/usr/local/src/openssl-1.0.0s

make && make install

注:--with-pcre这条在源中未找到,我改用了--with-pcre-opt

引用参考http://www.nginx.cn/install

安装完成之后

sudo service nginx start

为了方便,以下直接采用源安装方式

安装mariadb(直接替代mysql)

sudo apt-get install mariadb-server mariadb-client

根据提示安装完成后

sudo vim /etc/mysql/my.cnf
bind-address = 127.0.0.1  #注释掉之后就可以远程访问了

为什么要用MariaDB?MariaDB是什么?请自行百度,这里不做详细讨论

安装php5-fpm:

sudo apt-get install php5 php5-fpm php5-gd php5-mysql

为了方便,一次性多安装几个有用的扩展包,后面用得到的

sudo vim /etc/php5/fpm/pool.d/www.cof

修改监听端口号

listen 127.0.0.1:9000

sudo service php5-fpm restart

2.配置虚拟主机

执行命令:

sudo vim /etc/nginx/nginx.conf

查看并修改基本配置信息并优化,以下仅列出可优化项:

worker_processes 4;  #进程核心数

worker_connections 1024; #请求连接数

keepalive_timeout 15; #连接超时数

access_log off; #访问日志,将这个设置为关闭可以降低磁盘 IO 而提升速度

gizp_vary on; #开启gzip压缩

gzip_proxied any;

gzip_comp_level 9; #数据压缩等级,1-9,9表示最慢但是最高比例的压缩

gzip_buffers 16 8k; #缓冲区

gzip_http_version 1.1; #http协议版本

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml+rss text/javascript; #压缩文件类型

# Virtual Host Configs 虚拟主机配置开启

include /etc/nginx/conf.d/*.conf;

include /etc/nginx/sites-enabled/*;

修改hosts文件

sudo vim /etc/hosts

添加如:127.0.0.1      www.dev.com

在/etc/nginx/目录下有两个文件sites-available和sites-enabled

sites-available下的是实际配置文件,默认有default,复制一个:

sudo mv default ./www.dev.com

复制default文件,改名为hosts中配置的www.dev.com

修改文件内容:

server {

       listen 80; #监听端口

       root /home/kevin/Workspace/html/advanced/frontend/web;      #项目存放目录

       index index.php index.html index.htm; #默认访问文件

       server_name www.dev.com; #服务器名称

       location / {

              try_files $uri $uri/ /index.php?$args;

       }

       location ~ \.php$ {

              # 默认的fastcgi.conf文件实际上并没有,指向的是fastcgi_params(这里有更好的配置方式,待我实践后更新。现在这样配置也没有太大影响)

              # include fastcgi.conf

              include fastcgi_params;

              fastcgi_pass  127.0.0.1:9000;

       }

       location ~ /\.(ht|svn|git) {

              deny all;

       }

}

sites-enabled下的是sites-available内文件的软链接,这里将刚刚配置好的文件在这里创建一个对应的软链接:

sudo ln -s /etc/nginx/sites-available/www.dev.com /etc/nginx/sites-enabled/www.dev.com

配置完成之后,测试一下是否成功

sudo /etc/init.d/nginx configtest

sudo service nginx reload  #加载配置项

Nignx服务器无需重新启动,即可成功运行配置项

时间: 2024-12-19 08:01:28

Nginx学习笔记——搭建Linux +Nginx+PHP+Mariadb(MySql)开发环境的相关文章

linux学习笔记——搭建基于nginx的web服务器、多核配置、nginx配置参数

############ 认识nginx #############Nginx:(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用.  其优点是轻量级(占有内存少),高并发(并发能力强),事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用ngi

nginx学习笔记之三:nginx作为反向代理服务器

nginx不仅能作为web server,还具有反向代理.负载均衡和缓存的功能 一.nginx的反向代理和负载均衡功能 1.proxy模块 nginx通过proxy模块实现将客户端的请求代理至上游服务器,此时nginx与上游服务器的连接是通过http协议进行的.nginx在实现反向代理功能时的最重要指令为 proxy_pass,它能够并能够根据URI.客户端参数或其它的处理逻辑将用户请求调度至上游服务器上(upstream server). ⑴proxy_pass URL; 设置后端服务器的协议

nginx学习笔记之一:nginx介绍及其编译安装

Nginx是一款高性能的web服务器.反向代理服务器及电子邮件(IMAP/POP3)代理服务器,具有占用内存少,并发能力强等优点. 一.nginx的功能与特性 1.基本功能及特性 ①作为静态资源的web服务器,能缓存打开的文件描述符: ②作为反向代理服务器,可做缓存.负载均衡: ③支持FastCGI ④模块化,非DSO机制(不能动态装卸载),过滤器gzip,SSI和图像大小调整等 ⑤支持SSL 2.扩展功能: ①基于名称和IP做虚拟主机 ②支持keepalive ③支持平滑配置更新或程序版本升级

Android学习心得之 Linux下命令行Android开发环境的搭建

1. 前言2. Java以及Ant安装3. Android SDK安装4. Android工程的基础命令 一.前言 本篇博文记录了Linux下全命令行的Android开发环境的搭建,本文内容基于以下文章: http://zyqhi2010.blog.163.com/blog/static/171589378201261093235290/   ( Linux中搭建基于Emacs的Android开发环境 )https://linux.cn/article-5966-1.html   (打造一个全命

nginx学习笔记五(nginx的事件模块定义)

在linux后台服务器开发领域里面,epoll的大名是早有所闻.<深入理解nginx>一书在第9章-事件模块中就详细说明了epoll相关的系统调用是怎么嵌入到nginx的框架中. 下面说明nginx框架下与事件处理相关的一些模块. 一.ngx_events_module ngx_events_module是核心模块中的一种.之前一直不是很明白核心模块的意思,现在想来,事件模块的核心模块应该是第一个启动的与事件相关的模块.这个模块并不会去处理实际的事件业务,而是会去做一些基本的初始化操作.ngx

nginx学习笔记七(nginx HTTP框架的执行流程)

之前已经介绍过nginx的事件框架.那么,对于client发出的一个http的请求,nginx的http框架是如何一步步解析这个http请求?http框架又是如何和之前介绍过得epoll事件模块结合起来的,下面来简要介绍下. 注:我手头上的nginx工程是nginx-1.9.14的,与<深入理解nginx>的版本不一致,在http框架这块的代码上也有着较大的区别. 一.ngx_http_init_connection 在http框架初始化的时候(参见<深入理解nginx>第10章)

python 笔记 搭建多个不同版本的开发环境

在我联系python+Django 1.8.4的时候,发现1.9已经出来了,命令有些不同,但是有些程序居然需要依赖django 1.5的库,所以特地看了一下如何在一台机器上搭建多个版本的phtyon 1. 新建一个 django project django-admin.py startproject project-name 一个 project 为一个项目,project-name 项目名称,改成你自己的,要符合Python 的变量命名规则(以下划线或字母开头) 2. 新建 app pyth

nginx学习笔记之基于端口的虚拟主机基于主机名的虚拟主机root、alias、index配置

nginx学习笔记之基于端口的虚拟主机基于主机名的虚拟主机root.alias.index配置 实验环境: centos 测试节点IP:172.16.3.101 基于端口的虚拟主机: vim /etc/nginx/nginx.conf # 向里面的http {}里面加入如下内容   server { # server定义一个虚拟主机         listen 8080; # 监听本机所有IP端口8080         server_name www.test.com; # 虚拟主机名为:w

学习笔记-- 2014-07-07 Linux常用命令

2014-07-07 Linux常用命令 在Linuxtoy.org上看一些文章收集一些常用命令==================一.ps.kill 使用备查二.Ubuntu 提示三则三.最小化安装 Ubuntu四.Linux Mint设置时间 一到三来看linuxtoy.org网站 ===================一.ps.kill 使用备查 ps-查看当前正在运行的进程,示例:$ ps     kill {PID}-通过 PID 来停止任意进程,示例:$ kill 1012