1. 公式 Web サイトから最新の php5.4.13.tar.gz をダウンロードします
2. tar zxvf php5.4.13.tar.gz
3. cd php5.4.13
4. ./buildconf --force 次のエラーが報告された場合 autoconf バージョン 2.59 以降が必要です
??? 次に、 を実行して、最初に元の autoconf をアンインストールします。
apt-get --purge remove autoconf??それでは
apt-get autoremove autoconf?? それから直接インストールしてください
apt-get install autoconf5.
PHP5.4.13 のコンパイル、インストール、設定を開始します
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-curl --with-pear --with-gd - -with-jpeg-dir --with-png-dir --with-zlib --with-xpm-dir --with-freetype-dir --with-t1lib --with-mcrypt --with-mhash --with -mysql --with-mysqli --enable-pdo --with-pdo-mysql --with-openssl --with-xmlrpc --with-xsl --with-gettext --with-fpm-user=www-data --with-fpm-group=www-data --enable-fpm --enable-exif --enable-wddx --enable-zip --enable-bcmath -with-bz2 --enable-calendar --enable-ftp --enable-mbstring --enable-soap --enable-sockets --enable-shmop --enable-dba --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-debug --enable-maintainer -zts --enable-embed
make && make install?
発生したエラーとその解決策は次のとおりです:
?
1) 構成: エラー: xml2-config が見つかりません。libxml2 のインストールを確認してください。
解決策:
# aptitude install libxml2-dev
2) pkg-config を確認しています… / usr/bin/pkg-config
configure: エラー: OpenSSL の 035d136d3952718cf434d86b1ed537d0?or?ef41106e970dc7ec15339d961734c386
が見つかりません解決策:
sudo apt-get install openssl-dev
?
sudo apt-get install libcurl3-openssl-dev
??
?
3) 設定: エラー: BZip2 ディストリビューションを再インストールしてください
解決策:
? apt-get install libbz2-dev
4) 設定: エラー: libcurl ディストリビューションを再インストールしてください-
easy.h は /include/curl/
にある必要があります。 解決策:
apt-get installcurl
apt-get install libcurl3
apt-get install libcurl4-gnutls- dev(Ubuntu用)
5) 設定: エラー: libjpeg.(も) 見つかりません。
解決策:
?apt-get install libjpeg-dev
6) 設定: エラー: libpng.(も) 見つかりません。
解決策:
7) 設定: エラー: freetype.h が見つかりません。
解決策:
8) 設定: エラー: できませんlocate gmp.h
解決策:
yum install gmp-devel
9) 設定: エラー: /usr の下に MySQL ヘッダー ファイルが見つかりません。
MySQL クライアント ライブラリが存在しないことに注意してください。もうバンドルされていません!
解決策:
yum install mysql-devel (Redhat および Fedora の場合)
# apt-get install libmysql -dev (Ubuntu の場合)
10) 設定: エラー: ncurses ディストリビューションを再インストールしてください
解決策:
yum install ncurses ncurses-devel
11) unixODBC サポートを確認しています… 設定: エラー: ODBC ヘッダー ファイル ' /usr/include/sqlext.h' が見つかりません!
解決策:
yum install unixODBC-devel
12) 設定: エラー: pspell
解決策が見つかりません:
yum install pspell-devel
13) 設定: エラー: mcrypt.h が見つかりません。libmcrypt を再インストールしてください。
解決策:
yum install libmcrypt libmcrypt-devel ( Redhat および Fedora)
# apt-get install libmcrypt-dev
14) 設定: エラー: snmp.h が見つかりません。SNMP のインストールを確認してください。
解決策:
15)
configure: エラー: libXpm.(a|だから)が見つかりません。
<span class="pln">apt</span><span class="pun">-</span><span class="kwd">get</span><span class="pln"> install libxpm</span><span class="pun">-</span><span class="pln">dev 有可能还会出现这个错误,那么继续 </span><span class="pln"><span class="pln">cd </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="pln">lib</span><span class="pun">/</span><span class="pln"> ln </span><span class="pun">-</span><span class="pln">s </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="pln">lib</span><span class="pun">/</span><span class="pln">x86_64</span><span class="pun">-</span><span class="pln">linux</span><span class="pun">-</span><span class="pln">gnu</span><span class="pun">/</span><span class="pln">libXpm</span><span class="pun">.</span><span class="pln">a </span><span class="pun">.</span><span class="pln"> ln </span><span class="pun">-</span><span class="pln">s </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="pln">lib</span><span class="pun">/</span><span class="pln">x86_64</span><span class="pun">-</span><span class="pln">linux</span><span class="pun">-</span><span class="pln">gnu</span><span class="pun">/</span><span class="pln">libXpm</span><span class="pun">.</span><span class="pln">so </span><span class="pun">.</span><span class="pln"> ln </span><span class="pun">-</span><span class="pln">s </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="pln">lib</span><span class="pun">/</span><span class="pln">x86_64</span><span class="pun">-</span><span class="pln">linux</span><span class="pun">-</span><span class="pln">gnu</span><span class="pun">/</span><span class="pln">libXpm</span><span class="pun">.</span><span class="pln">so</span><span class="pun">.</span><span class="lit">4</span><span class="pun">.</span><span class="pln"> ln </span><span class="pun">-</span><span class="pln">s </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="pln">lib</span><span class="pun">/</span><span class="pln">x86_64</span><span class="pun">-</span><span class="pln">linux</span><span class="pun">-</span><span class="pln">gnu</span><span class="pun">/</span><span class="pln">libXpm</span><span class="pun">.</span><span class="pln">so</span><span class="pun">.</span><span class="lit">4.11</span><span class="pun">.</span><span class="lit">0</span><span class="pun">.</span></span>?
この時点で、php5.4.13 は正常にインストールされているはずです。次に、それを設定します。
php5 が配置されているディレクトリを bash の PATH に追加します:
?
?現在のセッションも追加されます:
echo 'if [ -d "/usr/local/php/bin" ] && [ -d "/usr/local/php/sbin" ]; then PATH="$PATH:/usr/local/php/bin:/usr/local/php/sbin" fi' >> /etc/bash.bashrc
export PATH="$PATH:/usr/local/php/bin:/usr/local/php/sbin"?
?
mkdir /var/log/php-fpm chown -R www-data:www-data /var/log/php-fpm
?
PHP 設定ファイルを準備します:
?
cp -f php.ini-production /usr/local/php/etc/php.ini
chmod 644 /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf?
注意: PHP5的配置文件在/usr/local/php/etc/php.ini, php-fpm的配置文件在/usr/local/php/etc/php-fpm.conf.
设置php-fpm启动管理文件,并让PHP在ubuntu启动时自动运行(下面地sapi是PHP5.4.0安装包中的):
cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
update-rc.d -f php-fpm defaults
设置PHP的自动日志分割和压缩: vi /etc/logrotate.d/php-fpm
加入下面的内容保存退出:
/var/log/php-fpm/*.log { weekly missingok rotate 52 compress delaycompress notifempty create 640 www-data www-data sharedscripts postrotate [ ! -f /usr/local/php /var/run/php-fpm.pid ] || kill -USR1 `cat /usr/local/php/ /var/run/php-fpm.pid` endscript }
?
配置php-fpm和nginx
php-fpm:
vi /usr/local/php/etc/php-fpm.conf
主要是下面的参数需要改下:
- pid = run/php-fpm.pid? //这个必去将前面的;注释去掉(一开始没去掉结果出502错误)
- error_log = log/php-fpm.log
- log_level = notice
- ;emergency_restart_threshold = 0
- ;emergency_restart_interval = 0
- ;process_control_timeout = 0
- ;daemonize = yes
- [www]
- ;prefix = /path/to/pools/$pool
- listen = 127.0.0.1:9000
- ; listen.backlog = -1
- listen.allowed_clients = 127.0.0.1
- listen.owner = www-data
- listen.group = www-data
- listen.mode = 0666
- user = www-data
- group = www-data
- pm = dynamic
- pm.max_children = 50
- pm.start_servers = 20
- pm.min_spare_servers = 5
- pm.max_spare_servers = 35
- pm.max_requests = 500
?
?
?
?
?
然后配置nginx: vi /etc/nginx/nginx.conf user nginx; worker_processes 2; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { use epoll; worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #charset gb2312; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 8M; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300s; fastcgi_send_timeout 300s; fastcgi_read_timeout 300s; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; #limit_zone crawler $binary_remote_addr 10m; server { listen 80; #/*监听端口*/ server_name localhost; #/*服务器名称*/ index index.html index.htm index.php; #/*缺省主页名称*/ root /var/www; #/*网站根目录,也可以采用下面内容*/ #也可以采用相对路径,下面注释部分*/ #location / { # root html; # index index.html index.htm; # } #limit_conn crawler 20; #通过FastCGI方式支持PHP,php页面由fastcgi代理处理,这也是反向代理的一个应用,这里可以是jsp/asp等脚本。 location ~ .*\.(php|php5)?$ { include /etc/nginx/fastcgi_params;#为FastCGI模块设置了基本的环境变量 fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name; #include fcgi.conf; #/*fastcgi配置文件,修改为以下内容*/ } #对于某一类型的文件,设置过期时间,静态的页面通常设置长一点。 #静态文件,nginx自己处理 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ { expires 30d; } #日志的格式 log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; access_log access_log /usr/local/ngxin/logs/access.log access; } } 然后保存退出,重启fpm和nginx /etc/init.d/php-fpm restart /etc/init.d/nginx restart 安装完成: root@Cyrec-desktop:~# php-fpm -v PHP 5.4.0 (fpm-fcgi) (built: Mar 12 2012 18:13:13) (DEBUG) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
一些参考资料:
http://www.cslog.cn/Content/ubuntu-10-04-nginx-0-8-52-php-fpm-5-3-3-apc-mysql-i/
http://www.laruence.com/2009/07/28/1030.html
http://www.frostsky.com/2011/11/php-configure-error/
http://letle.iteye.com/blog/625728
http://kangxiaowei.com/archives/2398.html
http://wenku.baidu.com/view/2ae270e9551810a6f52486ea.html