1. Go to the PHP website to download the source http://www.php.net/downloads.php, I download the version used is (php-5.4.8.tar.gz)
2. Installation Environment
Yum Install XML2
2. Extract to/usr/src directory, execute command: sudo tar-zxvf php-5.4.8.tar.gz-c/usr/src
3. Execution./configure \
--prefix=/usr/local/php \
--with-mcrypt=/usr/local/libmcrypt \
--with-zlib--enable-mbstring \
--WITH-OPENSSL \
--with-mysql \
--with-mysqli--with-mysql-sock \
--WITH-GD--with-jpeg-dir=/usr/lib \
--WITH-BZ2 \
--with-pdo-mysql \
--with-gettext \
--with-curl \
--with-pdo-mysql \
--enable-sockets \
--enable-bcmath \
--enable-xml \
--enable-zip \
--ENABLE-GD-NATIVE-TTF \
--ENABLE-PDO \
--ENABLE-FPM \
--enable-freetype
4. Compilation encountered a problem: Error:xml2-config not found. Workaround:
(1) to the official website http://xmlsoft.org/sources/download source code. The version I used was libxml2-2.9.0.tar.gz, extracted to/usr/src, execute command: sudo tar-zxvf libxml2-2.9.0.tar.gz-c/usr/src
(2) Enter the directory/usr/src/libxml2-2.9.0, execute under root or with the sudo command: sudo./configure--prefix=/usr/local/libxml2/; Make Make install
(3) Add--with-libxml-dir=/usr/local/libxml2 when compiling into PHP directory
5. Compile again and encounter the problem: checking if the location of ZLIB install directory is defined ... no; Configure:error:Cannot find LIBZ. Workaround:
(1) Go to the URL http://www.zlib.net/download zlib source code. I'm under version zlib-1.2.7.tar.gz, unzip to/USR/SRC, execute command: sudo tar-zxvf zlib-1.2.7.tar.gz-c/usr/src
(2) Enter directory/usr/src/zlib-1.2.7/, execute command: sudo./configure--prefix=/usr/local/zlib;make;make Install
(3) Recompile in PHP directory, add new parameter--with-zlib-dir=/usr/local/zlib
6. Compile again and encounter the problem: Error:please Reinstall the BZIP2 distribution. Workaround:
(1) Go to the website http://www.bzip.org/downloads.html download the source code. The version I'm using is bzip2-1.0.6.tar.gz, execute command: sudo tar-zxvf bzip2-1.0.6.tar.gz-c/usr/src
(2) Enter the directory/usr/src/bzip2-1.0.6/,sudo mode of execution: Make;make Install (under the source code is not configure)
(3) Recompile without adding new parameters
7. Compile again and encounter the problem:
Checking if we should use Curl for URL streams ... no checking for CURL in default path ... not found
Configure:error:Please Reinstall the Libcurl distribution-easy.h should be in <curl-dir>/include/curl/
The solution is to reload the Libcurl
(1) Go to the website http://curl.haxx.se/download/download Libcurl source code. The version I'm using is curl-7.28.0.tar.gz, execute command: sudo tar-zxvf curl-7.28.0.tar.gz-c/usr/src
(2) Enter the/usr/src/curl-7.28.0 directory and execute the command with sudo:./configure--prefix=/usr/local/curl;make;make Install
(3) Recompile PHP, add parameter--with-curl=/usr/local/curl
8. Compile again, encounter the problem: Configure:error:jpeglib.h not found. Workaround:
(1) Go to the website http://www.ijg.org/download the source code. The version I'm using is jpegsrc.v8d.tar.gz, execute command: sudo tar-zxvf jpegsrc.v8d.tar.gz-c/usr/src
(2) Enter the/usr/src/jpegsrc.v8d directory, sudo mode execution command: sudo./configure--prefix=/usr/local/jpeg;make;make Install;
(3) Recompile PHP, add parameter--with-jpeg-dir=/usr/local/jpeg
9. Compile again, encounter the problem: Configure:error:png.h not found.
(1) to the website http://www.libpng.org/pub/png/libpng.html download the source code, I use the version is libpng-1.5.13.tar.gz, executes the command: sudo tar- Zxvflibpng-1.5.13.tar.gz-c/USR/SRC
(2) Enter the/usr/src/libpng-1.5.13 directory, sudo mode execution command: sudo./configure--prefix=/usr/local/png;make;make Install;
(3) At this time Configure:error:zlib not installed error, obviously before has been installed, but here is still an error. On-line search for solutions are as follows:
3.1) Enter the source file directory of zlib (here my is/usr/src/zlib-1.2.7/), execute command make clean, clear zlib;
3.2) reconfigure./configure, do not answer the--prefix parameters;
3.3) make && make install;
3.4) Enter the Libpng directory (mine is/usr/src/libpng-1.5.13/), execute the command./configure--prefix=/usr/local/png;
3.5) make && make install;
(4) Recompile PHP, then add parameter--with-png-dir=/usr/local/png.
10. Compile again, encounter the problem: Configure:error:mcrypt.h not found. Please reinstall Libmcrypt.
(1) to the website http://mcrypt.hellug.gr/lib/index.html download source code, my next version is libmcrypt-2.5.7.tar.gz; Execute command: sudo tar-zxvf Libmcrypt-2.5.7.tar.gz-c/USR/SRC
(2) Enter the/usr/src/libmcrypt-2.5.7 directory, sudo way to execute the command:./configure prefix=/usr/local/libmcrypt/;make; make install
(3) Recompile PHP, add parameter--with-mcrypt=/usr/local/libmcrypt
11. Compile again, there is no problem, although the configure:WARNING:unrecognized options:--enable-freetype, but the result is still thank you to using PHP. The parameters for compiling PHP at this time are as follows:
(1) sudo./configure--prefix=/usr/local/php--enable-fpm--with-zlib--enable-mbstring--with-openssl--with-mysql-- With-mysqli--with-mysql-sock--with-gd--enable-gd-native-ttf--enable-pdo--with-pdo-mysql--with-gettext-- With-curl--with-pdo-mysql--enable-sockets--enable-bcmath--enable-xml--with-bz2--enable-zip--enable-freetype-- WITH-LIBXML-DIR=/USR/LOCAL/LIBXML2--with-zlib-dir=/usr/local/zlib--with-curl=/usr/local/curl--with-jpeg-dir=/ Usr/local/jpeg--with-png-dir=/usr/local/png--with-mcrypt=/usr/local/libmcrypt--with-apxs2=/usr/local/apache2/ Bin/apxs
(Note: Be sure to add this Apxs-apache eXtenSion tool used to make Apache expansion module DSO, to use this tool, when installing Apache must add enable-so to support DSO. If this is not the case, Apache will only parse the static page, the first time the compilation did not add, how to configure it, the second time added the option to recompile after the OK. )
(2) sudo make
(3) sudo make install
12. In order to be able to use PHP command directly at the command line, edit sudo vim/etc/environment, add php Bin directory path, mine is/usr/local/php/bin, then reboot machine
13. To enable Apache to support PHP, the workaround:
(1) Enter the Apache configuration directory and execute the command: cd/usr/local/apache2/conf. Edit file: sudo vim httpd.conf
(2) Find the string AddType and add
AddType application/x-httpd-php. php. php3. htm. phtml. php4
AddType Application/x-httpd-php-source. Phps
Add LoadModule php5_module modules/libphp5.so #如果存在就不必要了
Then restart Apache for the configuration to take effect
(3) Find the string directoryindex and modify it to DirectoryIndex index.html index.php3 index.php default.php
14. Modify the PHP configuration.
(1) Enter the PHP source directory, select Php.ini-development Copy to/usr/local/lib, and renamed PHP.ini use Vim to open, find Extension_dir, modified to Extension_dir = "d:/ Php/php5/ext ", the reader is configured according to its own directory structure to locate and php.ini the extension library in the Ext folder under the same directory.
(2) Find Extension=php_, remove Extension=php_curl.dll,extension=php_gd2.dll,extension=php_mbstring.dll,extension=php_ The semicolon in front of the Mysql.dll,extension=php_mysqli.dll,extension=php_pdo_mysql.dll,extension=php_xmlrpc.dll. Look for short_open_tag = off to change it to Short_open_tag = on, so that it supports the short label (I see the note that the default is open).
PHP.ini Configuration Complete
Configure the Apache Config
15. Find the string documentroot, you can set the Apache virtual root directory
16. Find the string serveradmin and modify it to your own mailbox
17. Add a test.php file to the Apache root file, <?php phpinfo ();., and then visit 127.0.0.1/test.php to view the results.
Compiled version of your own
./configure
--profix=/user/local/php
--with-apxs2=/usr/local/apache/bin/apxs
--with-config-file-path=/usr/local/php/etc
--with-mysql=/usr/local/mysql
--with-mysqli=/usr/local/mysql/bin/mysql_config
--with-libxml-dir= #libxml目录
--with-zlib-dir= #zlib目录
--enable-sysvsem
--enable-sockets
--enable-pcntl
--enable-mbstring
--enable-mysqlnd
--enable-opcache
--enable-shmop
--enable-zip
--enable-ftp
--enable-gd-native-ttf
--enable-wddx
--enable-soap
--enable-fpm
Appendix: The compilation parameters of the PHP versions for the Web are as follows.
FAST-CGI:
./configure--prefix=/usr/local/php--enable-fastcgi--enable-force-cgi-redirect--with-config-file-path=/etc-- With-zlib--with-mysql--with-xml--with-gd--enable-gd-native-ttf--enable-gd-jis-conv--with-freetype-dir-- With-jpeg-dir--with-png-dir--enable-mbstring
Php4-server:
./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache2/bin/apxs--with-mysql--with-config-file-path= /etc--with-gd--enable-gd-native-ttf--enable-gd-jis-conv--with-freetype-dir--with-jpeg-dir--with-png-dir-- With-zlib--enable-xml--enable-mbstring
Php4-max:
./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache/bin/apxs--mandir=/usr/share/man--with-mysql=/ Usr/local/mysql--with-config-file-path=/usr/local/php/etc--with-openssl=/usr/local/openssl-0.9.7e--WITH-GD-- Enable-gd-native-ttf--enable-gd-jis-conv--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-bz2- -with-inifile--with-hyperwave--enable-xml--enable-track-vars--enable-dba--enable-dbase--enable-filepro-- Enable-ftp--enable-versioning--enable-memory-limit--enable-calendar--enable-session--enable-sockets-- Enable-sysmsg--enable-sysvsem--enable-sysvshm--enable-tokenizer--enable-overload--enable-ctype-- Enable-sigchild--enable-magic-quotes--enable-roxen-zts--enable-fastcgi--enable-dbx--enable-dio--enable-shmop-- Enable-mbstring
Php5-server:
./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache2/bin/apxs--with-zlib-dir--with-bz2-- With-tiff-dir--with-libxml-dir--with-gd--with-freetype-dir--with-jpeg-dir--with-png-dir--with-ttf-- Enable-mbstring--with-mysql=/usr/lib/mysql--with-config-file-path=/etc--disable-ipv6--enable-gd-native-ttf
Php5-standard:
./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache/bin/apxs--mandir=/usr/share/man--with-openssl =/usr/local/openssl-0.9.7e--with-zlib--with-bz2--with-tiff-dir--with-libxml-dir--enable-dio--enable-ftp-- WITH-GD--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib-dir--with-bz2-dir--with-ttf-- Enable-mbstring--with-mysql=/usr/local/mysql--with-config-file-path=/usr/local/php/etc--disable-ipv6-- Enable-gd-native-ttf
Php5-max:
./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache/bin/apxs--mandir=/usr/share/man--with-openssl =/usr/local/openssl-0.9.7e--with-zlib--with-bz2--with-tiff-dir--with-libxml-dir--enable-dio--enable-ftp-- WITH-GD--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib-dir--with-bz2-dir--with-ttf--with-inifile-- ENABLE-DBA--enable-dbase--enable-filepro--enable-versioning--enable-memory-limit--enable-calendar-- Enable-sockets--enable-sysvsem--enable-sigchild--enable-magic-quotes--enable-roxen-zts--enable-fastcgi-- Enable-dbx--enable-shmop--enable-mbstring--with-mysql=/usr/local/mysql--with-config-file-path=/usr/local/php/ etc--disable-ipv6--enable-gd-native-ttf
Build and install PHP under CentOS