服务器升级顺利完成

[不指定 2010/08/02 00:12 | by 袁旭东 ]
  昨天晚上将服务器进行了一番升级,最主要的就是升级了PHP,进行了跨版本的升级。MySQL方面,依然还是延续着5.1.x的升级道路,5.5.x依然没有编译成功,不过即使编译成功了,也不想升级到MySQL 5.5.x,因为MySQL 5.5.x目前依然是开发板本,不适合用在生产环境当中。

  目前服务器的状况就如公告栏当中写的那样,FreeBSD 8.0 + nginx 0.8.47 + PHP 5.3.3 + MySQL 5.1.49。打算最近把FreeBSD上搭建nginx+PHP+MySQL的文章做一下升级,因为PHP 5.3.3的编译安装变化还是比较大的。

Tags: , , ,
  编译好PHP 5.3.3后,紧接着编译eAccelerato 0.9.6.1,一切都很顺利。配置好php.ini和php-fpm.conf后,运行php-fpm。此时报错了。

引用
Starting php_fpm eAccelerator: shmmax should be at least 2MBPHP Warning: [eAccelerator] Can not create shared memory area in Unknown on line 0
PHP Fatal error: Unable to start eAccelerator module in Unknown on line 0


  看样子是shmmax设置得太小了,不足够eAccelerator缓存用的。我设置eAccelerator的shm_size=64,也就是64兆,因此shmmax至少要等于64兆。在FreeBSD用如下方法修改。

引用
vi /etc/sysctl.conf
#在文件末尾加入以下代码
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768


  重启后,php-fpm就可正常运行了,并且eAccelerator顺利加载。接下来就是测试服务器上现有程序对PHP 5.3.3的兼容性如何了,顺利的话,一两天之内就可以给服务器升级了。听说,PHP 5.3.3比PHP 5.2.13速度提高了25%左右。这点我没有能够证实,但是至少PHP 5.3.3的php-fpm比PHP 5.2.13的php-cgi占用内存小多了。很期待PHP 5.3.3的表现。

  附上一篇关于sysctl.conf配置的帖子,delphij是FreeBSD团队的成员。点击打开

FreeBSD 8.0编译安装PHP 5.3.3

[不指定 2010/07/31 14:14 | by 袁旭东 ]
  准备把服务器上的PHP由5.2.13升级到5.3.3,所以在虚拟机上进行了一番测试与演练。发现PHP 5.3.3与PHP 5.2.x相比,编译参数起了比较大的变化。我使用以下编译参数编译成功。

引用
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr/local --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --disable-ipv6 --without-pear --with-fpm-user=www --with-fpm-group=www


  编译PHP 5.3.3之前,需要比PHP 5.2.13多做以下工作。

引用
cd /usr/ports/devel/libevent
make install clean

tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/libltdl
./configure --enable-ltdl-install
make
make install
cd ..
./configure --prefix=/usr
make
make install


Tags: , ,
  今天在给WEB服务器做压力测试的时候,仅仅1000并发,访问页面的时候就会出现500 Internal Server Error,这是我始料未及的。因为在开发时,并没有多少并发连接,所以也就没有发现这个问题。现在要正式上线了,做了一下压力测试,就遇到了问题。按理说nginx对付1000并发是小菜一碟啊,应该是我配置的问题。于是,我将worker_processes由1改为32(双Intel至强E5620,8核16线程,按照每线程2个进程),worker_connections由1024改为65535。同时将测试的并发连接数提升到了5000。心想,这样应该没有问题了吧,可是依然会出现500错误,只不过不像刚开始那样频繁了。

  于是,我想可能还另有原因。查看了nginx的错误日志,发现:Too many open files。原来是打开文件过多了。于是,有了下面的解决方法,也就是扩大同时打开文件数量。

引用
vi /etc/sysctl.conf
#在文件最末尾加入下面内容
kern.maxfiles=65535


  重启系统,再次进行压力测试,没有出现500错误,问题得到解决。

Tags: , , ,

PHP 5.3.3包含了fpm

[不指定 2010/07/24 22:55 | by 袁旭东 ]
  PHP 5.3.3发布了,看官方的介绍,除了修改了一些Bug以外,最引起我注意的是其中一条。

