yjiang's cake

ubuntu下使用nginx

Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。 那么我们必须使用FastCGI方式来执行PHP程序。

1.安装nginx,运行:

sudo apt-get intsall nginx

Ubuntu安装之后的文件结构大致为:

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

下面可以启动nginx来看看效果(请确保80端口没有其他服务在使用):

Ubuntu请运行: sudo /etc/init.d/nginx start
然后打开浏览器,查看http://localhost/ 看看是否看到了“Welcome to nginx!” 如果看到了,说明安装成功。 当然,基本上,这块儿都不会出问题。 如果运行不成功,可以先 sudo killall apache2 杀掉apache进程

2.安装php:

当然,现在我们都用php5了。 运行: sudo apt-get install php5 php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-tidy php5-xmlrpc php5-sqlite php5-xsl

3.安装spawn-fcgi,运行

`sudo apt-get install spawn-fcgi

为什么要安装spawn-fcgi呢,它用来控制php-cgi进程,以防止进程崩溃或是单进程的效率太低。 网上很多人都说要使用spawn-fcgi必须得安装lighttpd,实际上不必要,可以直接安装spawn-fcgi 接下来就是最让人头疼的配置。
配置Nginx和spawn-fcgi配合运行

1.在/etc/nginx/fastcgi_params 文件最后,加入一行,可以用sudo gedit /etc/nginx/fastcgi_params打开文件 加入此行: fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 2.另外需要在PHP-CGI的配置文件(Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini)中,找到cgi.fix_pathinfo选项,修改为: cgi.fix\_pathinfo=1; 这样php-cgi方能正常使用SCRIPT_FILENAME这个变量。
3.打开/etc/nginx/sites-available/default文件 在

server {

listen 80;

server_name localhost;

下面添加 root /var/www/nginx-default 即root和server_name同级 这段即相当于apache的默认目录 如果没有这个的话,容易在执行php 文件的时候,会提示”No input file specified”。我就曾在此绕了好大个圈子才发现问题。 然后修改

#location ~ .php$ {

    #fastcgi_pass 127.0.0.1:9000;

    #fastcgi_index index.php;

    #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

    #includefastcgi_params;

#}

修改成

location ~ \.php$ {

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    #fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; 这段没啥用了,留在这儿做个提醒而已

    include /etc/nginx/fastcgi_params; #fastcgi的参数文件地址

}

nginx上的参考文档地址:http://wiki.nginx.org/NginxFullExample

然后运行

sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid  

来启动fast-cgi进程,然后我们可以将这行代码加入到/etc/rc.local文件底部,这样系统启动的时候也可以同时启动PHP的FastCGI进程。

再运行sudo /etc/init.d/nginx restart重启nginx.

好了,可以把你的php文件放在/var/www/nginx-default下面来测试一下了。
如果打开php文件出现:No input file specified 请检查 php.ini的配置中 cgi.fix_pathinfo=1 doc_root= 还有,每个虚机要根据自己不通的虚机设置不能的目录,要保证这个路径正确。

检查/etc/nginx/sites-available下的配置文件中,server内包含 root 及地址 而非location内的root
附重启nginx和php-cgi 的命令
nginx:
sudo /etc/init.d/nginx restart
同样也可以有start,stop等参数 php-cgi: 先杀死进程 sudo killall -HUP php5-cgi 再启动 sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

参数含义如下

  • -f 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置
  • -a 绑定到地址addr
  • -p 绑定到端口port
  • -s 绑定到unix socket的路径path
  • -C 指定产生的FastCGI的进程数,默认为5(仅用于PHP)
  • -P 指定产生的进程的PID文件路径
  • -u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,如nobody、apache等 ———————————-

流量监控工具iftop

sudo aptitude install iftop

设置监控的网卡:
sudo iftop -i eth0

Linux `TOP` 使用详解

![top](http://image48.360doc.com/DownloadImg/2012/01/1017/20656926_1.jpg)

常用热键

t   //显示摘要信息开关.
m   //显示内存信息开关.
A   //分类显示系统不同资源的使用大户。有助于快速识别系统中资源消耗多的任务。
f   //添加删除所要显示栏位.
o   //调整所要显示栏位的顺序.
r   //调整一个正在运行的进程Nice值.
k   //结束一个正在运行的进程.
z   //彩色/黑白显示开关

命令行启动参数

用法: top -hv | -bcisSHM -d delay -n iterations [-u user | -U user] -p pid [,pid ...]
-b : 批次模式运行。通常用作来将top的输出的结果传送给其他程式或储存成文件。
-c : 显示执行任务的命令行。
-d : 设定延迟时间
-h : 帮助
-H : 显示线程。当这个设定开启时,将显示所有进程产生的线程。
-i : 显示空闲的进程。
-n : 执行次数。一般与-b搭配使用
-u : 监控指定用户相关进程
-U : 监控指定用户相关进程
-p : 监控指定的进程。当监控多个进程时,进程ID以逗号分隔。这个选项只能在命令行下使用。
-s : 安全模式操作
-S : 累计时间模式
-v : 显示top版本,然后退出。
-M : 自动显示内存单位(k/M/G)

栏位信息

在top中,分别使用26个英文字母对应进程相关信息栏位。可已通过f来添加或移除指定的栏位,通过o来调整对栏位显示顺序。
a: PID (Process Id):任务的进程ID
b: PPID (Parent Process Pid):父任务的进程ID
c: RUSER (Real User Name):任务的所有者真实名称
d: UID (User Id):任务所有者ID
e: USER (User Name):任务所有者名称
f: GROUP (Group Name):任务所有者群组名
g: TTY (Controlling Tty):终端
h: PR (Priority):优先级
i: NI (Nice value):Nice值
j: P (Last used CPU (SMP)):
k: %CPU (CPU usage):CPU使用率
l: TIME (CPU Time):CPU时间
m: TIME+ (CPU Time, hundredths):CPU时间,精确到秒
n: %MEM (Memory usage (RES)):内存使用率
o: VIRT (Virtual Image (kb)):虚拟内存。VIRT = SWAP + RES
p: SWAP (Swapped size (kb)):交换空间
q: RES (Resident size (kb)):常驻内存。RES = CODE + DATA
r: CODE (Code size (kb)):
s: DATA (Data+Stack size (kb)):
t: SHR (Shared Mem size (kb)):共享内存。
u: nFLT (Page Fault count):
v: nDRT (Dirty Pages count):
w: S (Process Status):进程状态
  分别有以下几种:
  D = uninterruptible sleep = 不可被唤醒睡眠
  R = running = 正在运行中
  S = sleeping = 睡眠状态
  T = traced or stopped = 出错或停止状态
  Z = zombie = 僵尸状态
  x: Command (Command line or Program name):进程名或命令行
  y: WCHAN (Sleeping in Function):
  z: Flags (Task Flags):

示例1:增加和移除进程信息栏位(输入f)

exp1

示例2:调整进程信息栏位显示顺序(输入o)

exp2

交互命令

全局命令

回车、空格 : 刷新显示信息
?、h : 帮助
= : 移除所有任务显示的限制
A : 交替显示模式切换
B : 粗体显示切换
d、s : 更改界面刷新时间间隔
G : 选择其它窗口/栏位组
I : Irix或Solaris模式切换
u、U : 监控指定用户相关进程
k : 结束进程
q : 退出top
r : 重新设定进程的nice值
W : 存储当前设定
Z : 改变颜色模板

摘要区命令

l : 平均负载及系统运行时间显示开关
m : 内存及交换空间使用率显示开关
t : 当前任务及CPU状态显示开关
1 : 汇总显示CPU状态或分开显示每个CPU状态

任务区命令

外观样式

b : 黑体/反色显示高亮的行/列。控制x和y交互命令的顯示樣式。
x : 高亮显示排序的列
y : 高亮显示正在运行的任务
z : 彩色/黑白显示。

显示内容

c : 任务执行的命令行或进程名称
f、o : 增加和移除进程信息栏位及调整进程信息栏位显示顺序
H : 显示线程
S : 时间累计模式
u : 监控指定用户相关进程

任务显示的数量

i : 显示空闲的进程
n或# : 设置任务显示最大数量

任务排序

M : 按内存使用率排序
N : 按PID排序
P : 按CPU使用率排序
T : 按Time+排序
< : 按当前排序栏位左边相邻栏位排序
> : 按当前排序栏位右边相邻栏位排序
F 或 O : 选择排序栏位
R : 反向排序

ubuntu下让dede使用memcache加速

首先,认清楚memcache跟memcached不是一回事儿,虽然作用一样,但不是同一个东西。
memcache与memcached

然后呢,要使用memcache当然要先安装服务端:

sudo aptitude install memcached

配置一下服务端,给memcache分配下可用内存:

vi /etc/memcached.conf

#Memory a usage in Mb 
-m 16
# default port
-p 11211
# user to run daemon nobody/apache/www-data or else -u nobody
# only listen locally
-l 127.0.0.1

既然PHP要使用memcache,就要安装php的memcach扩展:

sudo aptitude install memcache

大功告成,重启下apache及memcache使其生效:

sudo service apache2 restart sudo service memcached restart

记:VPS折腾笔记2

最近一直在忙小熊的事儿,白天晚上的忙。
而且工作一天,晚上回到家都10点了,再加上讨厌的干眼症,真的不想再开电脑了。

刚搬到新龙城1周,在这个被联通垄断的小区,只好先暂时用着20块钱的3G。这卡都跟了我快10年了,时间啊...想想快的吓人。
周末无事可做,去公司加班,顺便继续体验这免费的阿里云,16号就过期了,还3天时间,抓紧体验。

链接速度不错,很快就连上了;一番折腾开始。

1.首先当然是git,这个是必须的。sudo aptitude install git-core 轻车熟路 2.然后开始LAMP,sudo aptitude install taksel 嗯?报错?google一番,居然12.04也要先update一下,于是sudo apt-get update,继续,顺利安装。
3.一通下一步,顺利安装好了LAMP。
4.难用的默认环境啊,开始从虚拟机拷贝自己的各种配置,scp完成后,source一下,瞬间变成习惯的样式了。
5.当然还有分屏工具了,byobu是少不了的。sudo aptitude install byobu 6.既然要测试,WEB网站是少不了的,先装个lftpsudo aptitude install lftp,然后mirror同步下来。修改配置,搭好环境,把PHP-GD库装上sudo aptitude install php5-gd. 7.还有memecache,也试试吧,以前还没用过呢。sudo aptitude install memcached php5-memcache.嗯~这里得注意下,php的memcache跟memcached不是一个东西,是有区别的。顺便修改下memcache分配的内存大小/etc/memecache.conf -m .OK,重启apache及memcachedsudo service apache2 restart``sudo service memcached restart,这样就全部搞定了。

~ linux真心好用,几行命令,简单修改下配置,各种环境分分钟搞定.

Copyright © 2016 yjiang's cake

返回顶部