分类目录归档:站长

ubuntu16.04下MySql 1036 错误码解决(1036: Table ‘xxxx’ is read only)

提示#1036 – Table ‘* ‘ is read only (*号为任意表),也就是说表只有只读属性。

通过SSH,给数据库文件777权限,admin是我的数据库文件夹

1
1、 chmod -R 0777 /usr/local/mysql/var/admin/

给数据库目录的所属用户和组改为MySQL

1
2、chown -R mysql:mysql admin

但是这样还不能更改数据库,首先,找到mysqladmin所在位置,一般都在mysql/bin下面,我的在/usr/local/mysql/bin 里面,还需要运行以下命令:

1
3、 ./mysqladmin -u root -p flush-tables

之后输入root账号的密码,马上就好了,没有任何任何提示,然后测试一下,能正常读写,搬家也就顺利完成。

Ubuntu 16.04 安装VNC远程连接

网上找的这个教程最好,其他都不好使

Ubuntu 16.04 LTS 安装VNC,在百度和谷歌找了很多教程,不是太老,就是说的驴唇不对马嘴,所以忍不住写一些以正视听。

Ubuntu 16.04 LTS是最近出的LTS版本系统,估计未来也会有长期的使用频率,配置好远程桌面,会极大方便工作和生活。很多人也会采用SSH远程管理,鉴于SSH安装和使用是很简单的事情,就不赘述了。

VNC有很多选择,VNC4server,tigervncserver等等,都不推荐,难装又难用。经过多次实验和测试,最后只采用 x11vnc  作为VNC服务器端。

具体配置步骤如下:

# 步骤 1 - 安装 X11VNC
# #################################################################
sudo apt install x11vnc -y

# 步骤 2 - 配置访问密码
# #################################################################

sudo x11vnc -storepasswd /etc/x11vnc.pass

# 步骤 3 - 创建服务
# #################################################################

vi  /lib/systemd/system/x11vnc.service

#粘贴如下代码,最后 :wq 保存,请使用root用户,否则没有权限。
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target

# 步骤 4 - 配置防火墙,配置和启动服务
# ################################################################

sudo ufw allow 5900
sudo systemctl enable x11vnc.service
sudo systemctl daemon-reload

最后重启。

windows2012 配置iis8Django环境项目

虽然过程有点折腾,爬了几个坑总算弄好了,大家可以参考下

之前和同伴使用Django做了一个小网站,想将这个网站部署到真实的生产环境中,测试稳定性与可用性,于是租用了一个云服务器,并将Django部署到上面的IIS中。

系统及软件版本

  • Windows Server 2012 Standard
  • IIS 8.0
  • Anaconda3 4.0.0 64位 (搭载python3.5.1)
  • Django 1.10.1

1. 可运行的django网站

首先确保自己的django网站在服务器上可以通过命令行 runserver 正常运行。 

20170909142421

2. IIS配置

添加角色与功能

  1. 在服务器管理器中,添加角色与功能 
    添加角色和功能
  2. 添加角色与功能,其中CGI组件必须安装。 
    安装相应的功能

3. Python安装wfastcgi模块

  1. 在python的Scripts目录下pip安装wfastcgi模块(我之前已经安装过了,所以截图提示不需再次安装) 
    python安装wfastcgi模块

4. 项目文件处理

  1. 在python的Lib\site-packages目录下,找到wfastcgi.py文件,并将其复制到你的django项目根目录下。 
    复制该文件 
    将这个文件复制到项目根目录
  2. 将项目文件放置到 C:\inetpub\wwwroot 目录下,方便管理,同时可以避免引起Windows Server的某些安全问题。 
    这里写图片描述