引用
Added FastCGI Process Manager (FPM) SAPI.


  这表示我们不用再去费心找合适版本的php-fpm了。PHP 5.3.3包含的是php-fpm 0.6.5。为了开启php-fpm,我们编译时需要加入以下参数。

引用
--enable-fpm


Tags: ,

FreeBSD 8.1正式版发布

[不指定 2010/07/21 14:46 | by 袁旭东 ]
  虽然官方首页还没有发布正式的消息,但是官网的FTP上已经有8.1正式版提供下载了。下载地址是:

引用
DVD_i386:ftp://ftp.tw.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.1/FreeBSD-8.1-RELEASE-i386-dvd1.iso.gz
CD_i386:ftp://ftp.tw.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.1/FreeBSD-8.1-RELEASE-i386-disc1.iso
DVD_amd64:ftp://ftp.tw.freebsd.org/pub/FreeBSD/releases/amd64/ISO-IMAGES/8.1/FreeBSD-8.1-RELEASE-amd64-dvd1.iso.gz
CD_amd64:ftp://ftp.tw.freebsd.org/pub/FreeBSD/releases/amd64/ISO-IMAGES/8.1/FreeBSD-8.1-RELEASE-amd64-disc1.iso


  我也打算近期在虚拟机上对FreeBSD 8.1进行一下对比测试。对比对象包括FreeBSD 8.0 amd64和Ubuntu Server 10.04 amd64。

Tags: , ,
  昨天晚上访问财付通的时候,提示更新密码输入控件,于是就更新了,之后就回到Ubuntu下了。这之后一直没有用到Windows。今天下午,当我再次使用Windows的时候,突然发现键盘不管用了。只好使用屏幕键盘进入系统,然后查看设备,发现键盘上有一个黄色的叹号,表示驱动有问题。我检查了一下驱动详情,发现有三个键盘驱动,它们是:
引用
kbdclass.sys
TenpayKeyboard.sys
QQKeyboard.sys


  显而易见,肯定是财付通和QQ的安全密码输入控件引起的,为了保险起见,我们要把他们全都删除。卸载QQ和财付通控件是不管用的,我们需要修改注册表才行。

  打开注册表编辑器,以qqkeyboard为关键字搜索。当搜到字符串项 UpperFilter 时,将其值除了kbdclass之外的其他值都删除。删除后,继续查找下一个,如法炮制,直到全部修改完为止。重启系统后,一切恢复正常了。在此强烈鄙视一下腾讯公司!

  当在另一台服务器恢复数据库时,用管理工具无法将登录名与用户关联,只能用SQL来实现,具体如下。

引用
use 数据库名
exec sp_change_users_login 'update_one','用户名','登录名'


  本来想升级一下服务器上的MySQL,但是到make的时候,编译报错。提示是源码的语法错误,也许是开发版本的原因吧,开发者并未在FreeBSD下测试。FreeBSD用户想要升级MySQL到5.5.x的话,只有耐心的等待了。或者更新ports后,以ports方式安装MySQL。当前ports中MySQL 5.5.x最新版为MySQL 5.5.4-m3。

  更新ports的方法:
引用
portsnap fetch extract
portsnap fetch update

Tags: ,

nginx配置https实现安全连接

[不指定 2010/07/13 17:58 | by 袁旭东 ]
  更换服务器后,为了加强安全性,因此将MySQL中所有用户都更改为本地用户,也就是说无法从远程进行连接。所以,为了方便维护MYSQL,安装了phpMyAdmin。但是随之问题也来了,http并非安全连接,其内容在互联网上都是以明文方式传输的,很可能被劫持,从而将数据库的用户名和密码泄漏。所以,我想到了用https方式来使用phpMyAdmin。具体方法如下。

  一、首先要生成证书。

引用
openssl req -new -x509 -nodes -out server.crt -keyout server.key
mv server.crt /usr/local/nginx/conf/
mv server.key /usr/local/nginx/conf/


  因为我们是自己使用,不存在是否信任的问题,所以也就不去购买经过认证的证书了。
Tags: , , ,
分页: 6/27 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]