文档章节

Lnmp on Ubuntu 14.04实现多站点

此木倚南
 此木倚南
发布于 2015/11/28 11:18
字数 1164
阅读 29
收藏 0

环境介绍:

Qingcloud1核1G主机实例
OS:Ubuntu 14.04 X64
Nginx 1.8.0
PHP
MySQL

Nginx

add-apt-repository ppa:nginx/stable

apt-get update

apt-get install nginx

Nginx就安装好了,浏览器输入主机地址,就可以看到Nginx的欢迎界面了。

Nginx就安装好了,浏览器输入主机地址,就可以看到Nginx的欢迎界面了。

Nginx配置

  1. worker_processes设置为服务器的CPU核数

  2. 在event里增加 use epoll;

  3. worker_connections的值按照前辈的指点,1G内存的话设置不超过100000即可。

    然后执行命令 sudo nginx -s reload 参数生效

MySQL

sudo apt-get install mysql-server

安装php的MySQL驱动

sudo apt-get install php5-mysql

PHP

sudo apt-get install php5-fpm
sudo apt-get install php5

有个奇怪的地方,如果按网上一些教程,先安装php,再安装php5-fpm的话,会被装上apache,而直接装
php5-fpm的话,php就自动装好了,也不会装上apache。

关于php5-fpm请看这里:http://segmentfault.com/q/1010000000256516

然后需要做一些配置:

vi /etc/php5/fpm/php.ini`将cgi.fix_pathinfo=1这一行去掉注释,将1改为0.

“值为1时,php的解释器会尽可能的去解析客户端请求的文件各种类型,这会引发一些安全漏洞,设置为0时,解释器只会去解析特定的文件类型,设置为0是一种相对安全的处理策略。”—引用自MacTalk《趣谈个人建站》

修改www.conf

vi /etc/php5/fpm/pool.d/www.conf`把 *listen = 127.0.0.1:9000* 修改为

 *listen = /var/run/php5-fpm.sock*这涉及到不同的协议,前者是TCP,后者是

 UNIX,如果一台机器的话,后者效率更高。

然后重启PHP

sudo service php5-fpm restart

再安装一些安装库,方便后期安装应用的时候出现依赖问题

apt-get install php5 php5-cgi php5-curl php5-dev php5-gd php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-imagick php5-imap php5-intl php5-mcrypt php5-memcache php5-memcached php5-ming php5-ps php-pear php-apc

安装zendopcache提高性能

wget http://pecl.php.net/get/zendopcache-7.0.5.tgztar xzf zendopcache-7.0.5.tgz
cd zendopcache-7.0.5phpize
./configuer
make
make install

设置虚拟主机

创建虚拟主机目录

sudo mkdir -p /var/www/a.com/html/sudo mkdir -p /var/www/a.com/logs/sudo mkdir -p /var/www/b.com/html/sudo mkdir -p /var/www/b.com/logs/...
sudo chown -R www-data:www-data /var/www/a.com
sudo chown -R www-data:www-data /var/www/b.com
sudo chmod -R 755 /var/www

在/etc/nginx/sites-available下创建站点配置文件a,可以根据建立站点
的不同创建相关配置文件,内容如下:

server {        listen 80 default_server; #其他站点的话不需要添加default_server
        listen [::]:80 default_server ipv6only=on;        #b.com的配置文件为:listen 80;
        #                listen [::]:80;

        root /var/www/a.com/html;        
        index index.php index.html index.htm; #添加index.php支持php

        server_name a.com;        
        access_log /var/www/a.com/logs/access.log; #日志目录,也可以指定其他目录

        error_log /var/www/a.com/logs/error.log;
        location / {          
        try_files $uri $uri/ =404;
          }
        location ~ \.php$ {    
        default_type text/html;    
        fastcgi_split_path_info ^(.+\.php)(/.+)$;    
        fastcgi_pass unix:/var/run/php5-fpm.sock;    
        fastcgi_index index.php;    
        fastcgi_param  SCRIPT_FILENAME /var/www/a.com/html$fastcgi_script_name;    
        include fastcgi_params;    
        fastcgi_buffer_size 128k;    
        fastcgi_buffers 256 16k;   
        fastcgi_busy_buffers_size 256k;    
        fastcgi_temp_file_write_size 256k;    
        fastcgi_read_timeout 240;
}

}

配置文件创建好后,可以删除配置文件目录的default文件,再创建配置文件的链接:

ln -s /etc/nginx/sites-available/a /etc/nginx/sites-enable/a
ln -s /etc/nginx/sites-available/b /etc/nginx/sites-enable/b
...

需要调整一下ngixn.conf配置文件,找到下面这一行,并且去掉注释;

server_names_hash_bucket_size 64;

修改hosts文件,vi /etc/hosts