5. 配置网站

  1. 进入IIS管理器后,添加网站 
    这里写图片描述
  2. 填写相关参数 
    这里写图片描述
  3. 进入你建立的站点,选择处理程序映射。请注意,必须进入你指定的网站里面,再添加模块映射,否则,映射会添加到你所有的网站里。 
    这里写图片描述
  4. 添加模块映射。模块选择FastCgiModule,如果前面没有安装这个模块,请先安装哦。可执行文件对于本项目来说,实际上是必填的。此例中,C:\Anaconda3\python.exe|C:\inetpub\wwwroot\PowerX\wfastcgi.py。前面是python的路径,后面是wfastcgi.py文件的路径。实际上,如果wfastcgi.py文件路径直接引用python\Lib\site-packages目录下的文件也可以,不过就不可以部署多个Django网站了。 
    这里写图片描述
  5. 填写完参数后,选择请求控制,设置如图 
    这里写图片描述
  6. 确认添加后,程序映射添加成功 
    这里写图片描述
  7. 返回主页,进入FastCGI设置 
    这里写图片描述
  8. 选中新建的FastCGI应用程序,修改环境变量 
    这里写图片描述
  9. 需要添加的变量有3个:
    1. get_wsgi_application()方法的位置,C:\Anaconda3\Lib\site-packages\django\core\wsgi.py
      • Name: WSGI_HANDLER
      • Value: django.core.wsgi.get_wsgi_application()
    2. Django项目目录
      • Name: PYTHONPATH
      • Value: C:\inetpub\wwwroot\PowerX
    3. 项目settings.py文件的位置
      • Name: DJANGO_SETTINGS_MODULE
      • Value: powerx.settings

至此,一个不带static静态文件的Django项目就可以在服务器上运行啦!!!

6. 关于安全性

在Windows Server平台,网页上操作会转换成IIS用户对文件的操作。那么,如果该用户没有服务器上文件的修改权限,那么,就无法对数据库进行增删改的操作。所以,我们需要给IIS用户对该数据库所在文件夹的操作权限。(此处直接添加整个项目的权限,实际项目中,切勿这样做呀~~~) 
这里写图片描述

7. 对于静态文件的处理

此处对静态文件的处理,是基于原项目已经支持静态文件的前提下进行的。如果在普通环境下尚不支持静态文件,请先在项目中设置好参数哦。

  1. 在需要增加静态文件的地方,增加虚拟目录 
    这里写图片描述
  2. 根据需求,可以添加多个指向不同位置的虚拟目录 
    这里写图片描述

至此,回应用池,回收一下或者重启应用。Django项目就可以在服务器上跑起来啦~~~~

保存下留着以后可以参考下

留着用 安装WP Super Cache常见问题

我如何知道博客已被缓存?

查看你的站点的任意页面的源代码。当某个页面是初次创建,你会在源代码末尾看到这样的文本:“Dynamic page generated in XXXX seconds.” 和“Cached page generated by WP-Super-Cache on YYYY-MM-DD HH:MM:SS”。在刷新时,缓存页面会显示相同的时间戳,所以在检查时请稍等几秒。
如果你启用了压缩功能, 文本“Compression = gzip ”也会添加。 如果禁用了压缩,并且这个页面以静态html方式显示,文本“super cache”会添加在其中。

另一种检查你的缓存页面由PHP脚本处理或是由静态缓存而来的方法是查看HTTP header。
WP-Cache (PHP) 缓存页面会有这样的Header“WP-Super-Cache:WP-Cache”。 你可以使用名为Live HTTP Headers的FireFox扩展来检验header。 同时,你还应该查看位于wp-content/cache/supercache/主机名/ 目录下的静态缓存文件。

为什么WP-Super-Cache比WP-Cache好?

这个插件基于非常棒的WP-Cache插件而来,因此具有那个插件所有的优点。 除此之外,它还创建使每次访问Blog都采用单一格式的每个页面的副本,这样可以使服务器更快响应请求。 它几乎和你在浏览器中保存一个页面并把它上传上去替换你的主页一样快。

评论和其他博客上的动态部分会立即更新吗?

评论会在它们通过审核后立刻显示,这取决于博客主人的评论策略。其他页面上的动态元素可能不会更新,除非它们由Javasript,Flash,Java或其他客户端浏览器语言构成。这个插件会真正创建静态html页面,在这些文件被调用时,没有PHP代码执行。 “Popularity Contest”就是一个在缓存环境下不会工作的插件。那些为移动设备用户显示不同内容的插件也有可能不会正常工作。

Super Cache的压缩会拖慢我的服务器吗?

不会,相反它还会加快你的服务器速度。
Super Cache文件被压缩和储存时,大负载的压缩动作只会出现一次。这些文件一般都非常小,发送到访客浏览器上也会比未经压缩的快很多。其结果是,你的服务器会花费更少的时间在传输上,于是也就会节省CPU时间和带块,并使响应下次请求更快速。

为什么 WP UserOnline,Popularity Contest, WP Postratings 或某个插件在我的博客上不再工作或更新状态了?

WP-Super-Cache插件缓存整个页面,所以有些每次页面调用都需要运行PHP代码的插件就不会正常工作了。
想避免这个问题,这个插件必须使用Javascript或AJAX来更新。 如果这个插件要在页面上显示信息,那么也必须有Javascript请求。

