存档在 2014年12月

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

2014年12月17日

有些老的系统,比如ECShop,需要PHP 5.3以下的版本,而PHP 5.2.17是最后的一个版本。

如果想快速安装LAMP,推荐参考:《怎样在 CentOS 6.5 64位系统上安装Apache 2.2.15 + MySQL 5.1.73 + PHP 5.3.3》

如果想安装指定最新版本的 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

第一步. 安装Apache

yum install httpd httpd-devel

安装完成后,启动Apache:

/etc/init.d/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

yum install mysql mysql-server mysql-devel

完成后,启动MySQL:

/etc/init.d/mysqld start

设置MySQL密码:

/usr/bin/mysqladmin -u root -h localhost 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 4
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

1. 安装aspell/pspell(http://aspell.net/http://aspell.sourceforge.net/

这两个扩展会识别单词的拼法是否正确并给出意见。

如果需要在编译PHP时添加pspell支持,必须安装aspell库。

编译php时加上 ./configure –with-pspell=/usr 如果是phpize 编译 –with-pspell=/usr

当然也可以跳过这个文件,直接把configure命令中的 –with-pspell 参数去掉即可。

wget http://mirrors.kernel.org/gnu/aspell/aspell-0.60.6.tar.gz
tar -xzvf aspell-0.60.6.tar.gz
cd aspell-0.60.6
./configure --prefix=/usr
make && make install

安装字典:

wget http://mirrors.kernel.org/gnu/aspell/dict/en/aspell6-en-6.0-0.tar.bz2
tar -xf aspell6-en-6.0-0.tar.bz2
cd aspell6-en-6.0-0
./configure
make && make install

2. 再安装几个组件,先安装Libmcrypt,再安装mhash,再安装mcrypt

Libmcrypt(http://sourceforge.net/projects/mcrypt/files/Libmcrypt/

yum install libmcrypt

或者通过安装包安装:

wget http://downloads.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar -xzvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install

mhash(http://sourceforge.net/projects/mhash/files/mhash/

yum install mhash

或者通过安装包安装:

wget http://downloads.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
tar -xzvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make && make install

MCrypt(http://sourceforge.net/projects/mcrypt/files/MCrypt/

yum install mcrypt

或者通过安装包安装:

wget http://downloads.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
tar -xzvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure
make && make install

这三个扩展也可以通过第三方源rpmforge实现yum安装,在centos下配置该yum源,配置后即可尝试安装:

rpm -ivh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
yum clean all
yum makecache
yum install libmcrypt libmcrypt-devel mcrypt-devel

3. 确认已安装PHP编译安装需要的组件的开发包及编译工具等

yum -y install gcc gcc-c++ perl flex autoconf zlib libtiff-devel  pam-devel libtool libtool-ltdl libtool-ltdl-devel bison bison-devel libxslt libxslt libxslt-devel ncurses ncurses-devel zlib zlib-devel openssl openssl-devel gnutls-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype-devel gmp-devel mysql-devel ncurses ncurses-devel unixODBC-devel pspell-devel net-snmp net-snmp-devel openldap-devel openldap-servers openldap-clients

4. 安装PHP

PHP各版本下载地址 http://www.php.net/releases/ ,本例中需要下载安装 php-5.2.17.tar.gz。

wget http://museum.php.net/php5/php-5.2.17.tar.gz
tar -xzvf php-5.2.17.tar.gz
cd php-5.2.17
./configure --prefix=/usr/local/php --with-apxs2=/usr/sbin/apxs --with-config-file-path=/usr/local/etc --with-config-file-scan-dir=/etc/php.d --without-sqlite --enable-mbstring --with-curl --with-gettext --with-bz2 --with-mysql=/usr/lib64/mysql -enable-shmop --enable-calendar --with-openssl --with-pspell --enable-ftp --with-openssl --with-zlib --enable-exif --with-gmp --enable-sysvmsg --enable-sockets --enable-wddx --with-xsl --with-mcrypt --with-mysqli --with-mime_magic --with-pdo-mysql --libdir=/usr/lib64 --with-libdir=lib64 --with-gd --with-jpeg-dir=/usr/lib64 --with-png-dir=/usr/lib64 --with-freetype-dir=/usr/lib64
make && make install

configure时注意:
a、指定安装路径,方便换版本及删除,也方便自己查找文件。
b、指定apache的相关文件apxs2的路径,这个文件安装了httpd-devel才有
c、指定配置文件路径,方便配置
d、指定相关lib文件的路径,本文是在64位系统下的lib64

make时注意:

make的时候可能会提示什么xxx没找到,解决方法一般是安装xxx-devel的包就可以了。

查看PHP版本:

/usr/local/php/bin/php -v

输出:

PHP 5.2.17 (cli) (built: Jul 14 2015 16:14:59)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

安装PHP 5.2.17完成!

第四步. 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

让Apache调用这个PHP版本:

LoadModule php5_module modules/libphp5.so

或者

LoadModule php5_module        /usr/lib64/httpd/modules/libphp5.so

添加对PHP的解析:

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps set-variable = max_connections=100

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.2.17,所以这里选择安装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';  

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

参考资料:

checking for C++ compiler error: C++ compiler cannot create executables

2014年12月17日

在安装某些软件的时候,运行./configure 会报错,错误提示为:

checking for C++ compiler default output file name… configure: error: C++ compiler cannot create executables
See `config.log’ for more details.

解决办法:出现该情况是由于c++编译器的相关package没有安装,以root用户登录,在终端上执行:

yum install gcc-c++

Firefox扩展插件备份同步工具FEBE

2014年12月16日

【介绍】

Firefox Extension Backup Extension(FEBE)允许我们非常容易且快速地备份Firefox的所有扩展和其他信息。

【安装】

官网:https://addons.mozilla.org/zh-CN/firefox/addon/febe/
下载:https://addons.mozilla.org/firefox/downloads/latest/2109/addon-2109-latest.xpi

在Firefox的插件管理器中下载安装时出现速度缓慢甚至打不开的时候,可以通过VPS的wget命令获取:

wget https://addons.mozilla.org/firefox/downloads/latest/2109/addon-2109-latest.xpi

文件名为addon-2109-latest.xpi或者形如febe-8.7-fx.xpi?filehash=sha256:915581487da66dfad3b2f389b8765332f5956979bf072eaf4102b1c68e0c2942,下载后修改文件名为febe-8.7-fx.xpi

把febe-8.7-fx.xpi拖拽到Firefox界面,即可识别开始安装。

怎样安装ZendOptimizer 3.3.9

2014年12月15日

准备工作

1. 将 VPS Reinstall为 CentOS 6.5 64bit 纯净版

2. 更新系统内核到最新

yum -y update

3. 安装wget

yum -y install wget

获得LAMP一键安装包

因为时间久远,这个LAMP包诸多链接已失效,需要不断更正替换。

下载:http://centos.googlecode.com/files/lamp0.4.tar.gz
下载:http://down.51cto.com/data/500332
下载:链接:http://pan.baidu.com/s/1o8uGIzK 密码:3q79

tar xf lamp0.4.tar.gz && cd lamp0.4

注意:可以分析各个BASH命令,发现会首先判断系统中是否已经安装此程序,如果没有,才会下载安装。所以可以用这个规律进行排错。

安装LAMP

执行BASH命令:

chmod +x lamp.sh && ./lamp.sh

下载:http://download.csdn.net/download/woshinanjinren/4912990
下载:https://archive.apache.org/dist/httpd/httpd-2.2.22.tar.gz
下载:https://files.phpmyadmin.net/phpMyAdmin/3.5.1/phpMyAdmin-3.5.1-all-languages.tar.gz
下载:http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
下载:http://downloads.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
下载:http://downloads.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
下载:http://downloads.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

设置MySQL密码;选择第一种方案PHP 5.2.17(只有这个方案可以搭配ZendOptimizer 3.3.9)。

Please input the root password of mysql:
(Default password: root):dPC5FV4Mk^12z%8U
mysql password:
####################################
select which version of php you'll install
1) php-5.2.17 with httpd-2.2.22
2) php-5.3.13 with httpd-2.4.2
Please input 1 or 2:1
Your choice:php-5.2.17
####################################
select the mpm of apache
1) prefork (Recommend)
2) worker (Multi-threaded)
3) event (Multi-threaded,not support ssl.)
Please input 1,2,3:1
Your choice:prefork
####################################
Please input the mysql data location:
(leave blank for /usr/local/mysql/data):
mysql data location:/usr/local/mysql/data

Press any key to start...

报错:

checking for iconv support... yes
configure: warning: bison versions supported for regeneration of the Zend/PHP parsers: 1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 (found: 2.7).
configure: warning: flex versions supported for regeneration of the Zend/PHP parsers: 2.5.4  (found: 2.5.37)
configure: warning: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
configure: error: Please reinstall the iconv library.

所以需要卸载/新安装相应程序:

1. bison版本过高:卸载当前bison 2.7,编译安装bison 2.4.1:

参考:http://amon.org/bison

2. flex版本太低:卸载当前flex 2.5.37,编译安装 flex 2.6.3:

参考:http://amon.org/flex

3. re2c没安装,那么yum安装:

yum install re2c

4. libiconv编译安装出错,早知道方法:

参考:http://amon.org/libiconv

重新执行BASH命令,发现PHP编译报错:

/root/lamp0.4/untar/php-5.2.17/ext/dom/node.c:1955:5: note: in expansion of macro ‘RETVAL_STRINGL’
     RETVAL_STRINGL((char *) buf->buffer->content, ret, 1);
     ^
make: *** [ext/dom/node.lo] Error 1

参考:http://blog.csdn.net/moqiang02/article/details/19699557

有一个补丁可以解决问题:

cd /root/lamp0.4/untar/php-5.2.17
curl -o php-5.x.x.patch https://mail.gnome.org/archives/xml/2012-August/txtbgxGXAvz4N.txt
patch -p0 -b < php-5.x.x.patch

再手动编译安装php-5.2.17:

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc
make ZEND_EXTRA_LIBS='-liconv'
make install

创建软连接:

ln -s /usr/local/php/bin/php /usr/local/bin/
ln -s /usr/local/php/bin/phpize /usr/local/bin/
ln -s /usr/local/php/bin/php-config /usr/local/bin/

重新执行BASH命令,发现启动httpd报错:

将Apache设成系统服务:

cp /usr/local/apache/bin/apachectl /etc/init.d/httpd

编辑 /etc/init.d/httpd,在第二行加入:

# chkconfig: 2345 85 15
# description: httpd is web server

把Apache添加到系统的启动服务组里:

chkconfig --add httpd && chkconfig --level 35 httpd on

设为开机启动:

chkconfig httpd on

重新执行BASH命令,发现启动httpd时找不到libphp5.so:

httpd: Syntax error on line 56 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot open shared object file: No such file or directory

那么重新编译安装PHP,让安装程序把libphp5.so放到这个目录。

cd /root/lamp0.4/ && tar zxvf php-5.2.17.tar.gz && cd php-5.2.17
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-iconv-dir=/usr/local -with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysql-sock --with-pdo-mysql
curl -o php-5.x.x.patch https://mail.gnome.org/archives/xml/2012-August/txtbgxGXAvz4N.txt
patch -p0 -b < php-5.x.x.patch
make ZEND_EXTRA_LIBS='-liconv'
make install

如果报错:

参考:http://www.cnblogs.com/zhanghw0354/archive/2012/09/23/2698951

这样在编译完成时看见:

Installing PHP SAPI module:       apache2handler
/usr/local/apache/build/instdso.sh SH_LIBTOOL='/usr/local/apache/build/libtool' libphp5.la /usr/local/apache/modules
/usr/local/apache/build/libtool --mode=install cp libphp5.la /usr/local/apache/modules/
cp .libs/libphp5.so /usr/local/apache/modules/libphp5.so
cp .libs/libphp5.lai /usr/local/apache/modules/libphp5.la
libtool: install: warning: remember to run `libtool --finish /root/lamp0.4/php-5.2.17/libs'
chmod 755 /usr/local/apache/modules/libphp5.so
...

重新执行BASH命令,看见成功信息:

...
PHP had been installed
============================phpmyadmin install============================================
mv: cannot move ‘untar/phpMyAdmin-3.5.1-all-languages’ to ‘/home/www/default/phpmyadmin/phpMyAdmin-3.5.1-all-languages’: Directory not empty
httpd: Could not reliably determine the server's fully qualified domain name, using ::1 for ServerName
httpd (pid 3227) already running
============================phpmyadmin install completed============================================
============================LAMP install completed============================================
mysql root password:dPC5FV4Mk^12z%8U
default web root:/home/www/default

中间httpd提示没有设置域名,下一步设置httpd.conf。

如果外网IP不能被访问,可能是因为iptables的原因。

如果是CentOS 7.0之后的系统:

输入:

service iptables stop

输出报错:

Redirecting to /bin/systemctl stop  iptables.service
Failed to stop iptables.service: Unit iptables.service not loaded.

原因是CentOS从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以你只要停止firewalld服务即可。
参考:《CentOS 7.2 (mini) 里iptables防火墙怎么关闭? 》

先停止服务,禁用服务:

systemctl stop firewalld.service && systemctl disable firewalld.service

输出:

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

查看状态:

systemctl list-unit-files | grep firewalld

输出:

firewalld.service                      disabled

安装ZendOptimizer

chmod +x zend.sh && ./zend.sh

参考:http://www.cnblogs.com/lpfuture/p/6014827

32位:http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
64位:http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz

报错:

ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz [found]
============================ZendOptimizer install============================================
cp: cannot create regular file ‘/etc/php.d/zend.ini’: No such file or directory
============================ZendOptimizer install completed============================================

那么创建它:

cd /etc && mkdir php.d

然后运行BASH命令:

发现已经生成zend.ini文件,内容:

[zend]
zend_optimizer.optimization_level=15
zend_extension=/usr/local/Zend/lib/ZendOptimizer.so

把 php.ini 拷贝到

7. 安装XCache

chmod +x xcache.sh && ./xcache.sh

PHP5.3以上的版本不再支持Zend Optimizer,已经被全新的 Zend Guard Loader 取代。

Zend Optimizer的最终可自动安装的版本是 3.3.3。一路YES,OK和回车,安装就完成了。不需要另外编辑php.ini文件就可以正常工作了。

Zend Optimizer的最终版本是 3.3.9,但有改动,不需要安装。但是需要直接在php.ini文件里面引用.so文件。

安装Zend Optimizer 3.3.3

在命令行中执行命令(支持32位、64位):

wget http://wiki.diahosting.com/down/kloxo/zend.sh
sh ./zend.sh

zend.sh 源代码:

#!/bin/bash

mkdir /root/hostwiki_zend
cd /root/hostwiki_zend
wget http://wiki.diahosting.com/down/lnmp/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
for FILE in ./*.tar.gz; do tar xvf $FILE; done
cd ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp
mkdir -p /usr/local/ZendOptimizer/
cp ZendOptimizer.so /usr/local/ZendOptimizer/ZendOptimizer.so
rm -rf /root/hostwiki_zend


for DOMAIN in /home/httpd/*;
do
sed -i 's/zend_/;zend_/g' $DOMAIN/php.ini 2>/dev/null
cat 2>/dev/null >> "$DOMAIN/php.ini" << EOF
zend_optimizer.optimization_level=1
zend_extension="/usr/local/ZendOptimizer/ZendOptimizer.so"
EOF
echo "$DOMAIN/php.ini update!";
done

sed -i 's/zend_/;zend_/g' /etc/php.ini
cat >> /etc/php.ini << EOF
zend_optimizer.optimization_level=1
zend_extension="/usr/local/ZendOptimizer/ZendOptimizer.so"
EOF
echo "/etc/php.ini update!";

service lighttpd restart
service httpd restart

然后一路YES,OK和回车,安装完成。

如果你的服务器连接Zend.com官方下载服务器有问题,可以先用代理下载相应的安装包放在自己的服务器上;然后下载zend.sh,修改为新的路径后放在自己的服务器上。然后访问zend.sh即可。

注意,使用zend.sh时会下载到服务器上,改变安装包路径后,需要在下载目录那把早先的zend.sh删除。或者新版本增加版本号以区别。

安装Zend Optimizer 3.3.9

ZendOptimizer3.3.9 64位版

http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz

ZendOptimizer3.3.9 32位版

http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

1. 解压缩 Zend Optimizer安装包

tar -zxvf ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz
cd ZendOptimizer-3.3.9-linux-glibc23-x86_64

2. 在data文件夹中找到对应你的服务器上PHP版本(4.3.x, 4.4.x, 5.0.x, 5.1.x, 5.2.x)的ZendOptimizer.so。并把 ZendOptimizer.so 文件拷贝到 /usr/local/Zend/lib 。

3. 修改/usr/local/etc/php.ini 文件(从PHPINFO查看)

将zend.ze1_compatibility_mode设置成 On仅在PHP4下,如果您只安装了PHP5,建议不要修改,仍保持zend.ze1_compatibility_mode为Off状态,

找到:

zend.ze1_compatibility_mode = Off

修改为:

zend.ze1_compatibility_mode = On

添加2行:

zend_optimizer.optimization_level=15
zend_extension="/usr/local/Zend/lib/ZendOptimizer.so"

4. 重启Apache

service httpd restart

5. 查看PHPINFO

Zend logo This program makes use of the Zend Scripting Language Engine: Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies

Zend Optimizer配置文件中相关内容的含义:

例子:

  [Zend]
  zend_optimizer.optimization_level=15
  zend_extension_ts="C:\Program Files\Zend\lib\ZendExtensionManager.dll"
  zend_extension_manager.optimizer_ts="C:\Program Files\Zend\lib\Optimizer-2.5.5"
  ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  [Zend]
  zend_optimizer.optimization_level=1023
  zend_optimizer.encoder_loader=0
  zend_extension_ts="C:\Program Files\Zend\lib\ZendOptimizer.dll" 
zend_optimizer.optimization_level 《== 优化程度,这里定义启动多少个优化过程。
zend_optimizer.encoder_loader 《== 是否允许处理由Zend Encoder加密的PHP文件。
zend_extension_ts 《== 优化器所在目录。
zend_extension_manager.optimizer_ts 《== 优化器管理所在目录。

优化程度 zend_optimizer.optimization_level 详细解释

Zend Optimizer总共有10个优化过程,从理论上说开的越多性能越好。当然,理论和实际永远都存在着差距。优化过程开启的越多对性能消耗也相对也越大,Zend Optimizer的10个优化过程并不相同也就是说效果不是平均的。Zend公司定义的最高值(High模式)为15,这里15指的是开启1-4号优化程度。当然,很多朋友并不满足于此,毕竟最高也只开启4个优化过程连总数的一半都没有。各个优化过程的对应的数字代码(值)如下:

  不使用 0 < = 如果这样不如不装,还能节约点内存说!   优化过程1(PASS1) 1   优化过程2(PASS2) 2   优化过程3(PASS3) 4   优化过程4(PASS4) 8   优化过程5(PASS5) 16   优化过程6(PASS6) 32   优化过程7(PASS7) 64   优化过程8(PASS8) 128   优化过程9(PASS9) 256   优化过程10(PASS10) 512

以何种方式开启优化过程是通过这些数字代码(值)相加所得的和作为此参数的参数值来控制的。例如配置文件中zend_optimizer.optimization_level = 1023 , 这里的1023是优化过程1到优化过程10全部数字代码(值)相加得到的和,表示开启全部10个优化过程。刚才所提到的Zend公司定义的High模式值为15,15表示同时开启优化过程1-4。

加密代码支持 zend_optimizer.encoder_loader 详细解释

这个参数用来告诉Zend Optimizer是否去支持被Zend Encoder加密过的代码。默认情况下Zend Optimizer将支持加密过的代码。如果不使用被加密过的代码可以关闭此选项。这个功能牵扯到解包反码的过程,会导致系统负荷的加重。

这个参数的值只有两个 0 关闭, 1 开启。默认为1,推荐设置为0。

模块定位 zend_extension_ts 、zend_extension_manager.optimizer_ts 的参数就是Zend Optimizer相关模块在硬盘上的安装路径。

参考资料:

参考:http://www.ctohome.com/FuWuQi/f2/192
参考:http://www.linuxidc.com/Linux/2009-04/19260.htm
参考:http://baike.eepw.com.cn/baike/showedition/id/4544

怎样安装eAccelerator

2014年12月15日

eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍。

1. 编译安装 eaccelerator,过程如下。我们从官方下的版本是 eaccelerator-0.9.5.2.tar.bz2
编译安装;

# tar xvf eaccelerator-0.9.5.2.tar.bz2
# cd eaccelerator-0.9.5.2
# export PHP_PREFIX="/usr"
# $PHP_PREFIX/bin/phpize
# ./configure \
--enable-eaccelerator=shared \
--with-php-config=$PHP_PREFIX/bin/php-config
# make
# make install

» 阅读更多: 怎样安装eAccelerator