Nginx PHP FastCGI 安装配置记录

2008-04-18,星期五 | 分类:Linux, PHP | 标签: | 3,917 Views

安装 PHP
下载:http://www.php.net/downloads.php
因需要兼容老程序,这里用的还是 PHP4 ,可根据自己的需要更改编译选项。
tar jxvf php-4.4.8.tar.bz2
cd php-4.4.8
./configure \
--prefix=/usr/local/php-fcgi \
--enable-fastcgi \
--enable-discard-path \
--enable-force-cgi-redirect \
--enable-mbstring=all \
--enable-memcache \
--with-config-file-path=/usr/local/php-fcgi/etc \
--with-gd=/usr/local/gd \
--with-zlib \
--with-png \
--with-jpeg \
--with-freetype \
--with-mysql=/usr/local/mysql \
--with-dom
make
make install
cp -f php.ini-dist /usr/local/php-fcgi/etc/php.ini

安装 ZendOptimizer
Zend 的优化器,免费使用,如果加密了 PHP 程序文件,这是必须的。
如果没有使用 Zend 优化器,PHP 进程的内存会难以释放。
下载:http://www.zend.com/en/products/guard/downloads
tar zxvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.3-linux-glibc23-i386
./install
cd ..

安装 eAccelerator
PHP scripts 的缓存,对于提高 PHP 程序执行速度很有帮助。
下载:http://eaccelerator.net/
tar jxvf eaccelerator-0.9.5.2.tar.bz2
cd eaccelerator-0.9.5.2
/usr/local/php-fcgi/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php-fcgi/bin/php-config
make
make install
cd ..

安装 memcache
用于缓存 sql 查询,对于降低数据库压力,提升查询速度有很大好处。
下载:http://pecl.php.net/package/memcache
tar zxvf memcache-2.2.3.tgz
cd memcache-2.2.3
/usr/local/php-fcgi/bin/phpize
./configure --with-php-config=/usr/local/php-fcgi/bin/php-config
make
make install

安装 Linghttpd's spawn-fcgi
用 Lighttpd 的 spawn-fcgi 来管理 PHP FastCGI 进程。
下载 Lighttpd: http://www.lighttpd.net/download
yum -y install pcre-devel
(debian: apt-get -y install libpcre3-dev)
tar zxvf lighttpd-1.4.19.tar.bz2
cd lighttpd-1.4.19
./configure --without-bzip2
make
cp -a src/spawn-fcgi /usr/local/php-fcgi/bin/
全文阅读 »

在 PHP 下使用 Java

2008-03-06,星期四 | 分类:Linux, PHP | 标签: | 3,381 Views

因系统需要在 PHP 下使用 Java,便做了相应的尝试,较为常见的是通过安装 PHP 自带扩展模块和安装 PJB(PHP/Java Bridge) 两种方式来实现。

先用 PHP 自带的扩展模块

系统环境:
CentOS4.5/Debian Etch
PHP-4.4.4
Apache-2.2.4
Apache, PHP 均为源代码编译安装。

安装 JDK:
# ./j2sdk-1_4_2_05-linux-i586.bin
Do you agree to the above license terms? [yes or no]
yes
其实就是解压到了当前目录,拷贝到 /usr/local 下:
# cp -ar j2sdk1.4.2_05 /usr/local/

设置环境变量:
# vi /etc/profile
JAVA_HOME=/usr/local/j2sdk1.4.2_05
CLASSPATH=${JAVA_HOME}/lib:${JAVA_HOME}/jre/lib
PATH=$PATH:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin
export JAVA_HOME CLASSPATH PATH

使环境变量生效(普通用户必须重新登陆环境变量才能生效):
# source /etc/profile

# java -version
应该能看到版本信息了。
重新安装 PHP,在编译时加上:
--with-java=/usr/local/j2sdk1.4.2_05
全文阅读 »

WordPress 自定义侧边栏部件

2008-02-29,星期五 | 分类:PHP, WordPress | 标签: | 2,341 Views

想在博客的侧边栏显示随机文章,使用了“中文 WordPress 工具箱”插件,功能介绍里说是可以显示随机文章的,但是这个插件比较老了,不支持 widget,便想到了改造一下这个插件。查了一下部件的语法。其语法如下:

  1. <?php
  2. function widget_mywidget($args) { 
  3. extract($args);
  4. ?>
  5. <?php echo $before_widget; ?>
  6. <?php echo $before_title . 'My Widget' . $after_title; ?>
  7. My Widget
  8. <?php echo $after_widget; ?>
  9. <?php
  10. }
  11. register_sidebar_widget('My Widget', 'widget_mywidget');
  12. ?>

register_sidebar_widget 注册函数之后,输出部件标题 "My Widget" 及內容 "My Widget"。
又从 WordPress Widgets 文档中知道:不能在插件导入之后执行任何代码,要使用 plugins_loaded 这个 hook,所以 add_action 的对象即是 plugins_loaded。

最后,在插件程序文件 mulberrykit.php 后增加了如下代码:

  1. function widget_random_posts_init() {
  2.  
  3.   if ( !function_exists('register_sidebar_widget') || !function_exists('register_widget_control') )
  4.     return;
  5.  
  6.   function random_posts_sidebar_module($args) {
  7.     extract($args);
  8.  
  9.     echo $before_widget . $before_title . $title . $after_title;
  10.     echo "<h2>随机文章</h2><ul>";
  11.       random_posts();
  12.     echo "</ul>";
  13.     echo $after_widget;
  14.   }
  15.  
  16.   register_sidebar_widget('Random Posts module', 'random_posts_sidebar_module');
  17. }
  18.  
  19. add_action('plugins_loaded', 'widget_random_posts_init');

在管理后台的 外观 -> Widgets 中就可以找到 Random Posts module 这个部件了。

PHP 连接 MSSQL

2006-06-02,星期五 | 分类:PHP | 标签: | 2,826 Views

1. Windows 下
把 php.ini 放到 C:\WINNT 下,
设置 extension_dir ,如:
extension_dir = "C:\php-4.3.11\extensions"
取消 mssql.dll 的注释:
extension=php_mssql.dll
 
Web Server 和 MS SQL SERVER 在同一部机器:
mssql_connect("HOST\INSTANCE","USER","PWD");
 
远程连接需要先在 Web Server 安装 MS SQL SERVER 客户端工具,然后才能连接:
mssql_connect("SERVER","USER","PWD");
 
2. UNIX/Linux 下
先安装 freetds-0.63
./configure --prefix=/usr/local/freetds
make
make install
 
安装 PHP 的时候:
--with-mssql=/usr/local/freetds
 
连接时需要加上端口号:
mssql_connect("IP:1433","USER","PWD");