12

vps配置笔记(3)php环境搭建

以下内容为个人配置笔记,仅供参考,请勿用于生产环境

同mysql一样php的环境也有不少定制需求,故也是采用源码安装方式。
在安装php环境前做一些周边的准备工作:

安装libevent库:
在目前的网络开发环境而言libevent几乎是现如今的新兴网络服务所必不可少的底层组件了,在此下载编译安装一下:

wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
tar zxf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable/
./configure
make
sudo make install

如果不想编译安装也可以直接安装源里的版本:

sudo apt-get install libevent-dev

安装apache
尽管在如今的场合里apache的使用频率已经不太高了,但有些特定的应用还是必须用到它,故在此先编译安装一下apache:

wget http://www.apache.org/dist/httpd/httpd-2.2.15.tar.bz2
tar jxf httpd-2.2.15.tar.bz2
cd httpd-2.2.15/
./configure --prefix=/usr/local/apache2 --enable-deflate --enable-expires --enable-headers --enable-proxy --enable-proxy-http --enable-http --enable-rewrite --enable-so --enable-mods-shared=most --with-mpm=worker --with-port=8088
make
sudo make install
sudo ln -s /usr/local/apache2/bin/ab /usr/bin/
sudo ln -s /usr/local/apache2/bin/apachectl /usr/bin/
sudo ln -s /usr/local/apache2/bin/apxs /usr/bin/
sudo ln -s /usr/local/apache2/bin/htpasswd /usr/bin/
sudo ln -s /usr/local/apache2/bin/httpd /usr/bin/

安装autoconf
这个步骤比较汗,以前在ubuntu上编译php环境总是过不去,google良久,发觉解决之道:
sudo apt-get install autoconf2.13
貌似是默认的autoconf有bug还是啥的。

开始安装php环境
1.下载源码
http://www.php.net/downloads.php#v5去下载目前的稳定版本

wget http://cn2.php.net/get/php-5.3.1.tar.bz2/from/us.php.net/mirror
tar jxf php-5.3.1.tar.bz2

去下载php-fpm也就是php的fast-cgi进程管理器:

wget http://launchpad.net/php-fpm/master/0.6/+download/php-fpm-0.6~5.3.1.tar.gz
tar zxf php-fpm-0.6~5.3.1.tar.gz

据说下一个版本或者php5.3.3及以后的版本已经直接整合进去了不需要另外下载打补丁安装了,当然你也有另一种选择就是使用spawn-fcgi来管理php的fast-cgi进程,sudo apt-get install spawn-fcgi即可下载这个源于lighttpd的fast-cgi通用管理器(后面python的部分才会用到它)。
安装php-fpm的方式有两种:整合式的,和分离式的,这里还需要编译一下modphp故按第二种方式安装:

export PHP_VER=5.3.1

先编译php的常规版本:

cd "php-$PHP_VER"
mkdir php-build && cd php-build
../configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/etc/conf.d --disable-debug --disable-rpath --enable-sockets --enable-zip --enable-ftp --with-pear --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --enable-gd-native-ttf --with-iconv-dir=/usr --enable-mbstring --enable-mbregex --with-zlib --with-libxml-dir=/usr --enable-xml --with-mcrypt --with-mhash --enable-bcmath --with-gmp --enable-sysvsem --enable-inline-optimization --with-openssl --with-curl --with-curlwrappers --enable-shmop --with-sqlite --enable-sqlite-utf8 --with-pdo-sqlite --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-apxs2=/usr/local/apache2/bin/apxs
make
sudo make install
cd ../..

再编译上php-fpm:
不过我配置的时候,貌似php-fpm的configure脚本设置项失效了,--with-libevent指定的路径并没有能应用到它的配置查找路径中去,无奈只有做两个软链接了:

sudo ln -s /usr/local/lib/libevent.a /usr/lib/
sudo ln -s /usr/local/lib/libevent.so /usr/lib/

开始编译php-fpm:

cd "php-fpm-0.6-$PHP_VER"
mkdir fpm-build && cd fpm-build
../configure --srcdir=../ --with-php-src="../../php-$PHP_VER" --with-php-build="../../php-$PHP_VER/php-build" --with-libevent=/usr/local --with-fpm-log=/var/log/php-fpm/php-fpm.log --with-fpm-pid=/var/run/php-fpm.pid --with-fpm-conf=/usr/local/php/etc/php-fpm.conf --with-fpm-bin=/usr/local/php/bin/php-fpm --with-fpm-port=9001 --with-fpm-user=www-data --with-fpm-group=www-data
make clean
make
sudo make install
cd ../..

安装最后做一些设定工作,将常用命令链接到系统路径:

sudo mkdir -p /usr/local/php/etc/conf.d
sudo mkdir -p /var/log/php-fpm
sudo ln -s /usr/local/php/bin/php /usr/bin/
sudo ln -s /usr/local/php/bin/phpize /usr/bin/
sudo ln -s /usr/local/php/bin/pear /usr/bin/
sudo ln -s /usr/local/php/bin/pecl /usr/bin/
sudo ln -s /usr/local/php/bin/php-config /usr/bin/

将启动脚本作为系统服务:
修改执行权限,安装为系统服务:

sudo chmod a+x /etc/init.d/php-fpm
sudo update-rc.d php-fpm defaults

配置默认php.ini配置文件:

cd "php-$PHP_VER"
sudo cp php.ini-production /usr/local/php/etc/php.ini

根据你应用的需要做一些必要的调整。
修改一下默认时区:

date.timezone = "Asia/Shanghai"

更新pear库,安装一些基本的组件:

sudo pear channel-update pear.php.net
sudo pear install HTTP
sudo pear install HTTP_Client
sudo pear install --alldeps PhpDocumentor

安装apc扩展:

sudo pecl install http://pecl.php.net/get/APC

编辑php.ini文件在include_path加入pear库的路径,

include_path = ".:/usr/local/php/lib/php"

在扩展路径extension_dir添加刚刚apc编译时最后显示的扩展所在路径:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20090626"

在文件最后添加apc扩展的调用段:

[apc]
extension=apc.so
apc.enabled=1
apc.rfc1867=on
apc.shm_segments=1
apc.shm_size=128
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1

至此基本环境配置完毕,后面根据各个应用再添加扩展配置继续折腾。
运行php -v查看基本配置正常与否,php -m 可以查看当前cli模式下载入的扩展。

, , , , ,

引用地址:http://axiong.me/develop/vps-setup-3-script-php.html

要说点啥就在这吧

*



使用新浪微博登陆

Switch to our mobile site