How to install php 5.5 from source centos 6
Install epel-release repository
[root@cloud ~]# yum install epel-release
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: centos.biz.net.id
* extras: centos.biz.net.id
* updates: centos.biz.net.id
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
--> Running transaction check
---> Package epel-release.noarch 0:6-8 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================
Installing:
epel-release noarch 6-8 extras 14 k
Transaction Summary
======================================================================================================================================
Install 1 Package(s)
Total download size: 14 k
Installed size: 22 k
Is this ok [y/N]: y
Downloading Packages:
epel-release-6-8.noarch.rpm | 14 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : epel-release-6-8.noarch 1/1
Verifying : epel-release-6-8.noarch 1/1
Installed:
epel-release.noarch 0:6-8
Complete!
[root@cloud ~]#
Install some needed library[root@cloud ~]# sudo yum install autoconf libtool re2c bison libxml2-devel bzip2-devel libcurl-devel libpng-devel libicu-devel gcc-c++ libmcrypt-devel libwebp-devel libjpeg-devel openssl-devel -y
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
epel/metalink | 60 kB 00:00
* base: centos.biz.net.id
* epel: del-repos.extreme-ix.org
* extras: centos.biz.net.id
* updates: centos.biz.net.id
base | 3.7 kB 00:00
base/primary_db | 4.7 MB 00:00
epel | 3.2 kB 00:00
epel/primary | 3.2 MB 00:02
epel 12516/12516
extras | 3.4 kB 00:00
extras/primary_db | 26 kB 00:00
mysql-connectors-community | 2.5 kB 00:00
mysql-connectors-community/primary_db | 27 kB 00:00
mysql-tools-community | 2.5 kB 00:00
mysql-tools-community/primary_db | 45 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 1.9 MB 00:00
Package autoconf-2.63-5.1.el6.noarch already installed and latest version
Package libtool-2.2.6-15.5.el6.x86_64 already installed and latest version
Package bison-2.4.1-5.el6.x86_64 already installed and latest version
Package libxml2-devel-2.7.6-21.el6_8.1.x86_64 already installed and latest version
Package bzip2-devel-1.0.5-7.el6_0.x86_64 already installed and latest version
Package 2:libpng-devel-1.2.49-2.el6_7.x86_64 already installed and latest version
Package openssl-devel-1.0.1e-57.el6.x86_64 already installed and latest version
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
--> Running transaction check
---> Package gcc-c++.x86_64 0:4.4.7-18.el6 will be updated
---> Package gcc-c++.x86_64 0:4.4.7-23.el6 will be an update
--> Processing Dependency: libstdc++-devel = 4.4.7-23.el6 for package: gcc-c++-4.4.7-23.el6.x86_64
--> Processing Dependency: libstdc++ = 4.4.7-23.el6 for package: gcc-c++-4.4.7-23.el6.x86_64
--> Processing Dependency: gcc = 4.4.7-23.el6 for package: gcc-c++-4.4.7-23.el6.x86_64
---> Package libcurl-devel.x86_64 0:7.19.7-52.el6 will be updated
---> Package libcurl-devel.x86_64 0:7.19.7-53.el6_9 will be an update
--> Processing Dependency: libcurl = 7.19.7-53.el6_9 for package: libcurl-devel-7.19.7-53.el6_9.x86_64
---> Package libicu-devel.x86_64 0:4.2.1-14.el6 will be installed
---> Package libjpeg-turbo-devel.x86_64 0:1.2.1-3.el6_5 will be installed
---> Package libmcrypt-devel.x86_64 0:2.5.8-9.el6 will be installed
--> Processing Dependency: libmcrypt = 2.5.8-9.el6 for package: libmcrypt-devel-2.5.8-9.el6.x86_64
--> Processing Dependency: libmcrypt.so.4()(64bit) for package: libmcrypt-devel-2.5.8-9.el6.x86_64
---> Package libwebp-devel.x86_64 0:0.4.3-3.el6 will be installed
--> Processing Dependency: libwebp(x86-64) = 0.4.3-3.el6 for package: libwebp-devel-0.4.3-3.el6.x86_64
--> Processing Dependency: libwebpmux.so.1()(64bit) for package: libwebp-devel-0.4.3-3.el6.x86_64
--> Processing Dependency: libwebpdemux.so.1()(64bit) for package: libwebp-devel-0.4.3-3.el6.x86_64
--> Processing Dependency: libwebpdecoder.so.1()(64bit) for package: libwebp-devel-0.4.3-3.el6.x86_64
--> Processing Dependency: libwebp.so.5()(64bit) for package: libwebp-devel-0.4.3-3.el6.x86_64
---> Package re2c.x86_64 0:0.13.5-1.el6 will be installed
--> Running transaction check
---> Package gcc.x86_64 0:4.4.7-18.el6 will be updated
--> Processing Dependency: gcc = 4.4.7-18.el6 for package: gcc-gfortran-4.4.7-18.el6.x86_64
---> Package gcc.x86_64 0:4.4.7-23.el6 will be an update
--> Processing Dependency: libgomp = 4.4.7-23.el6 for package: gcc-4.4.7-23.el6.x86_64
--> Processing Dependency: cpp = 4.4.7-23.el6 for package: gcc-4.4.7-23.el6.x86_64
--> Processing Dependency: libgcc >= 4.4.7-23.el6 for package: gcc-4.4.7-23.el6.x86_64
---> Package libcurl.x86_64 0:7.19.7-52.el6 will be updated
--> Processing Dependency: libcurl = 7.19.7-52.el6 for package: curl-7.19.7-52.el6.x86_64
---> Package libcurl.x86_64 0:7.19.7-53.el6_9 will be an update
---> Package libmcrypt.x86_64 0:2.5.8-9.el6 will be installed
---> Package libstdc++.x86_64 0:4.4.7-18.el6 will be updated
---> Package libstdc++.x86_64 0:4.4.7-23.el6 will be an update
---> Package libstdc++-devel.x86_64 0:4.4.7-18.el6 will be updated
---> Package libstdc++-devel.x86_64 0:4.4.7-23.el6 will be an update
---> Package libwebp.x86_64 0:0.4.3-3.el6 will be installed
--> Running transaction check
---> Package cpp.x86_64 0:4.4.7-18.el6 will be updated
---> Package cpp.x86_64 0:4.4.7-23.el6 will be an update
---> Package curl.x86_64 0:7.19.7-52.el6 will be updated
---> Package curl.x86_64 0:7.19.7-53.el6_9 will be an update
---> Package gcc-gfortran.x86_64 0:4.4.7-18.el6 will be updated
---> Package gcc-gfortran.x86_64 0:4.4.7-23.el6 will be an update
--> Processing Dependency: libgfortran = 4.4.7-23.el6 for package: gcc-gfortran-4.4.7-23.el6.x86_64
---> Package libgcc.x86_64 0:4.4.7-18.el6 will be updated
---> Package libgcc.x86_64 0:4.4.7-23.el6 will be an update
---> Package libgomp.x86_64 0:4.4.7-18.el6 will be updated
---> Package libgomp.x86_64 0:4.4.7-23.el6 will be an update
--> Running transaction check
---> Package libgfortran.x86_64 0:4.4.7-18.el6 will be updated
---> Package libgfortran.x86_64 0:4.4.7-23.el6 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================
Installing:
libicu-devel x86_64 4.2.1-14.el6 base 617 k
libjpeg-turbo-devel x86_64 1.2.1-3.el6_5 base 96 k
libmcrypt-devel x86_64 2.5.8-9.el6 epel 12 k
libwebp-devel x86_64 0.4.3-3.el6 epel 28 k
re2c x86_64 0.13.5-1.el6 epel 200 k
Updating:
gcc-c++ x86_64 4.4.7-23.el6 base 4.7 M
libcurl-devel x86_64 7.19.7-53.el6_9 base 247 k
Installing for dependencies:
libmcrypt x86_64 2.5.8-9.el6 epel 96 k
libwebp x86_64 0.4.3-3.el6 epel 210 k
Updating for dependencies:
cpp x86_64 4.4.7-23.el6 base 3.7 M
curl x86_64 7.19.7-53.el6_9 base 197 k
gcc x86_64 4.4.7-23.el6 base 10 M
gcc-gfortran x86_64 4.4.7-23.el6 base 4.7 M
libcurl x86_64 7.19.7-53.el6_9 base 169 k
libgcc x86_64 4.4.7-23.el6 base 104 k
libgfortran x86_64 4.4.7-23.el6 base 268 k
libgomp x86_64 4.4.7-23.el6 base 135 k
libstdc++ x86_64 4.4.7-23.el6 base 296 k
libstdc++-devel x86_64 4.4.7-23.el6 base 1.6 M
Transaction Summary
======================================================================================================================================
Install 7 Package(s)
Upgrade 12 Package(s)
Total download size: 28 M
Downloading Packages:
(1/19): cpp-4.4.7-23.el6.x86_64.rpm | 3.7 MB 00:00
(2/19): curl-7.19.7-53.el6_9.x86_64.rpm | 197 kB 00:00
(3/19): gcc-4.4.7-23.el6.x86_64.rpm | 10 MB 00:00
(4/19): gcc-c++-4.4.7-23.el6.x86_64.rpm | 4.7 MB 00:00
(5/19): gcc-gfortran-4.4.7-23.el6.x86_64.rpm | 4.7 MB 00:00
(6/19): libcurl-7.19.7-53.el6_9.x86_64.rpm | 169 kB 00:00
(7/19): libcurl-devel-7.19.7-53.el6_9.x86_64.rpm | 247 kB 00:00
(8/19): libgcc-4.4.7-23.el6.x86_64.rpm | 104 kB 00:00
(9/19): libgfortran-4.4.7-23.el6.x86_64.rpm | 268 kB 00:00
(10/19): libgomp-4.4.7-23.el6.x86_64.rpm | 135 kB 00:00
(11/19): libicu-devel-4.2.1-14.el6.x86_64.rpm | 617 kB 00:00
(12/19): libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64.rpm | 96 kB 00:00
(13/19): libmcrypt-2.5.8-9.el6.x86_64.rpm | 96 kB 00:00
(14/19): libmcrypt-devel-2.5.8-9.el6.x86_64.rpm | 12 kB 00:00
(15/19): libstdc++-4.4.7-23.el6.x86_64.rpm | 296 kB 00:00
(16/19): libstdc++-devel-4.4.7-23.el6.x86_64.rpm | 1.6 MB 00:00
(17/19): libwebp-0.4.3-3.el6.x86_64.rpm | 210 kB 00:00
(18/19): libwebp-devel-0.4.3-3.el6.x86_64.rpm | 28 kB 00:00
(19/19): re2c-0.13.5-1.el6.x86_64.rpm | 200 kB 00:00
--------------------------------------------------------------------------------------------------------------------------------------
Total 2.0 MB/s | 28 MB 00:13
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
Userid : EPEL (6) <[email protected]>
Package: epel-release-6-8.noarch (@extras)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : libgcc-4.4.7-23.el6.x86_64 1/31
Updating : libstdc++-4.4.7-23.el6.x86_64 2/31
Updating : libcurl-7.19.7-53.el6_9.x86_64 3/31
Updating : libstdc++-devel-4.4.7-23.el6.x86_64 4/31
Updating : cpp-4.4.7-23.el6.x86_64 5/31
Installing : libwebp-0.4.3-3.el6.x86_64 6/31
Installing : libmcrypt-2.5.8-9.el6.x86_64 7/31
Updating : libgfortran-4.4.7-23.el6.x86_64 8/31
Updating : libgomp-4.4.7-23.el6.x86_64 9/31
Updating : gcc-4.4.7-23.el6.x86_64 10/31
Updating : gcc-c++-4.4.7-23.el6.x86_64 11/31
Updating : gcc-gfortran-4.4.7-23.el6.x86_64 12/31
Installing : libmcrypt-devel-2.5.8-9.el6.x86_64 13/31
Installing : libwebp-devel-0.4.3-3.el6.x86_64 14/31
Updating : curl-7.19.7-53.el6_9.x86_64 15/31
Updating : libcurl-devel-7.19.7-53.el6_9.x86_64 16/31
Installing : re2c-0.13.5-1.el6.x86_64 17/31
Installing : libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64 18/31
Installing : libicu-devel-4.2.1-14.el6.x86_64 19/31
Cleanup : gcc-c++-4.4.7-18.el6.x86_64 20/31
Cleanup : libstdc++-devel-4.4.7-18.el6.x86_64 21/31
Cleanup : libcurl-devel-7.19.7-52.el6.x86_64 22/31
Cleanup : gcc-gfortran-4.4.7-18.el6.x86_64 23/31
Cleanup : gcc-4.4.7-18.el6.x86_64 24/31
Cleanup : libstdc++-4.4.7-18.el6.x86_64 25/31
Cleanup : curl-7.19.7-52.el6.x86_64 26/31
Cleanup : libcurl-7.19.7-52.el6.x86_64 27/31
Cleanup : libgcc-4.4.7-18.el6.x86_64 28/31
Cleanup : cpp-4.4.7-18.el6.x86_64 29/31
Cleanup : libgomp-4.4.7-18.el6.x86_64 30/31
Cleanup : libgfortran-4.4.7-18.el6.x86_64 31/31
Verifying : gcc-4.4.7-23.el6.x86_64 1/31
Verifying : libicu-devel-4.2.1-14.el6.x86_64 2/31
Verifying : libwebp-devel-0.4.3-3.el6.x86_64 3/31
Verifying : re2c-0.13.5-1.el6.x86_64 4/31
Verifying : libstdc++-devel-4.4.7-23.el6.x86_64 5/31
Verifying : libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64 6/31
Verifying : curl-7.19.7-53.el6_9.x86_64 7/31
Verifying : libgomp-4.4.7-23.el6.x86_64 8/31
Verifying : libgfortran-4.4.7-23.el6.x86_64 9/31
Verifying : gcc-c++-4.4.7-23.el6.x86_64 10/31
Verifying : libcurl-devel-7.19.7-53.el6_9.x86_64 11/31
Verifying : gcc-gfortran-4.4.7-23.el6.x86_64 12/31
Verifying : libcurl-7.19.7-53.el6_9.x86_64 13/31
Verifying : libmcrypt-2.5.8-9.el6.x86_64 14/31
Verifying : libwebp-0.4.3-3.el6.x86_64 15/31
Verifying : libmcrypt-devel-2.5.8-9.el6.x86_64 16/31
Verifying : libstdc++-4.4.7-23.el6.x86_64 17/31
Verifying : cpp-4.4.7-23.el6.x86_64 18/31
Verifying : libgcc-4.4.7-23.el6.x86_64 19/31
Verifying : libstdc++-devel-4.4.7-18.el6.x86_64 20/31
Verifying : gcc-c++-4.4.7-18.el6.x86_64 21/31
Verifying : libcurl-7.19.7-52.el6.x86_64 22/31
Verifying : libcurl-devel-7.19.7-52.el6.x86_64 23/31
Verifying : libgfortran-4.4.7-18.el6.x86_64 24/31
Verifying : gcc-4.4.7-18.el6.x86_64 25/31
Verifying : libstdc++-4.4.7-18.el6.x86_64 26/31
Verifying : cpp-4.4.7-18.el6.x86_64 27/31
Verifying : curl-7.19.7-52.el6.x86_64 28/31
Verifying : libgcc-4.4.7-18.el6.x86_64 29/31
Verifying : gcc-gfortran-4.4.7-18.el6.x86_64 30/31
Verifying : libgomp-4.4.7-18.el6.x86_64 31/31
Installed:
libicu-devel.x86_64 0:4.2.1-14.el6 libjpeg-turbo-devel.x86_64 0:1.2.1-3.el6_5 libmcrypt-devel.x86_64 0:2.5.8-9.el6
libwebp-devel.x86_64 0:0.4.3-3.el6 re2c.x86_64 0:0.13.5-1.el6
Dependency Installed:
libmcrypt.x86_64 0:2.5.8-9.el6 libwebp.x86_64 0:0.4.3-3.el6
Updated:
gcc-c++.x86_64 0:4.4.7-23.el6 libcurl-devel.x86_64 0:7.19.7-53.el6_9
Dependency Updated:
cpp.x86_64 0:4.4.7-23.el6 curl.x86_64 0:7.19.7-53.el6_9 gcc.x86_64 0:4.4.7-23.el6
gcc-gfortran.x86_64 0:4.4.7-23.el6 libcurl.x86_64 0:7.19.7-53.el6_9 libgcc.x86_64 0:4.4.7-23.el6
libgfortran.x86_64 0:4.4.7-23.el6 libgomp.x86_64 0:4.4.7-23.el6 libstdc++.x86_64 0:4.4.7-23.el6
libstdc++-devel.x86_64 0:4.4.7-23.el6
Complete!
[root@cloud ~]#
Download php from official website
[root@cloud ~]# wget http://id1.php.net/distributions/php-5.5.17.tar.gz
--2018-10-27 15:33:47-- http://id1.php.net/distributions/php-5.5.17.tar.gz
Connecting to 192.168.71.17:9898... connected.
Proxy request sent, awaiting response... 200 OK
Length: 17120280 (16M) [application/x-gzip]
Saving to: “php-5.5.17.tar.gz”
100%[============================================================================================>] 17,120,280 251K/s in 74s
2018-10-27 15:35:03 (227 KB/s) - “php-5.5.17.tar.gz” saved [17120280/17120280]
[root@cloud ~]#
[root@cloud ~]# ls
anaconda-ks.cfg apr-util-1.6.1.tar.gz httpd-2.4.28.tar.gz install.log mysql80-community-release-el6-1.noarch.rpm
apr-1.6.5.tar.gz db_bak httpd-2.4.36 install.log.syslog php-5.5.17.tar.gz
[root@cloud ~]#
Extract php source
[root@cloud ~]# tar -xzf php-5.5.17.tar.gz
[root@cloud ~]# ls
anaconda-ks.cfg db_bak install.log php-5.5.17
apr-1.6.5.tar.gz httpd-2.4.28.tar.gz install.log.syslog php-5.5.17.tar.gz
apr-util-1.6.1.tar.gz httpd-2.4.36 mysql80-community-release-el6-1.noarch.rpm
[root@cloud ~]#
Change working directory to php extracted folder[root@cloud ~]# cd php-5.5.17
[root@cloud php-5.5.17]# ls
acinclude.m4 genfiles NEWS README.PHP4-TO-PHP5-THIN-CHANGES snapshot
aclocal.m4 header pear README.REDIST.BINS stamp-h.in
build INSTALL php5.spec.in README.RELEASE_PROCESS stub.c
buildconf install-sh php.gif README.SELF-CONTAINED-EXTENSIONS svnclean.bat
buildconf.bat LICENSE php.ini-development README.STREAMS tests
CODING_STANDARDS ltmain.sh php.ini-production README.SUBMITTING_PATCH travis
config.guess main README.EXTENSIONS README.TESTING TSRM
config.sub makedist README.EXT_SKEL README.TESTING2 UPGRADING
configure Makefile.frag README.GIT-RULES README.UNIX-BUILD-SYSTEM UPGRADING.INTERNALS
configure.in Makefile.gcov README.input_filter README.WIN32-BUILD-SYSTEM vcsclean
CREDITS Makefile.global README.MAILINGLIST_RULES run-tests.php win32
ext makerpm README.md sapi Zend
EXTENSIONS missing README.namespaces scripts
footer mkinstalldirs README.NEW-OUTPUT-API server-tests-config.php
generated_lists netware README.PARAMETER_PARSING_API server-tests.php
[root@cloud php-5.5.17]# ./buildconf
You should not run buildconf in a release package.
use buildconf --force to override this check.
[root@cloud php-5.5.17]# ./buildconf --force
Forcing buildconf
Removing configure caches
buildconf: checking installation...
buildconf: autoconf version 2.63 (ok)
[root@cloud php-5.5.17]#
[root@cloud php-5.5.17]#
Execute Configure help to show the configure option and documentation
[root@cloud php-5.5.17]# ./configure --help
`configure' configures this package to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
Configure the php[root@cloud php-5.5.17]# ./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-config-file-scan-dir=/usr/local/php5/etc/conf.d --with-apxs2=/usr/local/apache2/bin/apxs --enable-sysvshm --enable-sysvsem --enable-sysvmsg --enable-shmop --disable-short-tags --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-cgi
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking how to run the C preprocessor... cc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
..
..
Thank you for using PHP.
config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
[root@cloud php-5.5.17]#
[root@cloud php-5.5.17]# make
/bin/sh /root/php-5.5.17/libtool --silent --preserve-dup-deps --mode=compile cc -Iext/date/lib -Iext/date/ -I/root/php-5.5.17/ext/date/ -DPHP_ATOM_INC -I/root/php-5.5.17/include -I/root/php-5.5.17/main -I/root/php-5.5.17 -I/root/php-5.5.17/ext/date/lib -I/root/php-5.5.17/ext/ereg/regex -I/usr/include/libxml2 -I/usr/include/freetype2 -I/root/php-5.5.17/ext/mbstring/oniguruma -I/root/php-5.5.17/ext/mbstring/libmbfl -I/root/php-5.5.17/ext/mbstring/libmbfl/mbfl -I/root/php-5.5.17/ext/sqlite3/libsqlite -I/root/php-5.5.17/TSRM -I/root/php-5.5.17/Zend -I/usr/include -g -O2 -fvisibility=hidden -c /root/php-5.5.17/ext/date/php_date.c -o ext/date/php_date.lo
/bin/sh /root/php-5.5.17/libtool --silent --preserve-dup-deps --mode=compile cc -Iext/date/lib -Iext/date/ -I/root/php-5.5.17/ext/date/ -DPHP_ATOM_INC -I/root/php-5.5.17/include -I/root/php-5.5.17/main -I/root/php-5.5.17 -I/root/php-5.5.17/ext/date/lib -I/root/php-5.5.17/ext/ereg/regex -I/usr/include/libxml2 -I/usr/include/freetype2 -I/root/php-5.5.17/ext/mbstring/oniguruma -I/root/php-5.5.17/ext/mbstring/libmbfl -I/root/php-5.5.17/ext/mbstring/libmbfl/mbfl -I/root/php-5.5.17/ext/sqlite3/libsqlite -I/root/php-5.5.17/TSRM -I/root/php-5.5.17/Zend -I/usr/include -g -O2 -fvisibility=hidden -c /root/php-5.5.17/ext/date/lib/astro.c -o ext/date/lib/astro.lo
/bin/sh /root/php-5.5.17/libtool --silent --preserve-dup-deps --mode=compile cc -Iext/date/lib -Iext/date/ -I/root/php-5.5.17/ext/date/ -DPHP_ATOM_INC -I/root/php-5.5.17/include -I/root/php-5.5.17/main -I/root/php-5.5.17 -I/root/php-5.5.17/ext/date/lib -I/root/php-5.5.17/ext/ereg/regex -I/usr/include/libxml2 -I/usr/include/freetype2 -I/root/php-5.5.17/ext/mbstring/oniguruma -I/root/php-5.5.17/ext/mbstring/libmbfl -I/root/php-5.5.17/ext/mbstring/libmbfl/mbfl -I/root/php-5.5.17/ext/sqlite3/libsqlite -I/root/php-5.5.17/TSRM -I/root/php-5.5.17/Zend -I/usr/include -g -O2 -fvisibility=hidden -c /root/php-5.5.17/ext/date/lib/dow.c -o ext/date/lib/dow.lo
/bin/sh /root/php-5.5.17/libtool --silent --preserve-dup-deps --mode=compile cc -Iext/date/lib -Iext/date/ -I/root/php-5.5.17/ext/date/ -DPHP_ATOM_INC -I/root/php-5.5.17/include -I/root/php-5.5.17/main -I/root/php-5.5.17 -I/root/php-5.5.17/ext/date/lib -I/root/php-5.5.17/ext/ereg/regex -I/usr/include/libxml2 -I/usr/include/freetype2 -I/root/php-5.5.17/ext/mbstring/oniguruma -I/root/php-5.5.17/ext/mbstring/libmbfl -I/root/php-5.5.17/ext/mbstring/libmbfl/mbfl -I/root/php-5.5.17/ext/sqlite3/libsqlite -I/root/php-5.5.17/TSRM -I/root/php-5.5.17/Zend -I/usr/include -g -O2 -fvisibility=hidden -c /root/php-5.5.17/ext/date/lib/parse_date.c -o ext/date/lib/parse_date.lo
..
..
gc.lo Zend/zend_closures.lo Zend/zend_float.lo Zend/zend_string.lo Zend/zend_signal.lo Zend/zend_generators.lo Zend/zend_objects.lo Zend/zend_object_handlers.lo Zend/zend_objects_API.lo Zend/zend_default_classes.lo Zend/zend_execute.lo main/internal_functions_cli.lo sapi/cgi/cgi_main.lo sapi/cgi/fastcgi.lo -lcrypt -lz -lexslt -lcrypt -lrt -lmcrypt -lpng -lz -ljpeg -lcurl -lbz2 -lz -lrt -lm -ldl -lnsl -lxml2 -lz -lm -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lssl -lcrypto -lcurl -lxml2 -lz -lm -lssl -lcrypto -lfreetype -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxslt -lxml2 -lz -lm -lssl -lcrypto -lcrypt -o sapi/cgi/php-cgi
Generating phar.php
Generating phar.phar
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
pharcommand.inc
clicommand.inc
directorygraphiterator.inc
directorytreeiterator.inc
invertedregexiterator.inc
phar.inc
Build complete.
Don't forget to run 'make test'.
[root@cloud php-5.5.17]#
Make install the php
[root@cloud php-5.5.17]# make install
Installing PHP SAPI module: apache2handler
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' libphp5.la /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install install libphp5.la /usr/local/apache2/modules/
libtool: install: install .libs/libphp5.so /usr/local/apache2/modules/libphp5.so
libtool: install: install .libs/libphp5.lai /usr/local/apache2/modules/libphp5.la
libtool: install: warning: remember to run `libtool --finish /root/php-5.5.17/libs'
chmod 755 /usr/local/apache2/modules/libphp5.so
[activating module `php5' in /usr/local/apache2/conf/httpd.conf]
Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20121212/
Installing PHP CLI binary: /usr/local/php5/bin/
Installing PHP CLI man page: /usr/local/php5/php/man/man1/
Installing PHP CGI binary: /usr/local/php5/bin/
Installing PHP CGI man page: /usr/local/php5/php/man/man1/
Installing build environment: /usr/local/php5/lib/php/build/
Installing header files: /usr/local/php5/include/php/
Installing helper programs: /usr/local/php5/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php5/php/man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment: /usr/local/php5/lib/php/
[PEAR] Archive_Tar - installed: 1.3.12
[PEAR] Console_Getopt - installed: 1.3.1
[PEAR] Structures_Graph - installed: 1.0.4
[PEAR] XML_Util - installed: 1.2.3
[PEAR] PEAR - installed: 1.9.5
Wrote PEAR system config file at: /usr/local/php5/etc/pear.conf
You may want to add: /usr/local/php5/lib/php to your php.ini include_path
/root/php-5.5.17/build/shtool install -c ext/phar/phar.phar /usr/local/php5/bin
ln -s -f /usr/local/php5/bin/phar.phar /usr/local/php5/bin/phar
Installing PDO headers: /usr/local/php5/include/php/ext/pdo/
[root@cloud php-5.5.17]#
PHP Configuration
Find php ini configuration path and configuration folder
[root@cloud php-5.5.17]# php -i | grep "Configuration File"
Configuration File (php.ini) Path => /usr/local/php5/etc
Loaded Configuration File => (none)
[root@cloud php-5.5.17]# php -i | grep "Scan this"
Scan this dir for additional .ini files => /usr/local/php5/etc/conf.d
[root@cloud php-5.5.17]#
[root@cloud php-5.5.17]# cp php.ini-production /usr/local/php5/etc/php.ini
[root@cloud php-5.5.17]# ln -s /usr/local/php5/etc/php.ini /etc
php.ini and OPCache configuration
Second thing is php.ini file. After installation php.ini file should located in /usr/local/php/lib. This is only the location. After compiling from source You won't anything there so we need to copy it from uncompressed sources.
[root@cloud php-5.5.17]# cd /usr/local/php5/
[root@cloud php5]# ls
bin etc include lib php sbin var
[root@cloud php5]# cd etc/
[root@cloud etc]# ls
pear.conf php-fpm.conf.default
[root@cloud etc]# mkdir conf.d
[root@cloud etc]# ls
conf.d pear.conf php-fpm.conf.default
[root@cloud etc]# cp ~/php-5.5.17/php.ini-development php.ini
[root@cloud etc]# ls
conf.d pear.conf php-fpm.conf.default php.ini
[root@cloud etc]#
This is pretty large file with lot of configuration settings. Fortunately we only need to change some of the options:
short_open_tag = On
open_basedir = /var/www
disable_functions = exec,passthru,shell_exec,system,proc_open,popen
expose_php = Off
max_execution_time = 30
memory_limit = 64M
date.timezone = Europe/Warsaw
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
post_max_size = 5M
upload_max_filesize = 4M
opcache.enable=1
opcache.memory_consumption=64
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=7000
opcache.validate_timestamps=0 ;set this to 1 on production server
opcache.fast_shutdown=1
So we set few things here, enable <? tag, limit access to files from PHP level, disabled dangerous functions, adjusts timezone, security, max execution times, errors etc. In addition we have enable OPCache for PHP.
Each one of these options are well commented inside php.ini file. If You don't like the settings here or You need something else, feel free to change it for Your purposes.
Setup Add PHP to $PATH
We can do one more thing to make our life easier:) Add PHP executable to PATH, so we'll be able to call php command from every directory.
[root@cloud php-5.5.17]# php -v
-bash: php: command not found
[root@cloud php-5.5.17]#
[root@cloud php-5.5.17]# echo 'pathmunge /usr/local/php5/bin' > /etc/profile.d/php5.sh
[root@cloud php-5.5.17]# exit
logout
Execute such command, log out, log in and You'll be able to execute:
[root@cloud php-5.5.17]# php -v
-bash: php: command not found
[root@cloud php-5.5.17]#
[root@cloud php-5.5.17]# echo 'pathmunge /usr/local/php5/bin' > /etc/profile.d/php5.sh
[root@cloud php-5.5.17]# exit
logout
Connection to 192.168.71.25 closed.
[ecpa@SSH-SERVER ~]$ ssh [email protected]
[email protected]'s password:
Last login: Sat Oct 27 15:30:35 2018 from 192.168.74.28
[root@cloud ~]# php -v
PHP 5.5.17 (cli) (built: Oct 27 2018 15:53:37)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
[root@cloud ~]#
Check php modules
[root@cloud php-5.5.17]# php -m [PHP Modules] bcmath bz2 calendar Core ctype curl date dom ereg exif fileinfo filter ftp gd gettext hash iconv json libxml mbstring mcrypt mhash mysql mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar posix Reflection session shmop SimpleXML soap sockets SPL sqlite3 standard sysvmsg sysvsem sysvshm tokenizer xml xmlreader xmlrpc xmlwriter xsl zip zlib [Zend Modules] [root@cloud php-5.5.17]#
Tidak ada komentar :
Posting Komentar