利用Live CD重新安装grub至硬盘 

最近把硬盘重新分区了,以前windows 和 linux 各20G的空间明显感觉不够用了(该死的visual studio 和 sql server,擦~),于是便格盘重新划分了下。

windows 就选择了最新的windows 7 with sp1 的ISO,ubuntu 嘛,由于11.04 natty还未发布,故而使用了其最新的测试版 alpha 3。

由于我是先安装的ubuntu(需要用Live CD 自带的分区工具),后安装的windows.导致我之前的硬盘引导被覆盖了,开机直接进windows了。

这个问题我之前曾经处理过一次,不过由于年代久远,忘了具体操作了,反正是重建grub就对了。

于是火速重启,放入ubuntu live CD,光盘启动,进入Live 模式。

我只记得是与"grub"相关的命令,具体是什么记不清了,于是便列出了BIN_PATH下所有的相关命令。
ls /bin | grep grub
ls /sbin | grep grub
……
终于找到了grub-install 和 update-grub 两个利器。

首先安装grub至硬盘,
mount /dev/sda2 ~/tmp #sda2 为linux root 所在分区
grub-install --root-directory=~/tmp /dev/sda2

接下来就是重建grub.cfg了,
update-grub
即可,接下来就会打印出
found linux kernel 2.xx.xx
found windows loader
……
字样,至此,grub安装完毕,再次bs下微软.
[ ] ( 3852 次浏览 ) 永久链接 ( 3 / 2859 )
让 nginx 支持 HTML5 video 源文件 

最近,也就是过年来了这段时间,我忽然对《明天会更好》这首老歌很感兴趣了,于是昨天便在自己的博客里面分享出了这首歌,当然我选择的是以HTML5 方式展现出来.

在此感谢下W3Schools,让我能够快速上手HTML5 的一些标签.

我是在优酷网下载的该MV,flv格式的,不易于分享,于是便转成了更加开放的ogg.
在视频转换方面,我使用的是ffmpeg2theora工具.

ffmpeg2theora -x 400 -y 350 --sync xxx.flv

我把转换好的ogv文件上传到我自己的服务器上,按照w3school上的例子,把相对路径改成了绝对路径,便了事了。我认为不会有什么问题了,也没有去测试能否播放。

直到今早,我打开我的博客,出人意料的是,我的chrome崩溃了。我开始猜到是html5的问题.

果然,视频不能播放,可是下载没有问题。说明不是权限问题。
也不可能是视频编码的问题,因为我昨天在本地测试过了,是可以播放的。

我百思不得其解,谷歌搜索了一下,在这里找到了答案.

原来是服务器的文件类型 MIME-type 在作怪.因为我服务器中的所有静态文件/资源文件都是由nginx在处理的。而nginx 默认的mime-types 里面没有 ogv 类型.

添加即可,加入

video/ogg ogg;
video/ogg ogv;


重启nginx即可.

注:如果ogg文件是视频的,必须为以上内容。参见:https://developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements#Recognized_MIME.c2.a0types_for_Ogg_media

再测试下,火狐已经可以播放了,不过chrome还是崩溃.
这又是怎么回事? 待解.
[ ] ( 2204 次浏览 ) 永久链接 ( 3 / 2796 )
MySQL 升级后pam-mysql 验证失效的解决办法 

昨天把mysql升级到了5.5.9版本,忽然发现ftp登录不了了……由于我的vsftpd是用pam-mysql验证用户的,怀疑可能是这方面出现了问题.

一一尝试:

1.首先,怀疑是pam-mysql 用来访问vsftpd.users 表的用户ftp 权限不够,

重新授权.
grant all on vsftpd.users to 'ftp'@'localhost' identified by 'XXXX';

flush privileges;
刷新权限表。

尝试ftp登录,还是失败。我用 ftp 身份本地登录mysql,一切正常.看来不是这个问题.

2.怀疑是pam-mysql 口令加密方式有问题。把配置中的crypt=2 改成 明文(0).尝试登录,还是失败。再改回来,用PASSWORD()函数重新设密码,还是失败.

3.难道又是localhost 和 127.0.0.1 的问题?都授权了一下,还是登不进。我擦~

4.不会是pam-mysql不兼容现在的mysql吧?!我倒吸了一口凉气。好在编译安装pam-mysql不是很麻烦,赶紧动手.

下载源码包,解压,进入目录,
./configure --with-mysql=/usr/local/mysql #只要这一句
直接make.

备份之前旧版本的pam-mysql.so 文件.
mv /lib/security/pam_mysql.so /lib/security/pam_mysql.so.old

复制新生成的pam-mysql 模块到 /lib/security 目录下.
cp ./.lib/pam_mysql.so /lib/security/