127.0.0.1   localhost
111.111.111.111 a.com
111.111.111.111 b.com

可以在站点根目录下新建一个index.php文件,内容如下:

<?phpphpinfo();?>

不出意外的话,打开浏览器输入主机地址就可以看到这个页面了。


有的时候,这些都弄好以后,启动nginx和php后,浏览器空白,也没用404,解决方式:

  • 确认 /etc/nginx/fastcgi_params 文件中是否有下面两行,没有的话在文件后面添加

    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;fastcgi_param  PATH_INFO          $fastcgi_script_name;
  • note:在将程序拷贝至网站根目录的时候,再执行 sudo chown -R www-data:www-data /var/www/x.com,以应对程序更新或安装过程中的权限问题。

配置文件创建好后,可以删除配置文件目录的default文件,再创建配置文件的链接:

ln -s /etc/nginx/sites-available/a /etc/nginx/sites-enable/a
ln -s /etc/nginx/sites-available/b /etc/nginx/sites-enable/b
...

需要调整一下ngixn.conf配置文件,找到下面这一行,并且去掉注释;

server_names_hash_bucket_size 64;

修改hosts文件,vi /etc/hosts

127.0.0.1   localhost
111.111.111.111 a.com
111.111.111.111 b.com

可以在站点根目录下新建一个index.php文件,内容如下:

<?phpphpinfo();?>

不出意外的话,打开浏览器输入主机地址就可以看到这个页面了。

原文链接:http://www.zhouyalin.com/2015/12/24/lnmp-on-ubuntu-14-04.html

© 著作权归作者所有

共有 人打赏支持
此木倚南
粉丝 0
博文 3
码字总数 1517
作品 0
太原
私信 提问
MySQL实现差集(Minus)和交集(Intersect)

MySQL没有实现Minus和Intersect功能,就像它也没有实现cube的功能一样。 可以用SQL实现同样的功能,就是麻烦了点。 drop table t1; drop table t2; create table t1(id int primary key,nickn...

Airship
2016/03/03
290
0
CentOS 7 安装MySQL

说说在CentOS 7 下安装MySQL数据库的过程,希望对大家有所帮助。 从MySQL官网下载源再用yum安装: wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysq...

动听的椰子
2016/01/01
19
0
源代码安装mysql5.5

本文主要介绍了如何在源码安装mysql5.5,所用系统为CentOS6.5 一、安装相应的开发环境 yum install -y ncurses-devel yum install -y libaio yum install -y bison yum install -y gcc-c++ y...

devin223
2015/07/10
0
0
《Android系统源代码情景分析》连载回忆录:灵感之源

上个月,在花了一年半时间之后,写了55篇文章,分析完成了Chromium在Android上的实现,以及Android基于Chromium实现的WebView。学到了很多东西,不过也挺累的,平均不到两个星期一篇文章。本...

Luoshengyang
2017/01/10
0
0
TODO:即将开发的第一个小程序

TODO:即将开发的第一个小程序 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。个人理解小程序是寄宿在微信平台上的一个前端框架...

OneTODO
2016/12/09
15
0

没有更多内容

加载失败,请刷新页面

加载更多

错误: 找不到或无法加载主类

在IDEA的使用过程中,经常断掉服务或者重启服务,最近断掉服务重启时突然遇到了一个启动报错: 错误:找不到或无法加载主类 猜测:1,未能成功编译; 尝试:菜单---》Build---》Rebuild Pro...

安小乐
18分钟前
1
0
vue路由传参,刷新页面,引发的bug

最近遇到一个bug 通过vue路由跳转到页面, 然后接参控制(v-if ),成功显示 而刷新页面,显示失败。 苦苦地找了半天原因,打印参数发现正确,再打印下类型......,路由跳过来会保持传参时的...

hanbb
19分钟前
0
0
【58沈剑 架构师之路】InnoDB,select为啥会阻塞insert?

MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。 但是,如《InnoDB,5项最佳实践》所述,如果查询没有命中索引,也将退化为表锁。 InnoDB的细粒度锁,是实现在索引记录上的。 一,Inn...

张锦飞
22分钟前
0
0
冒泡,选择和插入排序比较

/** * 冒泡排序,两层嵌套循环,内层局部比较后,找出最大或者最小数据并交换数据,使其局部有序,外层用于比较剩余元素,相较于选择排序,选择排序相当于是冒泡的一个优化版本(减少了交换...

strict_nerd
23分钟前
0
0
html内联(行内)元素、块级(块状)元素和行内块元素分类

HTML可以将元素分类方式分为内联(行内)元素、块级(块状)元素和行内块元素三种。 注:HTML是标签语言,那么既然是标签,就可以自己定义一些自己元素(如<wode>自定义的元素</wode>等),自...

NB-One
29分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部