为什么这个插件不默认缓存搜索引擎机器人的请求?

这些机器人一般只访问每个页面一次,如果这个页面并不热门,完全没有必要创建缓存文件并让它在你的服务器上闲置。

为什么不创建我站点上所有页面的缓存文件呢?

同刚才那个问题一样,没有必要缓存没人访问的页面。大量的缓存文件会减慢垃圾收集系统的速度,因为它会尝试检查每个文件。同时它还可能给主机商带来问题。 当你的服务器遇到磁盘错误问题时可能需要更长的时间来检查文件。还记得用scandisk或者fsck检查大驱动器时用的时间吗?

1、一个分类页面取代了我的首页…

很小比例使用下列设置的网站会有这样的问题:
使用静态页面作为首页。
使用 /%category%/%postname%/ 永久链接结构

有时一个分类页面会作为站点首页缓存而取代原有静态页面。作者无法重现这个问题,但是有个简单的办法可以解决问题,即将插件设置为半开模式。 对一般的访问量来说,你不会发现你站点的速度有什么不同。

问题处理:

如果你安装插件后发现有什么不正常的现象,可以从这些方面进行检查:

2、服务器是否可写 wp-content 目录?

wp- content目录中是否有wp-cache-config.php 文件?
如果没有,复制 wp-super-cache/wp-cache-config-sample.php文件到 wp-content/wp-cache-config.php,并确认 WPCACHEHOME 指向正确的地方。

wp-content 目录下是否有advanced-cache.php文件?
如果没有,你需要复制 wp-super-cache/advanced-cache.php到 wp-content/ 目录下,编辑这个文件,修改路径使它指向 wp-super-cache 文件夹。

如果页面都没有被缓存,移除 wp-content/advanced-cache.php文件并根据上述要求重新创建它。

确认wp-config.php文件中的这一行内容在 “require_once(ABSPATH.’wp-settings.php’);”之前:

define( ‘WP_CACHE’, true );

试试再次打开 设置 –> WP Super Cache页面斌启用缓存。

看看 wp-content/cache/supercache/目录。有文件夹和文件在里面吗?

3、php error_log 错误记录里有什么信息?

如果当super cache安装后你的浏览器一直要求你保存文件而不是显示页面,你必须禁用Super Cache 压缩。访问 设置-> WP Super Cache页面禁用它。

这个插件在PHP安全模式启用时无法很好地工作。 必须由你的服务器管理员禁用这个功能。

如果页面有时可以被超级缓存而有时没有,其原因可能是你的博客部分访客由 “www”前缀访问而有些不是。如果你在使用老版本的Wordpress,你应该选择安装 Enforce www preference 插件。 最新版本的Wordpress可以重定向它们(你应该一直使用最新版本的Wordpress!)。

在Dreamhost上的个人服务器用户如果遇到有关CPU占用增加的错误,则应该编辑 wp-content/wp-cache-config.php文件并设置缓存目录到“/tmp/”目录。

类似“failed to acquire key 0x152b: Permission denied in…”或“Page not cached by WP Super Cache. Could not get mutex lock.” 这样的文件锁定错误表明你可能必须使用文件锁定功能。编辑 wp-content/wp-cache-config.php 并取消注释“$useflock = ture” 或设置 $semid 为一个不同的值。你还可以把从管理页面禁用文件锁定作为最后一招使用。

4、确认服务器可写 cache/wpcachemutex.lock 文件

缓存文件不能放置在NFS或Samba或NAS共享上。 必须将其放置在服务器本地磁盘上。只有在缓存文件夹在本地机器上时,文件锁定和删除过期文件功能才能正常工作。

如果Wordpress无法找到 wp-cron.php文件,旧缓存文件的垃圾收集特性就无法工作。如果你的主机名定为127.0.0.1,可能会阻止垃圾收集特性正常运作。检查你的 access_log,寻找有关wp-cron.php的条目。它们是否返回 404(文件没找到)或200 代码?如果返回404或你在哪儿都没有看到wp-cron.php文件,Wordpress可能在错误的地方寻找这个脚本了。你应该联系你的服务器管理员来修正这个问题,或者在Unix服务器上编辑 /etc/hosts 并移除下面的内容。你的主机名必须设置为外币IP地址。查看http://yoast.com/wp-cron-issues/ 获得更多信息。
127.0.0.1 myhostname.com一行类似“127.0.0.1 localhost localhost.localdomain” 的内容是可以的。

