
回复: 更改pip源至国内镜像,显著提升下载速度 |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 帖子:
7077
等级: 58; EXP: 5
HP : 0 / 1426 MP : 2359 / 212810 ![]() |
PyPI使用国内源
通过几次pip的使用,对于默认的pip源的速度实在无法忍受,于是便搜集了一些国内的pip源,如下: 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban) http://pypi.douban.com/simple/ 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/ 使用方法很简单,直接 -i 加 url 即可!如下: 1 # pip install web.py -i http://pypi.douban.com/simple 如果有如下报错: 请使用命令: 1 # pip install web.py -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 如果想配置成默认的源,方法如下: 需要创建或修改配置文件(一般都是创建), linux的文件在~/.pip/pip.conf, windows在%HOMEPATH%\pip\pip.ini), 修改内容为: [global] index-url = http://pypi.douban.com/simple [install] trusted-host=pypi.douban.com 这样在使用pip来安装时,会默认调用该镜像。 临时使用其他源安装软件包的python脚本如下: 1 2 3 4 5 6 7 #!/usr/bin/python import os package = raw_input("Please input the package which you want to install!\n") command = "pip install %s -i http://pypi.mirrors.ustc.edu.cn/simple --trusted-host pypi.mirrors.ustc.edu.cn" % package os.system(command) 也可以使用读入文件进行安装。 ok,仅以记录一下,以便于后期查阅!
2018/7/21 23:26
|
|
![]() |
更改pip源至国内镜像,显著提升下载速度 |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 帖子:
7077
等级: 58; EXP: 5
HP : 0 / 1426 MP : 2359 / 212810 ![]() |
更改pip源至国内镜像,显著提升下载速度
经常在使用python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的烦恼。 网上有很多可用的源,例如豆瓣:http://pypi.douban.com/simple/ 清华:https://pypi.tuna.tsinghua.edu.cn/simple 最近使用得比较多并且比较顺手的是清华大学的pip源,它是官网pypi的镜像,每隔5分钟同步一次,地址为 https://pypi.tuna.tsinghua.edu.cn/simple 临时使用: 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gevent,这样就会从清华这边的镜像去安装gevent库。 永久修改,一劳永逸: linux下,修改 ~/.pip/pip.conf (没有就创建一个), 修改 index-url至tuna,内容如下: [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple windows下,直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini,内容如下 [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
2018/7/21 23:13
|
|
![]() |
debian使用 Logrotate 来切割日志 |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 帖子:
7077
等级: 58; EXP: 5
HP : 0 / 1426 MP : 2359 / 212810 ![]() |
debian使用 Logrotate 来切割日志
debian使用 Logrotate 来切割日志 前言, 之前修改了mysql.cnf, 导致日志转储每天会报错并且增加一条mail数据. 于是修改了下logrotate来避免, 顺便看了下man 1. install && configurate 绝大多数linux都默认安装了logrotate, 配置文件分散了下, 和mysql, apache, nginx之类的程序一样, 采用了主配置文件 /etc/logrotate.conf 以及 子配置文件/etc/logrotate.d/*.conf 同时, logrotate默认是放在了/etc/cron.daily/logrotate来让cron每天执行 2. 配置解析 以/etc/logrotate.conf为例, #为注释 # see "man logrotate" for details # rotate log files weekly weekly #weekly为每周处理, 可用daily, monthly,来指定转储周期为每天,每月 # keep 4 weeks worth of backlogs rotate 4 #指定日志文件删除前转储的次数, 0 没有备份, 4指保留4个备份 # create new (empty) log files after rotating old ones create #转储文件, 使用指定的文件模式来创建新的日志文件, 比如create 0640 mysql mysql 表明以mysql用户和组来创建权限640的日志文件. # uncomment this if you want your log files compressed #compress #是否启用gzip压缩转储以后的日志, 注释后=nocompress, 默认是不压缩 #delaycompress #和compress一起使用, 转储的日志文件到下一次转储才压缩, 也就是如果按照每天转储日志, 要第三天的日志文件才压缩. 这样就方便前一天的日志可以直接被tail, cat而不需要gzip解压. #compresscmd /bin/tar #配合compress, 指定压缩工具的执行路径 #compressext .gz #配合compress, 指定采用别的日志转储压缩方式的后缀, 比如要用bzip, tar.gz #size 10k #超过多少k后启用一次转储, 也就是说如果设置的是每天转储, 如果一天有29k, 那么会生成2个转储日志. 并且按照最新的序号最小来命名. #ifempty #即使是空文件也转储, 默认值, 如果需要忽略空日志文件, 用notifempty #dateext #增加日志的时间戳, 默认是没有添加的, 加上后在转储日志上加"-YYYMMDD"格式的日期, 不配置则是一个".数字序号" #dateformat #配合上面使用, 来自定义日志的后缀日期格式, 比如dateformat -%Y%m%d.%s # packages drop log rotation information into this directory include /etc/logrotate.d #包含的子配置 # no packages own wtmp, or btmp -- we'll rotate them here # 下面是一个wtmp的例子, /var/log/wtmp { missingok monthly create 0664 root utmp rotate 1 } # 下面是一个btmp的例子 /var/log/btmp { missingok monthly create 0660 root utmp rotate 1 } # system-specific logs may be configured here
2018/5/12 14:51
|
|
![]() |
回复: 给 Linux 系统“减肥”,系统垃圾清理 |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 帖子:
7077
等级: 58; EXP: 5
HP : 0 / 1426 MP : 2359 / 212810 ![]() |
测试
2018/2/24 20:33
|
|
![]() |
给 Linux 系统“减肥”,系统垃圾清理 |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 帖子:
7077
等级: 58; EXP: 5
HP : 0 / 1426 MP : 2359 / 212810 ![]() |
给 Linux 系统“减肥”,系统垃圾清理Linux 计算机安装后,在我们不断的使用过程中,因为添加、删除软件和上网冲浪、调试程序等行为,硬盘中会产生各种各样的垃圾文件,而随着这些垃圾文件的不断膨胀,它们不仅会平白吞噬掉我们宝贵的硬盘空间,更会拖累机器的运行速度,影响我们的工作效率。本文介绍一下给 Linux 系统减肥的方法和工具的使用技巧,本文使用的 Linux 发行版本是 Ubuntu 12.04 。本文介绍的工具包括:Activity Log Manager、BleachBit、find、fdupes、Geeqie、GConf Cleaner,这些工具都是开源工具,Linux 用户可以通过下载编译源代码在其他流行的 Linux 版本(如 Redhat、SUSE 等)上使用。 Linux 下哪些文件属于垃圾文件软件安装过程中产生的临时文件 许多 bin 格式的软件在安装时,首先要把自身的安装文件解压缩到一个临时目录(一般为/tmp 目录)然后再进行安装。如果软件设计有疏忽或者系统有问题,当安装结束后,这些临时文件就会变得并不“临时”,成为硬盘里的一堆垃圾,很多时候它们以*.tmp 的面孔出现。 软件运行过程中产生的临时文件 和安装过程一样,在软件的运行过程中通常也会产生一些临时交换文件,有些软件运行过后遗留下来的垃圾甚至多达数百兆,比如 ssh 服务器和客户端连接过程中时产生的文件。还有虚拟机运行时产生的文件。另外我们删除一个账户之后,还会存在一些无用垃圾文件及目录。 上网冲浪产生的临时文件 我们在上网的时候,浏览器总是将网页文件下载到本地机器上,这些缓存文件不但占用了宝贵的磁盘空间,还常常会把我们的个人隐私公之于众。 一些不常用的鸡肋文件 比如一些应用软件自带的帮助和系统手册页等。既然食之无味索性也将它们视作垃圾文件的一种表现。占用空间甚大,更会严重拖累系统和一些图形处理软件的运行速度。另外还有一些损坏的桌面文件,它包括损坏的应用程序菜单按钮和文件关联。 各种缓存文件 如果 Linux 用户安装使用 GIMP 或者 Geeqie 等图形编辑工具,在这些软件都有图片预览功能,在保存了图片的文件夹下会产生一个名为“Thumbs.db”的文件,这个文件会随着图片文件的增加而膨胀。还有就是.DS_Store 文件,DS_Store 文件是用来存储这个文件夹的显示属性的:比如文件图标的摆放位置。删除以后的副作用就是这些信息的失去。另外还有使用 apt 或者 yum 软件包安装过程中生成的缓存文件。 使用 Linux 命令删除垃圾文件删除用户后遗留下的垃圾文件这里我们使用到的主要命令是 find 。举个例子: 我们删除一个账户之后,还会存在一些无用垃圾文件及目录,我们要找出属于这个用户的垃圾东西,使用 find / -user 用户名 :就可以找到根目录下属于这个用户的相关文件 ,使用命令: #find ./ -nouser |xargs rm ?rf core 文件当我们在系统下运行某个程序出错的时候,系统会自动将残留在内存中的数据存成 core 文件,久而久之,系统中遗留下来的 core 会越来越多,就像灰尘一样散落在系统的每一个角落里很是烦人。这个时候,我们就可以应用 find 命令加上?exec 参数来清理它们。使用命令: # find / -name core -print -exec rm -rf {} ; 多余的手册页另外 Linux 提供了众多语言的手册页(man)比如 Ubuntu 的 手册页位于/usr/share/man 目录下 ,可以使用命令删除多余语言的手册页保留中英文即可。 # cd /usr/share/man # find ./ -maxdepth 1 -type d | tail -n +2 | grep -E -v '(en|zh|man).*' | while read d; do rm -rf $d; done 说明:关键字是(en|zh|man) ,您可以根据自己的情况修改。 使用 fdupes 工具删除指定目录下重复文件 fdupes 是一个命令行工具,它会查找和删除指定目录的重复文件,它通过文件的大小和 MD5 值进行比较 。一个字节一个字节进行对比。 首先安装这个工具 # apt-get install fdupes 在 /etc 目录查找重复文件 ,使用如下命令: #fdupes /etc 可以与 Linux 命令组合使用,删除文件 : #fdupes -r -f . | grep -v ^$ | tee duplicate.txt cat duplicate.txt | while read file; do rm -v "$file"; done 另外也可以与 sed 命令组合使用,删除文件 : # fdupes -r -n -S /tmp | sed -r “s/^/#rm ”/” | sed -r “s/$/”/” >duplicate-files.sh 删除缓存文件清理旧版本的软件缓存 # apt-get autoclean 清理所有软件缓存: #apt-get clean 使用 Geeqie 工具找出相似图像文件现在的硬盘容量是越来越大,出于备份的考虑,很多朋友会采取“宁滥勿缺”的原则保存图片,这就可能出现文件重复的情况,造成文件搜索的效率低下。要在海量的存储空间中找出重复的文档,并不是一件容易的工作。其实借助著名的图像浏览工具 Geeqie 可以很轻松地找出系统中的重复和相似图像文件。这些文件相比文本文件更大,时间长了会占用很多硬盘空间。使用上面介绍的 fdupes 工具就不行,因为 fdupes 工具只能删除完全相同 (md5sum 相同) 的重复文件, 但若要剔除 "相似" 的图片文件, 则可使用 geeqie 工具。首先安装这个工具: # apt-get install gqview 下面运行这个工具,在要搜索的目录上按鼠标右键, 选择 "Find duplicates recursive..."见图 1 。 选择左下角的 "Compare by:" 下拉菜单可选择比对方式 Similarity (custom)找出相似度 99% 以上的图片,另外可以勾选 "Thumbnails" 可显示缩略图见图 2 下面在被选取的项目上按鼠标右键, 点选 "Delete" 即可删除所有被选取的图片, 删除前会有一个的确认界面以免误删。说明 99%是图片相似度的缺省值,用户可以通过如下方式修改参数:在 Edit → Preferences → Preferences... → Behavior → Miscellaneous: Custom similarity threshold 见图 3 。 使用 BleachBit 清理文件简介BleachBit 是一款开源免费的系统清理工具,功能类似 Windows 平台的 CCleaner。BleachBit 能够删除隐藏的垃圾文件,以及简单的保护你的隐私。擦除缓存,删除 cookies 文件,清除互联网浏览历史,删除未使用的本地化碎片日志,删除临时文件,是一款非常实用的跨平台的系统清理工具。BleachBit 提供有 rpm 和 deb 二进制包,适用于 Fedora/CentOS/RHEL、Debian/Ubuntu 等 Linux 发行版。其它 Linux 用户可以选择 BleachBit 的源码包(下载地址:http://bleachbit.sourceforge.net/download.PHP )。使用 BleachBit,你可以清理系统中的缓存、历史、临时文件、cookies 等不需要的东西,这样可以释放你的磁盘空间。当前,BleachBit 能够清理 Beagle、Firefox、Epiphany、Flash、OpenOffice.org 、KDE、 GIMP、JAVA 编程工具、vim、Gedit 编辑器等 70 多种软件所产生的垃圾文件。还有系统运行时生成的“Thumbs.db”的文件和使用 apt 或者 YUM 软件包安装过程中生成的缓存文件以及剪切板里面的历史文件信息等。 首先安装软件: #apt-get install bleachbit 安装之后系统工具菜单里就会多出两个工具:bleachbit 和 bleachbit as root。对于 root 用户使用第 2 个,软件第一次运行,弹出“首选项窗口”,见图 4。 简单说明一下设置界面:包括定制文件和文件夹,驱动器列表 ,语言,白名单(免于清理的)设置,以及是否开机启动 BleachBit 等一些选项。 下面看看工作界面见图 5。 BleachBit 软件功能单一因此使用起来也方便。从图 5 里我能看到。 软件的左边罗列出了能够清理的各种垃圾,点击“预览“按钮,就会分析出垃圾文件的明细和大小。 勾选好软件按 clean(清除)按钮即可。 以 Chrome 浏览器为例介绍操作实例Chrome 浏览器可以清理的文件主要包括:
首先查看可清理的 Chrome 浏览器文件见图 6 。 选中欲清理的项目后,点击“预览“按钮即可执行对该类项目内所含垃圾文件的扫描操作,扫描过程非常快速,扫描过程完毕,用户将看到检测到的垃圾文件列表及其统计信息,下面用户只需鼠标点击“清理”按钮即可轻松清除这些已经被检测到的垃圾文件。 上面笔者选择执行的是对 Chrome 浏览器的扫描清理任务,当然可以选择全部垃圾列表中的所有项目,用户只需逐一勾选扫描项目选择激活项即可。 使用 Activity Log Manager 清理残留在系统中的使用痕迹上网冲浪,用账号登录系统,包括使用一些编辑软件都会在系统里留下蛛丝马迹,这些残留信息中包含个人信息,如果被不法分子利用,就会造成隐私泄露,下面介绍的工具是 Activity Log Manager,它是配置在 Zeitgeist 活动日志中记录的内容的 ,使用它可以有效保护隐私。首先安装这个工具: #apt-get install activity-log-manager Activity Log Manager 的中文名称是活动日志管理器,安装完成后出现在附件菜单中。它的使用方法也比较简单。最直接的就是设置停止记录的功能,然后删除所有历史文件见图 7 。 当然用户也可以进行有区别的设置,可以根据具体情况设置哪些应用程序和文件可以保留历史文件那些不保留。下面通过“文件”界面进行设置见图 8 这里笔者选择“电子表格、文本、即时消息”三个事关隐私的选项。另外对于一些特殊的应用程序用户还可以自己添加到活动日志管理器中,见图 9 使用 GConf Cleaner 清理 GConfGConf 是一个用于存储 GNOME 应用程序选项设置的系统。如果该系统充斥着大量无用键值,那么将使 GConf 臃肿不堪。这对应用程序的启动速度和性能都是有影响的。为了解决这个问题,你可以使用 GConf Cleaner 来对其进行清理。Gconf-Cleaner 是一款类似于 Windows 注册表清理器的工具。它会检查 Gconf 数据库(即 GNOME 配置数据库)并移除无用及过时的项目。 首先安装这个工具: #apt-get install gconf-cleaner 然后从终端执行 gconf-cleaner 启动 GConf Cleaner 程序。这个程序具有执行向导,只需按步骤操作即可。 向导初始画面,点击 Forward 会进入分析过程。图 10 是分析结果,它提供具体数据,并可保存。再次点击 Forward 则开始清理过程。
2018/2/24 20:33
|
|
![]() |
Debian下配置exim4发送邮件 |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 帖子:
7077
等级: 58; EXP: 5
HP : 0 / 1426 MP : 2359 / 212810 ![]() |
Debian下配置exim4发送邮件
我习惯用给 VPS 安装 debian 系统,但不同的vps商提供的系统镜像会有所不同,大部分安装好系统就支持邮件发送,lnmp 安装配置好后 WordPress 发送邮件(如评论回复邮件通知)都正常。不过,也会遇到 ssh 连接能用命令发送邮件,而 WordPress 下无法正常发送邮件的情况。 今天我在玩新的 vps 时,又遇到了 WP 下无法发送邮件的情况,看了一下配置,跟以前的一样啊,折腾了 1 个多小时,还是木有解决。最后我还是中规中矩的重新设置了一下 exim4,竟然搞定了。这里做个笔记,有相同遭遇的朋友可以尝试此方法尝试解决。 1. 确定 debian 下已经安装好 exim4(一般的镜像都自动安装,有些超精简版本会没有) 如果没有安装 exim4,那么直接用 apt-get -y install exim4 命令安装即可。 2. 执行命令 dpkg-reconfigure exim4-config进行配置,第一项选择第一个“internet site; mail is sent and received directly using SMTP”,然后一路默认 Next 即可。 3. 修改 update-exim4.conf.conf,执行命令 vi /etc/exim4/update-exim4.conf.conf配置内容基本如下: dc_eximconfig_configtype='internet' dc_other_hostnames='zww.me' dc_local_interfaces='127.0.0.1' dc_readhost='myvps.zww.me' dc_relay_domains='' dc_minimaldns='false' dc_relay_nets='' dc_smarthost='' CFILEMODE='644' dc_use_split_config='false' dc_hide_mailname='' dc_mailname_in_oh='true' dc_localdelivery='mail_spool'注:dc_other_hostnames 改为自己的vps主机名,dc_readhost 改为你的邮箱后缀 4. 重启 exim4 /etc/init.d/exim4 restart完。 声明: 除
2015/5/12 17:13
|
|
![]() |
Linux下使用rsync最快速删除海量文件的方法 |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 帖子:
7077
等级: 58; EXP: 5
HP : 0 / 1426 MP : 2359 / 212810 ![]() |
(总结)Linux下使用rsync最快速删除海量文件的方法
标签: Linux,rsync,使用,删除,方法,最快速,海量文件昨天遇到了要在Linux下删除海量文件的情况,需要删除数十万个文件。这个是之前的程序写的日志,增长很快,而且没什么用。这个时候,我们常用的删除命令rm -fr * 就不好用了,因为要等待的时间太长。所以必须要采取一些非常手段。我们可以使用rsync来实现快速删除大量文件。 1、先安装rsync: yum install rsync 2、建立一个空的文件夹: mkdir /tmp/test 3、用rsync删除目标目录: rsync --delete-before -a -H -v --progress --stats /tmp/test/ log/ 这样我们要删除的log目录就会被清空了,删除的速度会非常快。rsync实际上用的是替换原理,处理数十万个文件也是秒删。 选项说明: ?delete-before 接收者在传输之前进行删除操作 ?progress 在传输时显示传输过程 -a 归档模式,表示以递归方式传输文件,并保持所有文件属性 -H 保持硬连接的文件 -v 详细输出模式 ?stats 给出某些文件的传输状态
2014/12/29 0:01
|
|
![]() |
回复: 128MB小内存VPS安装LNMP |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 帖子:
7077
等级: 58; EXP: 5
HP : 0 / 1426 MP : 2359 / 212810 ![]() |
Debian 6 上安装 Nginx+PHP+MySQL
2014-02-14 ? Unmi 正在使用亚马逊的 VPS,一年的小心翼翼的免费期,选择的是 Debian 6 32 位的系统,因搭建 WordPress 试图在上面安装 Nginx+PHP 的环境。看着在 Nginx 环境下多是使用 php-fpm,而不是 php-cgi,前者与后者的区别是在孤立的 php-cgi 之上又多了一个调度层。 一开始打算一步步纯手工打造,但在执行 apt-get install php-fpm 时总有不可逾越的依赖症,所以转而寻求更傻瓜的一键包安装方式。试过 LNMP,包太大,东西太过于齐全,把人太当傻瓜,虽然如此,我在用它安装时也有些慢,因为它也是采取的编译安装方式,针对本机应该有很好的优化。没装完我就中断了,下次有时间可以再试下。 正好在这期间看到了 Dvid Pennington 制作的 lowendscript lnmp 一键安装脚本,很省事,连安装 WordPress 也考虑到了,这里有介绍,比较详细 lowendscript:最省资源lnmp一键包。我只记录下我自己的安装过程,以备忘。 1. 下载 lowendscript 安装脚本 wget --no-check-certificate https://raw.github.com/Xeoncross/lowen ... pt/master/setup-debian.sh 2. 添加可执行权限 chmod +x setup-debian.sh 3. 添加 dotdeb 源 sudo ./setup-debian.sh dotdeb 4. 系统准备 sudo ./setup-debian.sh system 5. 安装 php,会告诉你怎么起停 php-fpm, sudo /etc/init.d/php5-fpm restart sudo ./setup-debian.sh php 6. 安装 Nginx (1.4+), 起停 nginx 用 sudo /etc/init.d/nginx restart sudo ./setup-debian.sh nginx 7. 安装 MySQL,/root/.my.cnf 中看管理员帐户和密码 本文原始链接 http://unmi.cc/debian-6-install-nginx-php-mysql/, 来自 隔叶黄莺 Unmi Blogsudo ./setup-debian.sh mysql 8. 指定域名建立站点 sudo ./setup-debian.sh site 还能帮你自动搭建 WordPress 站点,用命令 sudo ./setup-debian.sh wordpress [domain],另外 setup-debian.sh 命令还为我们提供了很多工具的便捷安装,运行 sudo ./setup-debian.sh --help 看帮助内容: Usage: setup-debian.sh [option] [argument] Available options (in recomended order): - dotdeb (install dotdeb apt source for nginx 1.2+) - system (remove unneeded, upgrade system, install software) - dropbear [port] (SSH server) - iptables [port] (setup basic firewall with HTTP(S) open) - mysql (install MySQL and set root password) - nginx (install nginx and create sample PHP vhosts) - php (install PHP5-FPM with APC, cURL, suhosin, etc...) - exim4 (install exim4 mail server) - site [domain.tld] (create nginx vhost and /var/www/$site/public) - mysqluser [domain.tld] (create matching mysql user and database) - wordpress [domain.tld] (create nginx vhost and /var/www/$wordpress/public) ... and now some extras - info (Displays information about the OS, ARCH and VERSION) - sshkey (Generate SSH key) - apt (update sources.list for UBUNTU only) - ps_mem (Download the handy python script to report memory usage) - vzfree (Install vzfree for correct memory reporting on OpenVZ VPS) - motd (Configures and enables the default MOTD) - locale (Fix locales issue with OpenVZ Ubuntu templates) - webmin (Install Webmin for VPS management) - test (Run the classic disk IO and classic cachefly network test) - 3proxy (Install 3proxy - Free tiny proxy server, with authentication support, HTTP, SOCKS5 and whatever you can throw at it) - 3proxyauth (add users/passwords to your proxy user authentication list) 在站点目录中建个 phpinfo.php 文件来测试一下吧,可以看看 php.ini 文件的位置,已启用了哪些 php 组件等。 默认情况下 Nginx 中处理 php 时是通过 http://127.0.0.1:9000 与 php-cgi 通信的,我们可以改成借助于 sock 文件来建立关联的,修改 php-fpm.conf 文件把 listen 设置为 /var/run/php5-fpm.sock。然后改 /etc/nginx/php.conf 中的 fastcgi_pass 127.0.0.1:9000 为 fastcgi_pass unix:/var/run/php5-fpm.sock. 如果你在访问 php 时看到 502 Bad Gateway, 原因就是 php 没法请求给 php-cgi 进行处理,有错误别忘了查看 error.log,可能里面有写到类似这样的内容 2014/02/12 04:07:31 [error] 20160#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 184.75.196.2, server: unmi.cc, request: "GET /phpinfo.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: “unmi.cc" 这时你可以看看 9000 端口是否起来了。 再就是默认情况下 php 的可能有些你要用到的组件没被安装,一个个处理就行,比如要装下面这些 sudo apt-get install php5-curl php5-gd php5-mysql 安装 PHP 组件后后 php5-fpm 会自动重启,这就是 php-fpm (PHP - FastCGI Process Manager) 的一个好处。 本人的体验,也不知道是哪儿出错了,反正搭建起来的 WordPress 是能用了,刚开始也挺快的,可以没多久 PHP 网页就很难打开,重启 Nginx, PHP-FPM,甚至是操作系统也是短暂时的解决问题,不过几分钟又假死了,原因应该是 PHP-FPM 在处理 php 脚本没响应了。看看不行我又装回了熟悉的 Apache2 了,有机会再去搬弄 Ngnix+PHP 的是非吧。 链接:1. 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI? 2. Nginx and PHP-FastCGI on Debian 6 (Squeeze) 3. lowendscript:最省资源lnmp一键包 4. Debian 源安装 NGINX+PHP+MYSQL 5. Debian安装Nginx+php-fpm+mysql+phpmyadmin备忘 6. Debian 6(Squeeze)安装 Nginx + PHP5 + PHP-FPM + MySQL(一)
2014/10/16 0:04
|
|
![]() |
回复: 浅谈如何学习linux v1.2 |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 帖子:
7077
等级: 58; EXP: 5
HP : 0 / 1426 MP : 2359 / 212810 ![]() |
test
2014/8/21 16:42
|
|
![]() |
回复: Nginx与PHP(FastCGI)502 Bad Gateway 解决 |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 帖子:
7077
等级: 58; EXP: 5
HP : 0 / 1426 MP : 2359 / 212810 ![]() |
Ubuntu下使用Nginx+PHP教程
By Giko on 2011 年 07 月 30 日 Nginx收到了越来越多的欢迎,已经交广泛的取代了Apache的地位。 接下来已Ubuntu为例,写一个Nginx+php fastcgi指引。 1. Ubuntu 11.04 2. 首先卸载apache2,防止80端口冲突: sudo apt-get remove apache2-mpm-prefork 3. 安装nginx, php-cgi, 顺便安装上php-apc sudo apt-get install nginx php5-cgi php-apc 4. 建立/etc/default/php-fastcgi文件,设置fastcgi的启动属性 (若没有该文件,则建立) vi /etc/default/php-fastcgi START=yes EXEC_AS_USER=www-data FCGI_HOST=localhost FCGI_PORT=9000 PHP_FCGI_CHILDREN=30 PHP_FCGI_MAX_REQUESTS=1000 参数说明: 本启动选线告知启动器,php执行用户为www-data(比较方便的是,保持其和nginx用户一致);监听本地9000端口,开启30个请求。每个cgi进程在响应1000次请求之后,释放其自身资源重新建立。 5. 建立fastcgi.conf文件。 luo@idooee:/etc/nginx$ sudo vi fastcgi.conf #fastcgi.conf fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200; fastcgi_connect_timeout 1800; fastcgi_send_timeout 600; fastcgi_read_timeout 1800; #fastcgi_ignore_client_abort on; # Vhosts fastcgi config fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; 6. 建立cgi启动文件: luo@idooee:/etc/init.d/$ sudo vi /etc/init.d/php-fastcgi #!/bin/sh ### BEGIN INIT INFO # Provides: php-fastcgi # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start and stop php-cgi in external FASTCGI mode # Description: Start and stop php-cgi in external FASTCGI mode ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="php-cgi in external FASTCGI mode" NAME=php-fastcgi DAEMON=/usr/bin/php-cgi PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME [ -x "$DAEMON" ] || exit 0 [ -r /etc/default/$NAME ] && . /etc/default/$NAME . /lib/lsb/init-functions if [ "$START" != "yes" -a "$1" != "stop" ]; then log_warning_msg "To enable $NAME, edit /etc/default/$NAME and set START=yes" exit 0 fi export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS DAEMON_ARGS="-q -b $FCGI_HOST:$FCGI_PORT" do_start() { start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile --chuid $EXEC_AS_USER --startas $DAEMON -- $DAEMON_ARGS || return 2 } do_stop() { start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE > /dev/null # --name $DAEMON RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 rm -f $PIDFILE return "$RETVAL" } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac : 7. 增加启动文件可执行权限。 luo@idooee:/etc/init.d/$ sudo chmod +x /etc/init.d/php-fastcgi 8. 启动fastcgi,并检查进程. luo@idooee:/etc/default$ sudo /etc/init.d/php-fastcgi start * Starting php-cgi in external FASTCGI mode php-fastcgi ...done. luo@idooee:/etc/default$ luo@idooee:/etc/default$ luo@idooee:/etc/default$ ps aux | grep php luo 3562 0.0 0.0 33540 3568 pts/2 S+ 14:50 0:00 vi php-fastcgi www-data 3591 0.6 0.0 181368 8988 ? Ss 14:54 0:00 /usr/bin/php-cgi -q -b localhost:9000 www-data 3593 0.0 0.0 181368 3780 ? S 14:54 0:00 /usr/bin/php-cgi -q -b localhost:9000 www-data 3594 0.0 0.0 181368 3780 ? S 14:54 0:00 /usr/bin/php-cgi -q -b localhost:9000 www-data 3595 0.0 0.0 181368 3780 ? S 14:54 0:00 /usr/bin/php-cgi -q -b localhost:9000 9. 将php fastcgi作为开机自动启动 sudo update-rc.d php-fastcgi defaults 10. 设置站点 server { listen 80; server_name www.idooee.com; root /data/idooee.com; location / { index index.html index.php; ## Allow a static html file to be shown first #..... } location ~ .php$ { ## Execute PHP scripts if ($request_uri ~ /(downloader|report)$){ # no trailing /, redirecting rewrite ^(.*)$ $1/ permanent; } include /etc/nginx/fastcgi.conf; } } 11. 重启nginx, 完成。 sudo nginx -t && sudo /etc/init.d/nginx restart 特别注意: Nginx + PHP 有一个重大0day漏洞, 属于Nginx文件类型错误解析漏洞。 举个例子, 访问image文件: http://luochunhui.com/image.jpg/1.php时,image.jpg将被当作php代码被执行。 在涉及用户上传的网站中,这个漏洞将可能导致服务器被侵入。 修补方法: 修改 php.ini ,设置 cgi.fix_pathinfo = 0; 然后重启php-cgi。
2013/6/14 3:54
|
|
![]() |