别忘了重新ld链接下.
ldconfig -v

别的什么也不要改,重启vsftpd.

再次尝试登录ftp,成功了~

我擦,真是pam-mysql 的原因.
[ ] ( 2062 次浏览 ) 永久链接 ( 3 / 2840 )
服务器升级之二 mysql 5.5.9、php 5.3.6RC 编译安装 

接上一篇。

刚搞完前端,就开始折腾后端。主要就是个 php 和 mysql.正好前一段时间的那个php没有版本信息的问题还未解决,今天索性办了.

先mysql,后php。这是惯例.
mysql 5.5.9 http://mirror.services.wisc.edu/mysql/D ... 5.9.tar.gz

下载源码包,解压,进入目录
我的cmake参数:
[root@PowerPC mysql-5.5.9]# cmake . \
> -DCMAKE_BUILD_TYPE:STRING=Release \
> -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql \
> -DCMAKE_USE_RELATIVE_PATHS:BOOL=OFF \
> -DCOMMUNITY_BUILD:BOOL=ON \
> -DENABLED_PROFILING:BOOL=ON \
> -DENABLE_DEBUG_SYNC:BOOL=OFF \
> -DINSTALL_BINDIR:STRING=bin \
> -DINSTALL_DOCDIR:STRING=docs \
> -DINSTALL_DOCREADMEDIR:STRING=docs \
> -DINSTALL_INCLUDEDIR:STRING=include \
> -DINSTALL_INFODIR:STRING=docs \
> -DINSTALL_LAYOUT:STRING=STANDALONE \
> -DINSTALL_LIBDIR:STRING=lib \
> -DINSTALL_MANDIR:STRING=man \
> -DINSTALL_MYSQLDATADIR:STRING=data \
> -DINSTALL_MYSQLSHAREDIR:STRING=share \
> -DINSTALL_MYSQLTESTDIR:STRING=test \
> -DINSTALL_PLUGINDIR:STRING=lib/plugin \
> -DINSTALL_SBINDIR:STRING=sbin \
> -DINSTALL_SCRIPTDIR:STRING=scripts \
> -DINSTALL_SHAREDIR:STRING=share \
> -DINSTALL_SQLBENCHDIR:STRING=sql \
> -DINSTALL_SUPPORTFILESDIR:STRING=support-files \
> -DMYSQL_DATADIR:PATH=/var/run/mysql/data \
> -DSYSCONFDIR:PATH=/etc/sysconfig/mysql \
> -DWITHOUT_SERVER:BOOL=OFF \
> -DWITH_EMBEDDED_SERVER:BOOL=OFF \
> -DWITH_EXTRA_CHARSETS:STRING=all \
> -DWITH_INNOBASE_STORAGE_ENGINE:BOOL=OFF \
> -DWITH_LIBEDIT:BOOL=ON \
> -DWITH_READLINE:BOOL=OFF \
> -DWITH_SSL:STRING=no \
> -DWITH_UNIT_TESTS:BOOL=OFF \
> -DWITH_ZLIB:STRING=bundled

检查依赖,没有问题.接下来 make && make install.
话说cmake 的 INSTALL_XXXDIR 均使用相对路径,确是很蛋疼.

注:初次编译前最好查看下帮助
[root@PowerPC mysql-5.5.9]# cmake . -LAH

或者 http://forge.mysql.com/wiki/CMake

安装完成后,将备份的配置文件 my.cnf 复制到 /etc/sysconfig/mysql/ 下.
恢复数据库.先初始化.

运行
[root@PowerPC bin]# ../scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/var/run/mysql --user=mysql
重建系统表。

./mysqld_safe & 启动数据库,报错.