如果旧页面通过Supercache展示给你的访客,你可能缺少某些Apache模块(如果你没用Apache的话,那就可能是类似功能的东西)。
3个模块是必需的: modmime, modheaders 和mod_expires。后两个对于确保浏览器能够调用你站点上已存在页面的新版本是非常重要的。

“WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed!”

这个错误信息如果出现在每个页面的末尾的话,用你常用的编辑器打开 wp-content/advanced-cache.php文件,看看指向wp-cache-phase1.php的路径是否正确?如果不正确的话缓存引擎就不会调用。

如何卸载WP Super Cache?

编辑你的插件目录中的 wp-super-cache/uninstall.php文件,将 UNINSTALL_WPSUPERCACHE设置为一个非空值。
define( ‘UNINSTALL_WPSUPERCACHE’, ‘1’ );打开你的浏览器并直接调用 wp-content/plugins/wp-super-cache/uninstall.php文件。 你必须登录并确认这个动作。如果你没有立即删除这个插件,在这个脚本运行之后,请注释掉上面这行 define() 以免其他人运行它。

如何手动卸载:

从wp-config.php文件中移除WP_CACHE定义,内容应该类似这样 define(‘WP_CACHE’, true );
从后台页面清理缓存并从插件页禁用插件
从你的.htaccess文件中移除Super Cache mod_rewrite 规则
移除wp-content/advanced-cache.php和wp-cache-config.php文件
删除 wp-content/cache目录
从你的插件目录中删除wp-super-cache

如果所有办法都失败并且你的网站已不能打开

  1.  从wp-config.php中移除WP_CACHE定义: define( ‘WP_CACHE’, true );
  2. 移除插件写入.htaccess文件中的规则(请看上面)。
  3. 删除插件文件夹中的wp-super-cache目录
  4. 另外,可选删除 advanced-cache.php, wp-cache-config.php 和在wp-content/目录中的缓存文件夹。

自定义缓存

现在可实现通过 add_cacheaction() 函数hook进缓存进程。

可用三个hook:

  1. ‘wpcachegetcookiesvalues’ – 修改原WP Cache使用的键。
  2. ‘add_cacheaction’ – 在phase2运行。 允许一个插件添加WordPress hooks。
  3. ‘cacheadminpage’ – 在管理页面运行。使用它来修改页面,可能通过添加新的设置选项来实现。

这里还有一个常用WordPress Filter。 使用 “docreatesupercache” filter 来自定义缓存前的检查。 这个filter接受一个参数。 输出WP-Cache的wpcachegetcookies_values() 函数。

WP Super Cache静态缓存插件简明使用教程

保存下

WordPress静态缓存插件众多,孰优孰劣,这里不予评判,只说一说使用率最高的静态缓存插件WP Super Cache的基本使用方法,包括插件安装设置与停用删除缓存。

该插件在Wordpress后台插件安装页面,一直处于首页推荐位置,可知其是官方极力推荐的插件之一。

安装WP Super Cache插件

这里约100字略过....

插件设置

一、准备工作

保证wp-content目录有读写权限,因为之后生成的缓存文件会存放在这个目录中。使用Ftp客户端登录空间,右键wp-content目录属性设置许可权限为755。

同时,保证Wordpress根目录的wp-config.php和.htaccess文件也有写入权限,最好将wp-config.php和.htaccess文件作一下备份。

二、插件设置

进入插件设置页面,插件支持多语包括简体中文。

直接进入插件“高级”设置选项卡页,勾选所有标有“推荐”字样的选项,另外包括“当某页面有新评论时,只刷新该页面的缓存”这项。

缓存超时时间建议设置为“ 0”,有必要时手动清理缓存。

其它选项卡设置页面,无需设置。

如果你不清楚其它未推荐的选项功能是什么,就不要尝试了。

我博客默认的设置

点此查看我默认的设置

需要说明的是缓存模式有三种:

  • mod_rewrite 缓存模式。 (推荐)
  • PHP 缓存模式。
  • 传统缓存模式。

如果选择非推荐的 mod_rewrite 缓存模式,缓存效果一般,个人感觉也就没必要使用这款缓存插件了。

三、更新规则

设置完毕后,点击更新按钮,会提示你点击“更新 Mod_Rewrite 规则”按钮,向下滚动找到该按钮并点击。

插件会自动向Wordpress根目录的wp-config.php和.htaccess文件写入相关规则。

同时默认缓存目录的中.htaccess也必须有规则。

 清理缓存及停用插件

