存档在 2011年1月

怎样在 CentOS 6.5 64位系统上安装Apache 2.2.15 + MySQL 5.1.73 + PHP 5.3.3

2011年1月31日

本文旨在说明怎样在CentOS上使用YUM迅速安装Apache+MySQL+PHP,不要求各个程序是最新版本,但能保证安装之后各程序之间的适应性。本教程经实际测试和运营,相对而言是最完备实用的教程。

如果想安装指定低版本的PHP 5.2.17,请参考:《怎样在 CentOS 6.5 64位系统上安装Apache 2.2.3 + MySQL 5.5.44 + PHP 5.2.17》

如果想安装指定最新版本的 PHP 5.6,请参考:《怎样在 CentOS 6.5 64位系统上安装Apache 2.4.12 + MySQL 5.5.44 + PHP 5.6》

准备工作

1. 重置系统(Rebuild CentOS)

在控制面板上rebuild CentOS,比如本教程采用 CentOS6.5 64位。https://en.wikipedia.org/wiki/CentOS

CentOS 6.5基于Red Hat Enterpris Linux (RHEL) 6.5。

CentOS 5.3 基于 Red Hat Enterpris Linux 5.3.0,其中包括 Kernel 2.6.18、Apache 2.2、PHP 5.1.6、MySQL 5.0、PostgreSQL 8、GNOME 2.16、KDE 3.5、OpenOffice.org 2.3、Firefox 3.0、Evolution 2.12 等等。CentOS 5.3 支持 i386 及 x86_64 架构。

2. CentOS更改root用户初始密码

以root用户SSH模式登录

passwd

输入2次新密码:

Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

3. 更新系统内核到最新

yum -y update

4. 确认必要的工具包已经安装

yum install gcc-c++ gcc make wget

开始安装LAMP

安装Apahce、PHP、Mysql,以及PHP连接MySQL库组件

yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql

第一步. 设置Apache

启动Apache:

service httpd start

设为开机启动:

chkconfig httpd on

查看apache http server的版本:

/usr/sbin/httpd -v

输出:

Server version: Apache/2.2.15 (Unix)
Server built:   Oct 16 2014 14:48:21

或者:

rpm -qi httpd

输出:

Name        : httpd                        Relocations: (not relocatable)
Version     : 2.2.15                            Vendor: CentOS
Release     : 39.el6.centos                 Build Date: Thu 16 Oct 2014 10:49:26 PM CST
Install Date: Sun 12 Jul 2015 09:41:36 AM CST      Build Host: c6b9.bsys.dev.centos.org
Group       : System Environment/Daemons    Source RPM: httpd-2.2.15-39.el6.centos.src.rpm
Size        : 3085394                          License: ASL 2.0
Signature   : RSA/SHA1, Sat 18 Oct 2014 04:02:19 AM CST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.

Apache 2.2.15 安装完成!

第二步. 设置MySQL

启动MySQL:

service mysqld start

CentOS 下 MySQL 管理员帐号默认是 root 用户,密码为空。如果你从没设置过 MySQL 的密码,使用 root 用户来连接 MySQL 服务器不需要输入密码。

第一次设置root密码设置MySQL的root密码:

/usr/bin/mysqladmin -u root -h localhost password 'Password'

如果需要修改root密码,请查看《怎样在CentOS上修改MySQL的root密码》

让MySQL数据库更安全:

mysql -u root -p [此时会要求你输入刚刚设置的密码,输入后回车即可
mysql> DROP DATABASE test; [删除test数据库]
mysql> DELETE FROM mysql.user WHERE user =''; [删除匿名帐户]
mysql> FLUSH PRIVILEGES; [重载权限]
mysql> exit; [退出MYSQL]

设为开机启动:

chkconfig mysqld on

查看MySQL版本:

mysql -v -p
Enter password:

输出:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Reading history-file /root/.mysql_history
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL 5.1.73安装完毕!

第三步. 设置PHP

查看PHP版本:

php -v

输出:

PHP 5.3.3 (cli) (built: Jul  9 2015 17:39:00)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

PHP 5.3.3 安装完成!

第四步. http.conf设置及添加虚拟主机

1. http.conf设置

Apache的配置文件位于 /etc/httpd/conf/httpd.conf 做以下修改:

设置管理员邮箱:

ServerAdmin admin@site1.com

设置主机名:

ServerName 100.100.100.100:80

指定网站程序文件所在的目录:

DocumentRoot "/var/www/html"

指定网站程序文件所在的目录:

<Directory "/var/www/html">

添加 index.php 为默认首页:

DirectoryIndex index.php index

2. 添加虚拟主机

在Apache的主配置文件“httpd.conf”中,提供了虚拟主机的配置选项,我们只需修改其中虚拟主机的部分语句,就可以达到构建虚拟主机的目的。

vi /etc/httpd/conf/httpd.conf

在此文档最后加入以下命令(每个域名单列一组):

<VirtualHost your-ip:80>
    ServerAdmin webmaster@site1.com
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /var/www/site1.com/public_html/
    ErrorLog /var/www/site1.com/logs/error.log
    CustomLog /var/www/site1.com/logs/access.log combined
    <Directory /var/www/site1.com/public_html>
        Options FollowSymLinks
        AllowOverride  ALL
    </Directory>
</VirtualHost>

然后建立相应目录(public_html目录是相应虚拟主机的根目录,logs是访问日志和错误日志所存储的目录):

mkdir -p /var/www/site1.com/public_html
mkdir -p /var/www/site1.com/logs

重启Apache:

service httpd restart

在浏览器中输入IP或者刚才绑定的域名,即可显示CentOS蓝色题头和Apache的大羽毛。

网站文件在 /etc/httpd/conf.d/welcome.conf 文件中设置,打开后 /error/noindex ,因为 DocumentRoot “/var/www/html”,所以实际位置在 /var/www/error/noindex 。

配置httpd.conf及设置虚拟主机完成!

第五步. 设置PHPMyAdmin

phpMyAdmin的高版本是不支持PHP 5.3以下的系统的,访问时会报错“PHP 5.3+ is required”。

要么下载适用的phpmyadmin老版本,要么升级到满足要求的高版本PHP。

PHPMyAdmin各个版本下载地址为:https://www.phpmyadmin.net/downloads/

因为本教程安装的是PHP 5.3.3 + MySQL 5.1.73,只有phpMyAdmin 4.0.10 版本符合要求。“phpMyAdmin 4.0.10.10 Released 2015-05-13, see release notes for details. Older version compatible with PHP 5.2 and MySQL 5. Supported for security fixes only, until Jan 1, 2017.”

wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.10/phpMyAdmin-4.0.10.10-english.zip
unzip phpMyAdmin-4.0.10.10-english.zip
mv phpMyAdmin-4.0.10.10-english phpmyadmin

进行高级配置,可以修改libraries/config.default.php的如下几个配置。

102行,设置blowfish_secret,绝密的短密码。

$cfg['blowfish_secret'] = 'SecretCode';

出现问题:The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. To find out why click here.
解决方法:

官方解决步骤:

Create the needed tables with the examples/create_tables.sql. Documentation
Create a pma user and give access to these tables. Documentation
Enable advanced features in configuration file (config.inc.php), for example by starting from config.sample.inc.php. Documentation
Re-login to phpMyAdmin to load the updated configuration file.

首先先创建 给phpmyadmin使用的数据库,在PHPMyAdmin中导入examples/create_tables.sql。

然后创建一个mysql用户,给予其 数据库phpmyadmin的所有权限,如下创建 pma用户,密码PMAPassword:

mysql> use mysql;
mysql> grant all privileges on phpmyadmin.* to pma@localhost identified by 'PMAPassword';
mysql> FLUSH PRIVILEGES; [重载权限]
mysql> exit; [退出MYSQL]

返回来修改libraries/config.default.php文件:

185行,设置为刚才上面创建的用户pma

$cfg['Servers'][$i]['controluser'] = 'pma';

194行,设置为刚才上面创建的pma用户的密码

$cfg['Servers'][$i]['controlpass'] = 'PMAPassword';

298行,

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';  

至此,还没解决这个报警,还有些高级设置,稍后再研究。

怎样配置Apache mod_rewrite

2011年1月30日

今天在Linode配置CentOS,当程序环境都OK时,却卡在mod_rewrite生效问题上,虽然在httpd.conf 中开启了mod_rewrite,但Wordpress总是报错404。经过不懈尝试,发现如下解决办法。

第一步:通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要配置。如果没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必须独占一行)。

