发新话题
打印

[使用] DreamHost 自己编译PHP,支持采集(allow_url_fopen)

DreamHost 自己编译PHP,支持采集(allow_url_fopen)

DreamHost 自己编译PHP,支持采集(allow_url_fopen)

众所周知,DH默认是不支持大部分的采集器,因为DH默认PHP的 allow_url_fopen 选项没有打开,这是DH的一个大缺陷。好在DH可以让用户自己编译PHP,打开这些选项。

编译方法:

1. 下载附件中的文件 installscript.sh,将其中的“your.domain.com”替换为你的真实域名,然后上传到你的域名目录中
2. 用shell登陆系统
3. 修改 installscript.sh 的属性为可执行:执行命令 "chmod +x installscript.sh"
4. 执行installscript.sh: ./installscript
5. 编译成功后,修改 .htaccess,使用刚才编译出的php程序来解析php文件;在 .htaccess 中添加如下内容:
复制内容到剪贴板
代码:
AddHandler phpFive .php

Action phpFive /cgi-bin/php.cgi
6. 修改 php.ini,该文件在 ~/your_domain_name/etc/php5/ 目录下,打开 allow_url_fileopen 选项
installscript.sh源码:

复制内容到剪贴板
代码:
#!/bin/sh



# Script updated 2006-12-25 by Carl McDade (hiveminds.co.uk) to allow memory limit and freetype

# Save the code to a file as *.sh

# Abort on any errors

set -e



# The domain in which to install the PHP CGI script.

export DOMAIN="your.domain.com"



# Where do you want all this stuff built? I'd recommend picking a local

# filesystem.

# ***Don't pick a directory that already exists!***  We clean up after

# ourselves at the end!

SRCDIR=${HOME}/source



# And where should it be installed?

INSTALLDIR=${HOME}/php5



# Set DISTDIR to somewhere persistent, if you plan to muck around with this

# script and run it several times!

DISTDIR=${HOME}/dist



# Pre-download clean up!!!!

rm -fr $SRCDIR $DISTDIR



# Update version information here.

PHP5="php-5.2.0"

LIBICONV="libiconv-1.11"

LIBMCRYPT="libmcrypt-2.5.7"

LIBXML2="libxml2-2.6.27"

LIBXSLT="libxslt-1.1.18"

MHASH="mhash-0.9.7.1"

ZLIB="zlib-1.2.3"

CURL="curl-7.14.0"

LIBIDN="libidn-0.6.8"

CCLIENT="imap-2004g"

CCLIENT_DIR="imap-2004g" # Another pest!

FREETYPE="freetype-2.2.1"



# What PHP features do you want enabled?

PHPFEATURES="--prefix=${INSTALLDIR} \

--with-config-file-path=${INSTALLDIR}/etc/php5/${DOMAIN} \

--enable-force-cgi-redirect \

--with-xml \

--with-libxml-dir=${INSTALLDIR} \

--with-freetype-dir=${INSTALLDIR} \

--enable-soap \

--with-openssl=/usr \

--with-mhash=${INSTALLDIR} \

--with-mcrypt=${INSTALLDIR} \

--with-zlib-dir=${INSTALLDIR} \

--with-jpeg-dir=/usr \

--with-png-dir=/usr \

--with-gd \

--enable-gd-native-ttf \

--enable-memory-limit

--enable-ftp \

--with-exif \

--enable-sockets \

--enable-wddx \

--with-iconv=${INSTALLDIR} \

--enable-sqlite-utf8 \

--enable-calendar \

--with-curl=${INSTALLDIR} \

--enable-mbstring \

--enable-mbregex \

--with-mysql=/usr \

--with-mysqli \

--without-pear \

--with-gettext \

--with-imap=${INSTALLDIR} \

--with-imap-ssl=/usr"



# ---- end of user-editable bits. Hopefully! ----



# Push the install dir's bin directory into the path

export PATH=${INSTALLDIR}/bin:$PATH



#setup directories

mkdir -p ${SRCDIR}

mkdir -p ${INSTALLDIR}

mkdir -p ${DISTDIR}

cd ${DISTDIR}



# Get all the required packages

wget -c http://us3.php.net/distributions/${PHP5}.tar.gz

wget -c http://mirrors.usc.edu/pub/gnu/libiconv/${LIBICONV}.tar.gz

wget -c http://easynews.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.7.tar.gz

wget -c ftp://xmlsoft.org/libxml2/${LIBXML2}.tar.gz

wget -c ftp://xmlsoft.org/libxml2/${LIBXSLT}.tar.gz

wget -c http://superb-west.dl.sourceforge.net/sourceforge/mhash/${MHASH}.tar.gz

wget -c http://www.zlib.net/${ZLIB}.tar.gz

wget -c http://curl.haxx.se/download/${CURL}.tar.gz

wget -c http://kent.dl.sourceforge.net/sourceforge/freetype/${FREETYPE}.tar.gz

wget -c ftp://alpha.gnu.org/pub/gnu/libidn/${LIBIDN}.tar.gz

wget -c ftp://ftp.cac.washington.edu/imap/old/${CCLIENT}.tar.Z



echo ---------- Unpacking downloaded archives. This process may take several minutes! ----------



cd ${SRCDIR}

# Unpack them all

echo Extracting ${PHP5}...

tar xzf ${DISTDIR}/${PHP5}.tar.gz

echo Done.

echo Extracting ${LIBICONV}...

tar xzf ${DISTDIR}/${LIBICONV}.tar.gz

echo Done.