1、清理缓存

可以定期手动清理缓存文件,打开WP Super Cache插件设置页面,点击“内容”选项卡,点击“删除缓存”。

如果你与我一样在不停地折腾主题,这时就需要随时手动清理缓存,才能查看修改调整后的情况,否则显示的还是之前的静态缓存内容。

2、停用插件

重复上一步(必须),之后点击“高级”选项卡,取消“启用缓存以便加快访问。 (推荐)”勾选,并点击下面的“更新”按钮,

3、完全删除插件

重复上面两步(必须),然后进入插件页面停用WP Super Cache插件,并删除。

正常情况下删除WP Super Cache插件时,会将之前插件所修改和创建的缓存文件夹一并删除,但也可能有例外。所以,登录Ftp客户端,用之前备份的wp-config.php和.htaccess文件覆盖Wordpress根目录的同名文件,并删除wp-content目录的cache文件夹,这样才能完全卸载并彻底删除缓存文件。

另外,建议安装网页压缩插件:Autoptimize与WP Super Cache配套使用,可以进一步加快网页打开速度。

设置Autoptimize插件时,只需要勾选“优化 HTML 代码和优化 CSS 代码”,其它默认即可,不要勾选“优化 JavaScript 代码”否则可能造成主题部分功能不可用,切记!

愉快的开始 python

跟着教程慢慢学。

为什么学Python

Python具有跨平台特点

Python可以在各种不同类型的计算机上运行,Windows、MAC、Linux都可以使用Python,大多数情况下,如果一个Python程序可以在你家里的Windows上运行,那么这个程序同样也可以在你学校的Mac上运行。

PK其他语言

跟C/C++/Java相比 — Python能让你用少得多的代码写出相同的程序。有人计算过,Python写出的程序的代码行数只相当于相对应的Java代码的行数的五分之一。如果没有绝对的必要,为什么要花这么多时间写出这么多的代码呢?

而且,有人说,一个优秀的程序员能维护的代码量最多是2万行。这不区分用的语言究竟是汇编,C还是Python/Ruby/PHP/Lisp。

所以,如果你用Python写,你一个人干,换作Java/C/C++,那都需要一个5人的小团队来干。那你觉得一个人干着爽还是多找几个人一起干比较爽呢?嗯,见仁见智,小甲鱼还是喜欢一个人干!

课后练习题。

第一节课

  1. Python 是什么类型的语言? Python是脚本语言

脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序。以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比 C语言、C++语言 或 Java 之类的系统编程语言要简单容易。 也让脚本语言另有一些属于脚本语言的特性:

  • 语法和结构通常比较简单
  • 学习和使用通常比较简单
  • 通常以容易修改程序的“解释”作为运行方式,而不需要“编译”
  • 程序的开发产能优于运行性能
  • 1. IDLE 是什么? IDLE是一个Python Shell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!像我们Windows那个cmd窗口,像Linux那个黑乎乎的命令窗口,他们都是shell,利用他们,我们就可以给操作系统下达命令。同样的,我们可以利用IDLE这个shell与Python进行互动。
  • 2. print() 的作用是什么? print() 会在输出窗口中显示一些文本(在这一讲中,输出窗口就是IDLE shell窗口)。
  • 3. Python 中表示乘法的符号是什么? Python中的乘号是*(星号)。
  • 4. 为什么 >>>print('I love fishc.com ' * 5) 可以正常执行,但 >>>print('I love fishc.com ' + 5) 却报错? 在 Python 中不能把两个完全不同的东西加在一起,比如说数字和文本,正是这个原因,>>>print('I love fishc.com ' + 5) 才会报错。这就像是在说“五只小甲鱼加上苍井空会是多少?”一样没有多大意义,结果可能是五,可能是六,也可能是八!不过乘以一个整数来翻倍就具有一定的意义了,前边的例子就是将 "I love fishc.com" 这个字符串打印五次。
  • 5. 如果我需要在一个字符串中嵌入一个双引号,正确的做法是? 你有两个选择:可以利用反斜杠(\)对双引号转义:\",或者用单引号引起这个字符串。例如:' I l"o"ve fishc.com '。
  • 6. 为什么我们要使用 Python3Python2到底有什么问题?看起来很多程序员依然都在使用Python2 确实还有相当多的程序员在使用 Python2,不过 Python3 才是 Python 发展的未来,就像 XP 和 WIN7 一样。在《零基础入门学习Python》的系列教程准备中,小甲鱼发觉 Python3 中的新特性确实很妙,很值得进行深入学习!你也不用担心,如果你了解了 Python3,Python2 的代码阅读对于你来说根本不成问题!
  • 一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组串行。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令串行的指令,还可以编写更复杂的程序。