第二步:在httpd.conf文件(Apache目录的conf目录里面)中寻找到“AllowOverride None”,更改为“AllowOverride All”。

第三步:在httpd.conf文件中查找:

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

改为:

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

然后重启Apache:

# service httpd restart

就可以了。All

VI命令一览

2011年1月29日

进入vi的命令

vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次进行编辑

移动光标类命令

h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令

Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令

i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令

ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令

/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置

all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令

:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行

寄存器操作

“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

VI的使用

VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需要掌握基本命令,然后加以灵活运用,就会发现它的优势,并会逐渐喜欢使用这种方法。本文旨在介绍VI的一些最常用命令和高级应用技巧。

一、基本命令介绍

1.光标命令

k、j、h、l——上、下、左、右光标移动命令。虽然您可以在Linux中使用键盘右边的4个光标键,但是记住这4个命令还是非常有用的。这4个键正是右手在键盘上放置的基本位置。
nG——跳转命令。n为行数,该命令立即使光标跳到指定行。
Ctrl+G——光标所在位置的行数和列数报告。
w、b——使光标向前或向后跳过一个单词。

2.编辑命令

i、a、r——在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。
cw、dw——改变(置换)/删除光标所在处的单词的命令 (c=change、d=delete)。
x、d$、dd——删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。

3.查找命令

/string、?string——从光标所在处向后或向前查找相应的字符串的命令。

4.拷贝复制命令

yy、p——拷贝一行到剪贴板或取出剪贴板中内容的命令。

二、常见问题及应用技巧

1.在一个新文件中读/etc/passwd中的内容,取出用户名部分。

vi file
:r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd
:%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分。
您也可以在指定的行号后读入文件内容,例如使用命令“:3r /etc/passwd”从新文件的第3行开始读入 /etc/passwd的所有内容。
我们还可以使用以下方法删掉文件中所有的空行及以#开始的注释行。
#cat squid.conf.default | grep -v ^$ | grep -v ^#

2.在打开一个文件编辑后才知道登录的用户对该文件没有写的权限,不能存盘,需要将所做修改存入临时文件。

vi file
:w /tmp/1 保存所做的所有修改,也可以将其中的某一部分修改保存到临时文件,例如仅仅把第20~59行之间的内容存盘成文件/tmp/1,我们可以键入如下命令。
vi file
:20,59w /tmp/1

3.用VI编辑一个文件,但需要删除大段的内容。

首先利用编辑命令“vi file”打开文件,然后将光标移到需要删除的行处按Ctrl+G显示行号,再到结尾处再按Ctrl+G,显示文件结尾的行号。
:23,1045d 假定2次得到的行号为23和1045,则把这期间的内容全删除,也可以在要删除的开始行和结束行中用ma、mb命令标记,然后利用“:a,bd”命令删除。

4.在整个文件的各行或某几行的行首或行尾加一些字符串。

vi file
:3,$s/^/some string / 在文件的第一行至最后一行的行首插入“some string”。
:%s/$/some string/g 在整个文件每一行的行尾添加“some string”。
:%s/string1/string2/g 在整个文件中替换“string1”成“string2”。
:3,7s/string1/string2/ 仅替换文件中的第3行到第7行中的“string1”成“string2”。
注意: 其中s为substitute,%表示所有行,g表示global。

