安装PHP5

xiaoxiao2021-02-28  54

安装PHP5

下载PHP5.6的压缩包(下载到/usr/local/src/)

[root@shuai-01 src]# wget http://cn2.php.net/distributions/php-5.6.30.tar.bz2

解压缩:

[root@shuai-01 src]# tar -jxvf php-5.6.30.tar.bz2

编译PHP5:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

–prefix=/usr/local/php 指定安装目录 –with-apxs2=/usr/local/apache2.4/bin/apxs apache的工具,作用:不用人工去写,自动的把扩展模块放到Apache的modules下,并且在配置文件写东西,自动配置上 –with-config-file-path=/usr/local/php/etc 指定配置文件(php.ini)所在路径 –with-mysql=/usr/local/mysql –with-pdo-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config 三种不同MySQL的驱动或者库(PHP5 用–with-mysql PHP7 用 –with-mysqli )

在编译的过程中,可能会出现很多错误,错误主要是没安装一些库,少啥装啥

当看到这个时,说明编译已经完成

+--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ 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@shuai-01 php-5.6.30]# echo $? 0

接着就是make

[root@shuai-01 php-5.6.30]# make [root@shuai-01 php-5.6.30]# echo $? 0

再接着就是make install

[root@shuai-01 php-5.6.30]# make install

把配置文件拷贝到自己编译时定义的配置文件路径中

查看PHP的配置信息,编译参数,配置文件的环境,配置文件路径。

/usr/local/php/bin/php -i phpinfo() PHP Version => 5.6.30 System => Linux shuai-01 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 Build Date => Dec 18 2017 19:28:42 Configure Command => './configure' '--prefix=/usr/local/php' '--with-apxs2=/usr/local/apache2.4/bin/apxs' '--with-config-file-path=/usr/local/php/etc' '--with-mysql=/usr/local/mysql' '--with-pdo-mysql=/usr/local/mysql' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-libxml-dir' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir' '--with-iconv-dir' '--with-zlib-dir' '--with-bz2' '--with-openssl' '--with-mcrypt' '--enable-soap' '--enable-gd-native-ttf' '--enable-mbstring' '--enable-sockets' '--enable-exif' Server API => Command Line Interface Virtual Directory Support => enabled Configuration File (php.ini) Path => /usr/local/php/etc

Loaded Configuration File => (none)

Scan this dir for additional .ini files => (none) Additional .ini files parsed => (none) PHP API => 20131106

拷贝php.ini到指定的路径(/usr/local/php/etc):

[root@shuai-01 php-5.6.30]# cp php.ini-production /usr/local/php/etc/php.ini

接着在查看PHP配置信息:

phpinfo() PHP Version => 5.6.30 System => Linux shuai-01 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 Build Date => Dec 18 2017 19:28:42 Configure Command => './configure' '--prefix=/usr/local/php' '--with-apxs2=/usr/local/apache2.4/bin/apxs' '--with-config-file-path=/usr/local/php/etc' '--with-mysql=/usr/local/mysql' '--with-pdo-mysql=/usr/local/mysql' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-libxml-dir' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir' '--with-iconv-dir' '--with-zlib-dir' '--with-bz2' '--with-openssl' '--with-mcrypt' '--enable-soap' '--enable-gd-native-ttf' '--enable-mbstring' '--enable-sockets' '--enable-exif' Server API => Command Line Interface Virtual Directory Support => enabled

Loaded Configuration File => /usr/local/php/etc/php.ini

Scan this dir for additional .ini files => (none) Additional .ini files parsed => (none) PHP API => 20131106

规定的配置文件有两个,php.ini-production(生产环境),php.ini-development(测试或开发环境)

[root@shuai-01 php-5.6.30]# du -sh /usr/local/php/bin/php 36M /usr/local/php/bin/php [root@shuai-01 php-5.6.30]# du -sh /usr/local/apache2.4/modules/libphp5.so 37M /usr/local/apache2.4/modules/libphp5.so

PHP和Apache结合是通过/usr/local/apache2.4/modules/libphp5.so这个文件,也就是说我们安装编译了半天就是为了得到libphp5.so这个模块

查看PHP加载的模块(全部都是静态的):

[root@shuai-01 php-5.6.30]# /usr/local/php/bin/php -m [PHP Modules] bz2 Core ctype date dom ereg exif fileinfo filter gd hash iconv json libxml mbstring mcrypt mysql mysqli openssl pcre PDO pdo_mysql pdo_sqlite Phar posix Reflection session SimpleXML soap sockets SPL sqlite3 standard tokenizer xml xmlreader xmlwriter zlib [Zend Modules]

PHP不需要启动,因为它就是Apache的模块。

[root@shuai-01 php-5.6.30]# /usr/local/apache2.4/bin/httpd -M AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::4f59:7251:18f1:8716. Set the 'ServerName' directive globally to suppress this message Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_event_module (static) authn_file_module (shared) authn_core_module (shared) authz_host_module (shared) authz_groupfile_module (shared) authz_user_module (shared) authz_core_module (shared) access_compat_module (shared) auth_basic_module (shared) reqtimeout_module (shared) filter_module (shared) mime_module (shared) log_config_module (shared) env_module (shared) headers_module (shared) setenvif_module (shared) version_module (shared) unixd_module (shared) status_module (shared) autoindex_module (shared) dir_module (shared) alias_module (shared) php5_module (shared)

出现了php5_module

查看Apache的配置文件(/usr/local/apache2.4/conf/httpd.conf),有一个php5_module

[root@shuai-01 php-5.6.30]# vi /usr/local/apache2.4/conf/httpd.conf #LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so #LoadModule rewrite_module modules/mod_rewrite.so LoadModule php5_module modules/libphp5.so

问题1:

checking for xml2-config path... configure: error: xml2-config not found. Please check your libxml2 installation.

这个是缺少libxml2-devel

[root@shuai-01 php-5.6.30]# yum install -y libxml2-devel

安装完后再编译

问题2:

configure: error: Cannot find OpenSSL's <evp.h>

这个是缺少openssl-devel

[root@shuai-01 php-5.6.30]# yum install -y openssl-devel

问题3 :

configure: error: Please reinstall the BZip2 distribution

少了bzip2-devel

[root@shuai-01 php-5.6.30]# yum install -y bzip2-devel

问题4:

If configure fails try --with-vpx-dir=<DIR> configure: error: jpeglib.h not found.

少了libjpeg-turbo-devel

[root@shuai-01 php-5.6.30]# yum install -y libjpeg-turbo-devel

问题5 :

checking for jpeg_read_header in -ljpeg... yes configure: error: png.h not found.

少了libpng-devel

[root@shuai-01 php-5.6.30]# yum install -y libpng-devel

问题6 :

If configure fails try --with-xpm-dir=<DIR> configure: error: freetype-config not found.

少了freetype-devel

问题6 :

checking for mcrypt support... yes configure: error: mcrypt.h not found. Please reinstall libmcrypt.

少了libmcrypt-devel, 这个包是在epel-release 扩展源里,先安装扩展源

[root@shuai-01 php-5.6.30]# yum install epel-release 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * epel: mirror01.idc.hinet.net 软件包 epel-release-7-11.noarch 已安装并且是最新版本 无须任何处理 [root@shuai-01 php-5.6.30]# yum install -y libmcrypt-devel
转载请注明原文地址: https://www.6miu.com/read-2619095.html

最新回复(0)