qq的域名邮箱失效了

这几天注册一些网站的时候,用自己的域名邮箱去申请老是收不到邮件,起初还以为是被拦截偶尔收不到,今天仔细检查了下,除了自己发自己的,外面发进来的全收不到了,只能再重新搞个了,要么自己服务器上搭建一个,或者再找个免费的,163,阿里云这些?qq的不敢再用了。

简明 Python 教程

Python 语言可能是第一种即简单又功能强大的编程语言。它不仅适合于初学者,也适合于专业人员使用,更加重要的是,用 Python 编程是一种愉快的事。本身将帮助你学习这个奇妙的语言,并且向你展示如何即快捷又方便地完成任务——真正意义上“为编程问题提供的完美解决方案!”

本书的读者

本书可以作为 Python 编程语言的一本指南或者教程。它主要是为新手而设计,不过对于有经验的程序员来说,它同样有用。

即便你对计算机的了解只是如何在计算机上保存文本文件,你都可以通过本书学习 Python。如果你有编程经验,你也可以使用本书学习 Python。

如果你以前有编程经验,那么你将会对 Python 语言和其他你所钟爱的编程语言之间的区别感兴趣。对此我为你指出了许多这样的区别。顺便提醒你,Python 将很快成为你最喜欢的编程语言!

本书的由来

我最初接触 Python 是当我需要为我的软件钻石写一个方便安装过程的安装程序的时候。我得在 Python 和 Perl 语言中选择一个绑定 Qt 库。我在网上做了一些研究,偶然发现了一篇文章。那是 Eric S. Raymond(著名的电脑高手)谈 Python 如何成为它最喜欢地编程语言的一篇文章。我同时发现 PyQt 绑定与 Perl-Qt 相比要出色得多,所以我选择了 Python 语言。

之后我开始寻找一本关于 Python 的优秀书籍。我竟然找不到!虽然我找到了一些 O'Reilly 的书,不过它们不是太贵就是如同一本参考手册而不是一本指南。我最后使用了 Python 附带的文档,不过它太简略了。那个文档确实很好的给出了 Python 的概念,不过不够全面。尽管最后我根据我以前得编程经验掌握了那个文档,不过我觉得它完全不适合于新手。

大约在我首次使用 Python 语言的六个月之后,我安装了那时最新的 Red Hat 9.0 Linux。在我玩弄 KWord 应用程序的时候,我突然想写一点关于 Python 的东西。很快我就写了 30 多页,然后我开始认真地想办法把它变成一本完整的书。经过 多次 的改进和重写,它终于成为了一本有用的完整的 Python 语言学习指南。我把本书贡献给开源软件者们。

本书来自于我个人学习 Python 的笔记,不过我尽力让它更加适合别人的口味。

在开源精神的鼓舞下,我收到了许多建设性的建议和批评以及来自热心读者的反馈,它们使这本书变得更加出色。

本书目前的状况

本书目前仍然在进一步完善中。许多章节已经频繁地做了修改。然而本书已经十分成熟了,你一定可以很容易地通过它学习 Python。如果你觉得本书中有什么错误或者难懂的地方,请告诉我。

本书将来计划增加更多的章节,包括 wxPython,Twisted,有可能的话甚至还有 Boa Constructor。

官方网站

本书的官方网站是 www.byteofpython.info。你可以在这个网站上在线阅读本书,也可以下载本书的最新版本或给我反馈。

约定条款

本书(原版)依照创作共用约定(署名-非商业作品-保持一致)发布。简单地说,你只要署上我的名字,就可以免费复制、分发和展示本书。未得到我的允许,你禁止把本书用于商业目的。你在修改本书的时候,必须清楚地标明所有做了改动的地方,你发布修改后的作品时也必须遵照与本书相同的约定。

请访问创作公用约定的网站浏览约定全文,或者查看一个简单易懂的约定描述。那里还有一个连环画似的约定条款的解释。

反馈

我尽了很大的力让这本书即生动又尽可能的准确。然而,如果你找到任何不太令你满意的地方或者错误,或者是需要改进的地方,请告诉我以便我改正它们。你可以把它们通过 swaroop@byteofpython.info 发送给我。

值得思考的一些东西

有两种方式构建软件设计:一种是把软件做得很简单以至于明显找不到缺陷;另一种是把它做得很复杂以至于找不到明显的缺陷。