5.同时编辑2个文件,拷贝一个文件中的文本并粘贴到另一个文件中。

vi file1 file2
yy 在文件1的光标处拷贝所在行
:n 切换到文件2 (n=next)
p 在文件2的光标所在处粘贴所拷贝的行
:n 切换回文件1

6.替换文件中的路径。

使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin换成/bin。也可以使用命令“:%s//usr/bin//bin/g”实现,其中“”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。

网站SEO重要网址

2011年1月28日

Google提交入口:http://www.google.com/addurl/?continue=/addurl
Google管理入口:http://www.google.com/webmasters/tools/home?hl=zh-CN

Yahoo提交入口:http://search.yahoo.com/info/submit
Yahoo管理入口:http://siteexplorer.search.yahoo.com/mysites

Goolge关键字竞价分析:http://adwords.google.com/select/main?cmd=Login&sourceid=AWO&subid=US-ET-ADS&hl=en_US
Overture关键字竞价分析:http://signup.overture.com/s/dtc/signup/?mkt=us

【教程】怎样在eNom通过站内Push和接受域名

2011年1月28日

流程A:eNom内Push域名到其他账号

第一步. 登录到 eNom网站:http://www.enom.com

点击右上角的 【My Account】链接,弹出下拉菜单:

  • 如果没有eNom账号,点击【Sign up】,进入注册界面,先注册eNom账号。
  • 如果已有eNom账号,点击【Sign In】,进入登录界面。

eNom首页

eNom登录页

输入账号/密码:

  • Login ID:登录账号
  • Password:登录密码

第二步. 进入eNom控制面板

点击页面中部的【Domains】区块中的第一项【Registered】:

eNom控制面板

进入已注册域名列表:

已注册域名列表

勾选将要Push的域名,可单选/多选;点击列表下方的【List Actions】选单,选择【Push this list】。

选择需要Push的域名

到达Push确认页,输入对方的eNom账号【Login ID】,点击【Push domains】按钮。

其中有项【Contact Information】是询问您是否在Push过程中更改域名所有人信息:其中【Push with domain】是不修改联系人信息,继续沿用原eNom账号中的联系人信息;【Do not push】是域名的联系人信息并不随着域名的Push而Push,二手使用接收账号的联系人信息设置。

Push确认页

到达Push成功页:

eNom的Push规则是:一旦域名完成站内PUSH,域名即可将从原eNom帐号的域名列表中删除,直接在对方eNom帐号的域名列表中出现。

Push成功页

不久,域名的原账号所登记的电子邮箱将收到确认邮件,每个域名单独一封邮件:

Push成功邮件确认

流程B:eNom内接受Push的域名

第一步. 登录到 eNom网站:http://www.enom.com

点击右上角的 【My Account】链接,弹出下拉菜单:

  • 如果没有eNom账号,点击【Sign up】,进入注册界面,先注册eNom账号。
  • 如果已有eNom账号,点击【Sign In】,进入登录界面。

eNom首页

eNom登录页

输入账号/密码:

  • Login ID:登录账号
  • Password:登录密码

第二步. 进入eNom控制面板

点击页面中部的【Domains】区块中的第一项【Registered】:

进入已注册域名列表:

已注册域名列表

可见,刚才Push的2个域名已经存在于新eNom账号的已注册域名列表中。

Push的域名到达新eNom账号

eNom对域名Push有个7天内不能再次Push的限制。就是说如果你的域名刚Push过,那么你想再次Push必然要等7天后才行。

第三步. 修改域名的联系人信息

点击已注册域名列表中某个域名,进入单个域名控制面板;点击【Domain Manage】选单中的【Contact Information】:

单个域名控制面板

修改联系人信息

自定义域名联系人信息