Ubuntu 14.04安装配置Nginx + PHP + MariaDB (MySQL)

作者:袖梨 2022-06-30

一、安装 Nginx + MariaDB (MySQL)

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

sudo apt-get install python-software-properties 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 111com.net;
 root /var/www/111com.net;

 index index.html index.htm index.php;

 access_log /var/log/nginx/111com.net.access.log;
 error_log /var/log/nginx/111com.net.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/111com.net 目录下放一个 php 文件,比如 index.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

访问一下 111com.net 试试,是不是大功告成了?先别急,还有一个 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,文章数目在一万篇以下、主题不要做得太傻逼,那么完全没啥大问题。

相关文章

精彩推荐