liunx(Ubuntu) AND CentOS6安装LNMP环境详解

Ubuntu安装LNMP详解

1、安装Nginx

sudo apt-get install nginx

安装完成后配置Nginx,默认的安装结构是:

  1. 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
  2. 程序文件在/usr/sbin/nginx
  3. 日志放在了/var/log/nginx中
  4. 并已经在/etc/init.d/下创建了启动脚本nginx
  5. 默认的虚拟主机的目录设置在了/var/www/nginx-default

sudo gedit /etc/nginx/sites-available/default

注意:修改网站默认目录为 /var/www/nginx/nginx-default,当然你也可以修改为/var/www

  
  
  
  
  1. location /{

    root /var/www/nginx-default;

    index index index.php index.html index.htm; }

2、检查Nginx是否安装成功。

启动Ngnix:

sudo /etc/init.d/nginx start

访问http://localhost,如果正常的话应该显示 Welcome to Nginx !,如果显示403,那就是接着修改网站默认目录。

3、配置PHP+Mysql

安装PHP和Mysql :

sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql

注意:在安装过程中会要求创建Mysql 的root用户密码,请务必牢记数据库Mysql的超级密码。

安装 FastCgi :

sudo apt-get install spawn-fcgi

配置 Nginx :

sudo gedit /etc/nginx/sites-available/default

注释掉其中的PHP部分(去掉前面的#号)

location ~ \.php$ {

     fastcgi_pass 127.0.0.1:9000;

     fastcgi_index index.php;

    #fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;#如果在/etc/nginx/fastcgi_param配置了 这里就不需要重复配置,要不然会启动不起来的

     include /etc/nginx/fastcgi_params;

}

注意:务必注意上面的空格以及目录名称。

重启Nginx:

/etc/init.d/nginx stop

sudo /etc/init.d/nginx start

注意:第二行的sudo不能少,否则还是会出问题。

启动 Fastcgi php:

spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi

注意:如果出现错误 Address already in use 之类的,网上所说是由于Apache占用了98端口,如果你安装过Apache,那请卸载掉再重试。

我自己的电脑没有安装过Apache,也找不出问题,因此我修改了9000这个端口为9001,同样上面的Nginx配置文件中也要修改。重新启动 Fastcgi php,成功。

创建测试 phpinfo:

sudo gedit /var/www/nginx-default/info.php

输入 <?php phpinfo(); ?> 保存,关闭。

打开 http://localhost/info.php,如果一切正常的话会显示PHP的属性页面。

4、安装XCache

下载安装XCache :

sudo apt-get install php5-xcache

然后打开XCache的配置文件:

/etc/php5/conf.d/xcache.ini

复制全部,准备编辑php.ini

sudo gedit /etc/php5/cgi/php.ini

粘贴至php.ini文件中。

重启php-cgi :

sudo killall -HUP php-cgi

spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi

注意:在info.php中查看 XCache 模块。(要能搜索到多个xcache,如果只有一个,那必然有问题。)

5、安装Zend Optimizer

安装Zend 区分PHP版本,因此我会在下一篇文章中专门贴出来。而且ubuntu终端中安装 nginx 版本是0.75,Nginx官方最新稳定版为Nginx1.0.10,所以在讲完Zend Op的安装后,会再说一下如何平稳升级Nginx到最新版。

本文主要参考 Ubuntu 官方 wiki 的《 Nginx 的教程》以及Google,国内关于Nginx研究比较多的就是张宴老师了。他的博客:http://s135.com/

CentOS6安装lnmp详解


安装第三方软件源(epel、nginx、remi)
rpm -ivh http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm 
 
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm 
 
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 

yum一键安装lnmp

yum install nginx mysql mysql-server php-fpm php-mysql php-cli php-eaccelerator php-gd php-imap php-xml php-xmlrpc php-mbstring php-mcrypt php-suhosin --enablerepo=epel,nginx,remi 

php参数配置

sed -i '/expose_php/{s/On/Off/g}' /etc/php.ini 
sed -i '/display_errors/{s/On/Off/g}' /etc/php.ini 
sed -i '/php_errors.log/{s/;//g}' /etc/php.ini 
sed -i '/file_uploads/{s/On/Off/g}' /etc/php.ini 
sed -i '/allow_url_fopen/{s/On/Off/g}' /etc/php.ini 
sed -i '/allow_url_include/{s/On/Off/g}' /etc/php.ini 
sed -i '/;date.timezone/{s/;//g;s/=/= Asia\/Shanghai/g}' /etc/php.ini 
sed -i '/cgi.fix_pathinfo\=/{s/;//g;s/1/0/g}' /etc/php.ini 
sed -i '/memory_limit/{s/128/64/g}' /etc/php.ini 
sed -i '/safe_mode/{s/Off/On/g}' /etc/php.ini 

php-fpm配置

sed -i 's/apache/nginx/g' /etc/php-fpm.d/www.conf 
sed -i '/request_terminate_timeout/{s/;//g;s/0/30/g}' /etc/php-fpm.d/www.conf

内核优化

echo "net.ipv6.conf.all.disable_ipv6 = 1"       >> /etc/sysctl.conf 
echo "vm.swappiness = 25"           >> /etc/sysctl.conf 
echo "net.ipv4.route.max_size = 524288 "        >> /etc/sysctl.conf 
echo "net.core.somaxconn = 10240"           >> /etc/sysctl.conf 
echo "net.ipv4.tcp_max_syn_backlog = 204800"    >> /etc/sysctl.conf 
echo "net.core.netdev_max_backlog =  204800"    >> /etc/sysctl.conf 
echo "net.ipv4.ip_local_port_range = 1024   65535"   >> /etc/sysctl.conf 
 
echo "ulimit -SHn 65535" >> /etc/profile 
cat >> /etc/security/limits.conf <<EOF 
nginx               soft    nofile  65535 
nginx               hard    nofile  65535 
EOF 

 nginx基本优化

sed -i '/worker_processes/{s/1/4/g}' /etc/nginx/nginx.conf  
sed -i '/worker_processes/a\ worker_rlimit_nofile 65535;' /etc/nginx/nginx.conf 
sed -i '/worker_connections/{s/1024/10240/g}' /etc/nginx/nginx.conf  
sed -i '/sendfile/a\ server_tokens off;' /etc/nginx/nginx.conf   
sed -i '/version/{s/\/\$nginx_version//g}' /etc/nginx/fastcgi_params   
sed -i '/events/a\    use epoll;' /etc/nginx/nginx.conf


nginx的fpm基本配置,找到FASTCGI选项,去掉注释,修改下面这样

location ~ \.php$ { 
    root  /var/www/html; 
    fastcgi_pass  127.0.0.1:9000; 
    #fastcgi_pass  unix:/tmp/php-fpm.sock; 
    fastcgi_index  index.php; 
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
    include  fastcgi_params; 
} 

nginx页面设置

mkdir -p /var/www/html 
sed -i 's#/usr/share/nginx/html#/var/www/html#g' /etc/nginx/nginx.conf 
sed -i 's/index.html/& index.php/' /etc/nginx/nginx.conf 
echo "<?php phpinfo();phpinfo(INFO_MODULES);?>" >/var/www/html/index.php

启动服务

chkconfig nginx on 
chkconfig php-fpm on 
chkconfig mysqld on 
/etc/init.d/php-fpm start 
/etc/init.d/mysqld start 
/etc/init.d/nginx start 


你可能感兴趣的:(liunx(Ubuntu) AND CentOS6安装LNMP环境详解)