[root@PowerPC ~]# cat /var/run/mysql/PowerPC.err |grep ERROR
110223 6:24:16 [ERROR] Unknown/unsupported storage engine: InnoDB
110223 6:24:16 [ERROR] Aborting
110223 6:25:13 [ERROR] Unknown/unsupported storage engine: InnoDB
110223 6:25:13 [ERROR] Aborting
110223 6:33:18 [ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'innodb_data_home_dir=/var/run/mysql/'
110223 6:33:18 [ERROR] Aborting
110223 6:34:14 [ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'innodb_buffer_pool_size=10M'
110223 6:34:14 [ERROR] Aborting


原来是innodb 的原因,由于mysql 5.5.x 默认启用innodb,而我这次的版本又没有把它编译进来。故而报错.

解决办法:删掉/注释掉配置文件里关于 innodb的部分,并加入
default-storage-engine          = MyISAM

即可.

再次启动mysql,正常.

导入之前备份出去的sql文件,
mysql -u root -p < xxx.sql
刷新权限表即可.

mysql 安装完成.

接下来是php.
php 5.3.6rc1 http://downloads.php.net/johannes/php-5.3.6RC1.tar.bz2

这次选择的是最新的rc版.解压,进入目录
我的configure:
[root@PowerPC php-5.3.6RC1]# ./configure \
> --prefix=/usr/local/php \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/php \
> --localstatedir=/var/run \
> --disable-cli \
> --enable-fpm \
> --with-fpm-user=http \
> --with-fpm-group=web \
> --with-config-file-path=/etc/sysconfig/php \
> --disable-ipv6 \
> --with-zlib \
> --with-bz2 \
> --with-curl \
> --enable-exif \
> --with-gd \
> --with-mhash \
> --enable-mbstring \
> --with-mcrypt \
> --with-mysql=/usr/local/mysql \
> --with-mysql-sock=/tmp \
> --with-mysqli=/usr/local/mysql/bin/mysql_config \
> --with-xmlrpc \
> --enable-zip \
> --without-pear

检查依赖,一切OK。然后就 make && make install.
一段时间后,php 也搞定了.再把备份的配置文件恢复一下。由于eAccelerator 插件与之前的老版本php一起被删掉了,故而在php.ini 里先注释掉其部分。

一切都做好后,服务器升级便结束了.
[ ] ( 2019 次浏览 ) 永久链接 ( 3 / 2487 )
服务器升级之一 varnish 2.1.5、nginx 0.9.5 编译安装 

最近回家过年,回来后发现之前vps里面跑的很多软件都发布了新的版本,于是便打算安装跟进,陆续的停掉了一切服务,开始动手(先手动删除掉所有要更新软件的旧版本的文件,并备份)。

先是前段吧,
varnish 2.1.5 http://repo.varnish-cache.org/source/va ... 1.5.tar.gz

下载源码包,解压进入目录,
我的configure:
[root@PowerPC varnish-2.1.5]# ./configure \
> --prefix=/usr/local/varnish \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig \
> --localstatedir=/var/run \
> --disable-largefile

检查依赖,有警告.

configure: WARNING: rst2man not found – not building man pages
configure: WARNING: won't look for sendfile() on i686-pc-linux-gnu


前一个,yum install python-docutils 解决。
后一个,直接无视.

make distclean,再次检查,没有问题。

接下来 make && make install.安装完成,并用备份的配置文件替换自动生成的。

varnish 完成,然后是
nginx 0.9.5 http://nginx.org/download/nginx-0.9.5.tar.gz

下载源码包,解压,进入目录
我的configure:
[root@PowerPC nginx-0.9.5]# ./configure \
> --prefix=/usr/local/nginx \
> --sbin-path=/usr/local/sbin/nginx \
> --conf-path=/etc/sysconfig/nginx/nginx.conf \
> --error-log-path=/var/log/nginx/error.log \
> --pid-path=/var/run/nginx/nginx.pid \
> --lock-path=/var/run/nginx/nginx.lock \
> --user=http \
> --group=web \
> --without-http_ssi_module \
> --without-http_auth_basic_module \
> --without-http_fastcgi_module \
> --without-http_uwsgi_module \
> --without-http_scgi_module \
> --http-log-path=/var/log/nginx/access.log \
> --http-client-body-temp-path=/tmp/nginx/request.tmp \
> --http-proxy-temp-path=/tmp/nginx/proxy.tmp \
> --without-mail_pop3_module \
> --without-mail_imap_module \
> --without-mail_smtp_module

检查依赖,没有任何问题.

目录结构和编译简介:
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ md5: using system crypto library
+ sha1 library is not used
+ using system zlib library

nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/sbin/nginx"
nginx configuration prefix: "/etc/sysconfig/nginx"
nginx configuration file: "/etc/sysconfig/nginx/nginx.conf"
nginx pid file: "/var/run/nginx/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "/tmp/nginx/request.tmp"
nginx http proxy temporary files: "/tmp/nginx/proxy.tmp"

确认一下,都没错。
make && make install,编译安装.
完成后,用备份的配置文件替换掉新的即可。

nginx 也完成了.

hiawatha 没有新版本问世,不过上次安装的时候,有些目录错掉了。今天索性也重新安装下。

这次的configure:
[root@PowerPC hiawatha-7.4]# ./configure \
> --prefix=/usr/local/hiawatha \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig \ (主要改的地方)
> --localstatedir=/var \ (主要改的地方)
> --disable-largefile \
> --disable-ipv6 \
> --disable-monitor \
> --disable-ssl

make && make install.
安装完成.
同样用备份的配置文件恢复下,就可以运行了。
[ ] ( 1981 次浏览 ) 永久链接 ( 3 / 2756 )

<< <上一页 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 下一页> >>