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服务器无需重新启动,即可成功运行配置项