Home  >  Article  >  Backend Development  >  Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:12:01877browse

Land mud: php5.6 source code installation and apache integration, php5.6 apache

This article is kindly sponsored by Xiuyi Linfeng and first published in Lundixingtianxia.

Apache supports php through apache’s mod_php5 module, which is different from nginx. nginx can parse PHP through a third-party fastcgi processor. For information about the integration of nginx and PHP, please see "Mud: PHP5.6 source code installation and php-fpm configuration and nginx integration".

If you compile and install php from source code, you need to specify --with-apxs2=/usr/local/apache2/bin/apxs during compilation to tell the compiler to provide parsing of php through apache's mod_php5 module.

At the same time, during the last step of php installation, make install, we will see that the dynamic link library libphp5.so is copied to the modules directory of the apache2 installation directory, and LoadModule also needs to be added to the httpd.conf configuration file. statement to dynamically load the libphp5.so module to realize Apache's support for php.

Integration of php and apache requires the following steps:

1. Install the libiconv library

2. Install php source code

3. Configure apache to make it Support php

4. Test php

1. Install the libiconv library

The libiconv library provides an iconv command for applications that need to be converted. To achieve the conversion of one character encoding to another character encoding, for example, it can convert UTF8 encoding to GB18030 encoding, and vice versa.

Be sure to install the libiconv library when integrating php with apache, otherwise the system will report an error when making. The error message is as follows:

make: *** [sapi/cli/php] Error 1

/usr/bin/ld: cannot find -liconv

collect2: ld returned 1 exit status

make: *** [sapi/cli/php] Error 1

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

Now start the formal installation of the libiconv library, first download the libiconv library , as follows:

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

Unzip libiconv Library, as follows:

tar -xf libiconv-1.14.tar.gz

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

To install the libiconv library, first check the installation help information. As follows:

./configure --help

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

With the help of the above figure, we can see that the default installation path of the libiconv library is /usr/local . Now start installing the libiconv library, as follows:

./configure --prefix=/usr/local

make && make install

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

After the libiconv library is installed, it is recommended to add the /usr/local/lib library to the /etc/ld.so.conf file, and then use /sbin/ldconfig to make it take effect. As follows:

echo "/usr/local/lib">>/etc/ld.so.conf

/sbin/ldconfig

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

If you do not perform this step, execute make install when installing php, the system will report an error. The error message is as follows:

/root/php-5.6.2/sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

2. PHP source code installation

For PHP source code installation, please refer to the article "Mud: php5.6 source code installation and php-fpm configuration and nginx integration", download and compile PHP The command is as follows:

wget http://mirrors.sohu.com/php/php-5.6.2.tar.gz

./configure --enable-fpm --enable-mbstring --with-mysql=/usr/local/mysql --with-iconv-dir=/usr/local --with-apxs2=/usr/local/apache2/bin/apxs

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

Note that the function of --enable-fpm in the above command is to enable the fastcgi function of php, that is, to enable the php-fpm function.

--with-mysql=/usr/local/mysql is to enable PHP to support mysql, and /usr/local/mysql is the installation path of the mysql database.

--enable-mbstring means enabling the mbstring module. The main function of the mbstring module is to detect and convert encodings and provide corresponding string functions for multi-byte operations. Currently, the internal encoding of PHP only supports ISO-8859-*, EUC-JP, and UTF-8. Other encoding languages ​​cannot be displayed correctly on the PHP program, so we need to enable the mbstring module.

--with-iconv-dir=/usr/local specifies the location where php stores the libiconv library.

--with-apxs2=/usr/local/apache2/bin/apxs specifies the location where php searches for apache.

After compilation is completed, let’s make again. When making, we pay attention to adding the -liconv parameter. If the -liconv parameter is not added, the system will report an error during make compilation. The error message is as follows:

Generating phar.php

php-5.3.16/sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

Use the command as follows:

make ZEND_EXTRA_LIBS='-liconv'

We can also modify the Makefile and add -liconv to the ZEND_EXTRA_LIBS line. As follows:

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

vi Makefile

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

make install

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

Through the picture above, we can clearly see that php support is enabled in the apache configuration file httpd, and the libphp5.so file is also copied to the apache module directory.

3. Configure apache to support php

After php is installed, we can modify apache’s configuration file httpd.conf to support php.

We only need to add the following two lines of code to the httpd.conf file:

LoadModule php5_module modules/libphp5.so

AddType application/x-httpd-php .php

Note that the LoadModule php5_module modules/libphp5.so line, when we check the httpd.conf file, we will find that this line already exists. That's because it was added when installing php. Now we just need to add the AddType application/x-httpd-php .php line.

vi /usr/local/apache2/conf/httpd.conf

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

In addition, we also need to modify apache’s default homepage file and add index.php. The content is as follows:

echo "">/usr/local/apache2/htdocs/index.php

cat /usr/local/apache2 /htdocs/index.php

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

4. Test php

After the above modifications are completed, we restart apache and use the following command:

/etc/init.d/httpd graceful

Note that this command can restart gracefully apache.

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

Open the site as follows:

Mud: php5.6 source code installation and apache integration, php5.6apache_PHP tutorial

Through the picture above, we can clearly see that apache already supports php .

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/925547.htmlTechArticleMud: php5.6 source code installation and apache integration, php5.6apache This article is kindly sponsored by Xiuyi Lin Feng and was first published Walking around the world in mud. Apache's support for php is through apache's mod_php5 module...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn