当前位置: > Ubuntu >

Ubuntu 14.04 搭建 Nginx + PHP + MariaDB (MySQL)

时间:2016-04-03 21:33来源:www.it.net.cn 作者:IT网

一、安装 Nginx + MariaDB (MySQL)

Ubuntu 官方源里的 Nginx 版本实在过低,所以我们先加入 ppa:

Nginx

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update

然后安装 Nginx + MariaDB

sudo apt-get install nginx-extras mariadb-server 

按照屏幕提示输入 MySQL 的 root 密码即可完成安装。

二、安装 PHP 并修改配置文件

然后安装一些常用的 PHP 包,默认是 PHP 5.5 +

sudo apt-get install php5-cgi php5-mysql php5-fpm php5-curl php5-gd php5-idn php-pear php5-imap php5-mcrypt php5-mhash php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

我们采用 PHP-FPM 配合 Nginx 使用,所以加入配置文件

sudo tee /etc/nginx/conf.d/php.conf << EOF
upstream php {
    server unix:/var/run/php5-fpm.sock;
}
EOF

然后检查一下 /etc/php5/fpm/pool.d/www.conf, 保证里面有这三句:

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

如果有不一样的地方(比如最后一句的权限可能是 0666), 改成一样; 如果注释掉了, 去掉前面的分号。

VPS 内存如果很小的话, 在刚才的 /etc/php5/fpm/pool.d/www.conf 里考虑做这样的修改,分号后面为解释:

pm = dynamic              ;Dynamic allocate child-processes for php-fpm
pm.max_children = 5       ;Limit number of child-processes
pm.start_servers = 2      ;Start 2 child-processes when server starts
pm.min_spare_servers = 2  ;Remain at least 2 when spare
pm.max_spare_servers = 5  ;Remain at most 5 when spare
pm.max_requests = 300     ;300 requests the most per child-process(and then exit and start new one)

三、更新 Nginx 配置文件

接着你可以在 /etc/nginx/sites-enabled 目录下放个配置文件,如:

server {
	listen 80;

	server_name example.com;
	root /var/www/example.com;

	index index.html index.htm index.php;

	access_log /var/log/nginx/example.com.access.log;
	error_log /var/log/nginx/example.com.error.log;

	location = /favicon.ico { log_not_found off; access_log off; }
	location = /robots.txt  { log_not_found off; access_log off; }

	location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
		expires max; log_not_found off; access_log off;
	}

	location ~ \.php?$ {
		include /etc/nginx/fastcgi_params;
		fastcgi_pass php;
	}
}

接着在 /var/www/example.com 目录下放一个 php 文件,比如 index.php:

<?php
phpinfo(); // This would be used to display all of the PHP information available for the installation.
?> 

最后重启下服务:

sudo service nginx restart
sudo service php5-fpm restart

访问一下 example.com 试试,是不是大功告成了?先别急,还有一个 bug,你会发现这样装完以后 PHP 文件会显示一片空白,返回的却是 200 OK 状态,这是因为目前的 Nginx 1.6.2 版本官方包的 /etc/nginx/fastcgi_params 文件里少了一行,请手工在最上方加入

fastcgi_param  SCRIPT_FILENAME    $request_filename;

如果内存大的话可以考虑下 Memecached 或 XCache 来做 PHP 缓存,按照我们的经验,用本文的配置,一台 2GB 内存的 VPS 支撑每天 20 万 PV 的 WordPress ,配合 W3 Total Cache 插件 + Memcached,文章数目在一万篇以下、主题不要做得太傻逼,那么完全没啥大问题。

 

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容