——C.A.R. Hoare

获得人生中的成功需要的专注与坚持不懈多过天才与机会。

——C.W. Wendte

wordpress 友情链接消失 怎么恢复

新装一个WordPress时,发现找不到友情链接管理菜单,因为是和另一个WordPress站点共用一个数据库,起初以为是数据库冲突问题(是不是有些白痴呢?),反复重装后故障依旧。

理论上讲,虽然我多个WordPress站点共用一个数据库,但是表前缀都不同,不应该有问题,事实上这样操作也不会有任何问题。

然后怀疑是主题的原因,启用WordPress默认主题,却故障依旧。

原本一直怀疑是WordPress版本问题,但是三个站点都是使用的WordPress3.5版本,另外两个站点却没有问题。

最后在具有友情链接管理的WordPress站点上获得友情链接管理页面地址,复制到这个问题站点打开,提示恢复友链管理功能请安装插件Link Manager。果然被那两个已有数据的站点蒙骗了,WordPress3.5已经隐藏掉了友情链接管理菜单,或许官方认为菜单选项更适合设置成友情链接,因此精简掉原来的友情链接管理功能。

那为何另外两个站点没有被隐藏呢?唯一的可能是另外两个站点已添加有友情链接,WordPress会判断,如果存在以前的友情链接数据,则不隐藏友情链接管理菜单,否则,需要安装插件Link Manager来恢复以前的友情链接管理菜单。

或许你和珲珲一样,不喜欢安装太多的插件,那确实会影响到网站的运行速度,那么在主题function.php文件中的?>前添加一行代码就可以了。代码如下:

add_filter('pre_option_link_manager_enabled', '__return_true');

我们已知曾经的WordPress版本中,安装新站点时程序会自动写入官方的链接到友情链接表里,而且数量还不少。但WordPress3.5隐藏友情链接管理菜单后,就不能写入官方的链接到WordPress新站点了。为了程序更精简,WordPress挥刀自宫,敬佩啊!

lnmp安装步骤

安装