echo Extracting ${LIBMCRYPT}...

tar xzf ${DISTDIR}/${LIBMCRYPT}.tar.gz

echo Done.

echo Extracting ${LIBXML2}...

tar xzf ${DISTDIR}/${LIBXML2}.tar.gz

echo Done.

echo Extracting ${LIBXSLT}...

tar xzf ${DISTDIR}/${LIBXSLT}.tar.gz

echo Done.

echo Extracting ${MHASH}...

tar xzf ${DISTDIR}/${MHASH}.tar.gz

echo Done.

echo Extracting ${ZLIB}...

tar xzf ${DISTDIR}/${ZLIB}.tar.gz

echo Done.

echo Extracting ${CURL}...

tar xzf ${DISTDIR}/${CURL}.tar.gz

echo Done.

echo Extracting ${LIBIDN}...

tar xzf ${DISTDIR}/${LIBIDN}.tar.gz

echo Done.

echo Extracting ${CCLIENT}...

uncompress -cd ${DISTDIR}/${CCLIENT}.tar.Z |tar x

echo Done.

echo Extracting ${FREETYPE}...

tar xzf ${DISTDIR}/${FREETYPE}.tar.gz

echo Done.



# Build them in the required order to satisfy dependencies.



#libiconv

cd ${SRCDIR}/${LIBICONV}

./configure --enable-extra-encodings --prefix=${INSTALLDIR}

# make clean

make

make install



#libxml2

cd ${SRCDIR}/${LIBXML2}

./configure --with-iconv=${INSTALLDIR} --prefix=${INSTALLDIR}

# make clean

make

make install



#libxslt

cd ${SRCDIR}/${LIBXSLT}

./configure --prefix=${INSTALLDIR} \

--with-libxml-prefix=${INSTALLDIR} \

--with-libxml-include-prefix=${INSTALLDIR}/include/ \

--with-libxml-libs-prefix=${INSTALLDIR}/lib/

# make clean

make

make install



#zlib

cd ${SRCDIR}/${ZLIB}

./configure --shared --prefix=${INSTALLDIR}

# make clean

make

make install



#libmcrypt

cd ${SRCDIR}/${LIBMCRYPT}

./configure --disable-posix-threads --prefix=${INSTALLDIR}

# make clean

make

make install



#libmcrypt lltdl issue!!

cd  ${SRCDIR}/${LIBMCRYPT}/libltdl

./configure --prefix=${INSTALLDIR} --enable-ltdl-install

# make clean

make

make install



#mhash

cd ${SRCDIR}/${MHASH}

./configure --prefix=${INSTALLDIR}

# make clean

make

make install



#freetype

cd ${SRCDIR}/${FREETYPE}

./configure --prefix=${INSTALLDIR}

# make clean

make

make install



#libidn

cd ${SRCDIR}/${LIBIDN}

./configure --with-iconv-prefix=${INSTALLDIR} --prefix=${INSTALLDIR}

# make clean

make

make install



#cURL

cd ${SRCDIR}/${CURL}

./configure --with-ssl=${INSTALLDIR} --with-zlib=${INSTALLDIR} \

  --with-libidn=${INSTALLDIR} --enable-ipv6 --enable-cookies \

  --enable-crypto-auth --prefix=${INSTALLDIR}

# make clean

make

make install



# c-client

cd ${SRCDIR}/${CCLIENT_DIR}

make ldb

# Install targets are for wusses!

cp c-client/c-client.a ${INSTALLDIR}/lib/libc-client.a

cp c-client/*.h ${INSTALLDIR}/include



#PHP 5

cd ${SRCDIR}/${PHP5}

./configure ${PHPFEATURES}

# make clean

make

make install



#copy config file

mkdir -p ${INSTALLDIR}/etc/php5/${DOMAIN}

cp ${SRCDIR}/${PHP5}/php.ini-dist ${INSTALLDIR}/etc/php5/${DOMAIN}/php.ini



#copy PHP CGI

mkdir -p ${HOME}/${DOMAIN}/cgi-bin

chmod 0755 ${HOME}/${DOMAIN}/cgi-bin

cp ${INSTALLDIR}/bin/php ${HOME}/${DOMAIN}/cgi-bin/php.cgi

rm -fr $SRCDIR $DISTDIR

echo ---------- INSTALL COMPLETE! ----------
参考文档:http://wiki.dreamhost.com/index.php/Installing_PHP5
附件: 您所在的用户组无法下载或查看附件

TOP

第二种方法:

1. 下载 php_update.sh 。如果是PHP5,下载 php5_update.sh;如果是 PHP4,下载 php4_update。下面以php5举例。同时下载 附件中的 .htaccess 文件





2. FTP上传文件 php5_update.sh 和 .htaccess 到相应域名的根目录

3. SSH登录到Dreamhost,具体操作参见教程六:使用Dreamhost的Shell

4. 修改文件属性为可执行,并执行
复制内容到剪贴板
代码:
chmod +x php5_update.sh

./php5_update.sh
5. 增加定时项,每周执行一次 php5_update.sh
复制内容到剪贴板
代码:
crontab -e
然后输入内容
复制内容到剪贴板
代码:
@weekly /home/your-user-name/your-domain-name/php5-update.sh
按Ctrl + O保存后,按Ctrl + X退出

转自:此处
附件: 您所在的用户组无法下载或查看附件

TOP

您好,能帮我么?我架设了杰奇,可是无法采集

TOP

指点指点我吧,十分感谢!我的QQ46657358  谢谢!

TOP

发新话题