系统需求:

  • 需要2 GB硬盘剩余空间
  • 128M以上内存,OpenVZ的建议192MB以上 安装前建议先运行screen 

    安装步骤:

    1、下载LNMP一键安装包:
    可以选择使用下载版(推荐国外或者美国VPS使用)或者完整版(推荐国内VPS使用),如果使用下载版执行命令 wget -c http://soft.vpser.net/lnmp/lnmp0.7.tar.gz ,如果使用完整版,执行命令 wget -c http://soft.vpser.net/lnmp/lnmp0.7-full.tar.gz ,执行上述命令后LNMP一键安装包就会被下载到VPS上。

    2、解压一键安装包:
    执行tar zxvf lnmp0.7.tar.gz 或者tar zxvf lnmp0.7-full.tar.gz 就会将LNMP一键安装包解压缩。

    3、CentOS下安装步骤
    下载版执行命令 cd lnmp0.7/ ,完整版执行命令:cd lnmp0.7-full/
    然后再执行./centos.sh 也可以执行./centos.sh | tee lnmp.log (推荐这种方式,出错时可以到论坛上传lnmp.log日志),输入要绑定的域名(建议使用一个二级域名,该域名会绑定到/home/wwwroot/),回车,再输入要设置的MySQL root的密码,回车,提示"Press any key to start...",按任意键开始安装。程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。

    4、Debian下安装步骤
    下载版执行命令 cd lnmp0.7/ ,完整版执行命令:cd lnmp0.7-full/
    然后执行./debian.sh 也可以执行./debian.sh | tee lnmp.log (推荐这种方式,出错时可以到论坛上传lnmp.log日志),输入要绑定的域名(建议使用一个二级域名,该域名会绑定到/home/wwwroot/),回车,再次输入VPS/服务器所在位置:asia、america、europe、oceania或africa,回车,再输入要设置的MySQL root的密码,回车,提示"Press any key to start...",按任意键开始安装。程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。

    5、Ubuntu下安装步骤
    下载版执行命令 cd lnmp0.7/ ,完整版执行命令:cd lnmp0.7-full/
    然后执行./ubuntu.sh 也可以执行./ubuntu.sh | tee lnmp.log (推荐这种方式,出错时可以到论坛上传lnmp.log日志),输入要绑定的域名(建议使用一个二级域名,该域名会绑定到/home/wwwroot/),回车,再输入要设置的MySQL root的密码,回车,提示"Press any key to start...",按任意键开始安装。程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。

    安装其他组件

    1、安装eAccelerator,执行如下命令:./eaccelerator.sh 就会自动安装并重启web服务。

    2、安装ionCube,执行如下命令:./ionCube.sh 就会自动安装并重启web服务。

    3、安装PureFTPd和管理面板,执行如下命令:./pureftpd.sh 按提示输入你MySQL的root密码、FTP用户管理面板的密码、MySQl的FTP数据库密码(可直接回车,自动生成一个密码),回车确认,就会自动安装PureFTPd,安装完PureFTPd,在浏览器执行http://你的域名或IP/ftp/ 输入你前面设置的FTP用户管理面板的密码,就可以管理。

    4、安装VsFTPD,执行如下命令:./vsftpd.sh 就会自动安装上vsftpd,只需要执行命令:useradd -d /home/wwwroot -s /sbin/nologin adminftp 添加上帐号指定好ftp帐号的根目录,再执行:passwd adminftp 设置上密码,登录就可以了。

    虚拟主机管理

    1、添加虚拟主机,执行如下命令:/root/vhost.sh 根据提示输入要绑定的域名,回车,如果需要添加更多的域名,输入y,再输入要另外绑定的域名,多个域名可以用空格隔开。再输入域名绑定的目录(绝对目录,如/home/wwwroot/lnmp,如果不填默认是/home/wwwroot/绑定的域名),再选择是否添加伪静态规则,默认已经有了Discuz、Wordpress、Sablog、emlog、dabr,可直接输入以上名称即可,如果需要添加自定义伪静态规则,直接输入一个想要的名字,程序会自动创建伪静态文件,直接在/usr/local/nginx/conf/你自定义的伪静态名字.conf 里面添加伪静态规则就行。接下来会提示是否需要启用日志功能,一般情况下不需要启动,直接输入n就行,如需启动,输入y,再输入要定义的日志文件名字,回车就会自动添加虚拟主机。

    2、删除虚拟主机,ssh执行:rm /usr/local/nginx/conf/vhost/域名.conf

    状态管理

    LNMP状态管理: /root/lnmp {start|stop|reload|restart|kill|status}
    Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
    PHP-FPM状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
    PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
    MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}

    相关图形界面程序

    phpinfo : http://前面输入的域名或IP/phpinfo.php
    phpMyAdmin : http://前面输入的域名或IP/phpmyadmin/
    探针 : http://前面输入的域名或IP/p.php
    PureFTP管理界面:http://前面输入的域名或IP/ftp/

    LNMP相关目录

    nginx : /usr/local/nginx
    mysql : /usr/local/mysql
    php : /usr/local/php
    网站目录: /home/wwwroot/
    Nginx日志目录:/home/wwwlogs/

    LNMP相关配置文件

    Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
    MySQL配置文件:/etc/my.cnf
    PHP配置文件:/usr/local/php/etc/php.ini
    PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
    PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf

樱花油烟机SCR-3991AS

樱花油烟机SCR-3991AS是最新推出的一款油烟机,三档调节,灯带更宽,六个马达支撑点,吸油烟噪音更小,SCR-3991AS继承了樱花油烟机吸油烟好,同时外观上也更加美观。樱花油烟机SCR-3991AS值得你购买。

站长之路!

01年的时候,刚进入高中我由于学校不能上网,抓住了直接会KO,那时候还真怕,就骑车半小时到台州学院门口的网吧去申请域名做网站,记得第一个网站数字中国(先改名为圣博)08年的时候去看了下还在。那时候可以一天不睡觉,不吃饭,整天埋头苦干仍乐在其中。转眼来到了10年,当新兴的事物再次出现时,长大的我怎么就没有了以前的那种执着和激情呢?

十年来对站长的不同认识:

01年 提到是站长,别人会再问一遍,你是干什么的啊?

02年 提到是站长 就想到某门户称站长为乞丐的新闻。

03年 提到是站长,被误认为是哪个汽车站火车站的站长。

04年 提到是站长,被认为是做色情网站,穿个黄马褂的。

05年 提到是站长,别人就当做卖域名企业网站服务的。

06年 提到是站长,别人把当做开网店,卖衣服小家电的。

07年 提到是站长,别人都说自己是站长,CN域名一块钱

08年 提到是站长,被当做写博客的,急留一个博客地址。

09年 提到是站长,被人想到是开论坛做网赚的

10年 提到是站长,被人说:这孩子,找不到工作,在创业呢