上一篇讲了如何在Centos下编译安装nginx服务器,但是Nginx服务器目前只能当做静态服务器使用,也即只能展示前端静态页面,没有动态语言来结合。
本篇文章来讲下如何从源码编译安装php
编译安装是需要很长时间的
更新依赖包:
yum -y update
安装依赖:
yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel libzip gcc-c++
官网下载页面:https://www.php.net/downloads.php
目前官最新版是7.3,我们就安装最新版的吧。
wget -c https://www.php.net/distributions/php-7.3.10.tar.gz
tar -zxvf php-7.3.10.tar.gz
groupadd www
useradd -g www www
首先需要进入解压后的目录
cd php-7.3.10
如图,目录里面还是痛Nginx有一个configure可执行文件,用以配置安装时的参数
那么配置哪些参数?
./configure \
--prefix=/usr/local/php\
--enable-fpm\
--with-fpm-user=www\
--with-fpm-group=www\
--with-config-file-path=/usr/local/php/conf\
--disable-rpath\
--enable-soap\
--with-libxml-dir\
--with-xmlrpc\
--with-openssl\
--with-mhash\
--with-pcre-regex\
--with-zlib\
--enable-bcmath\
--with-bz2\
--enable-calendar\
--with-curl\
--enable-exif\
--with-pcre-dir\
--enable-ftp\
--with-gd\
--with-openssl-dir\
--with-jpeg-dir\
--with-png-dir\
--with-zlib-dir\
--with-freetype-dir\
--enable-gd-jis-conv\
--with-gettext\
--with-gmp\
--with-mhash\
--enable-mbstring\
--with-onig\
--with-mysqli=mysqlnd\
--with-pdo-mysql=mysqlnd\
--with-zlib-dir\
--with-readline\
--enable-shmop\
--enable-sockets\
--enable-sysvmsg\
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx\
--with-libxml-dir\
--with-xsl\
--enable-zip\
--with-pear
如上是我网上找的一个配置参数,而且看了下,感觉挺全。说一些较重要的吧:
--prefix=/usr/local/php 安装目录,如nginx我们安装到了/usr/local/nginx --with-config-file-path=/usr/local/php/etc 配置文件目录,我觉得这样挺好,就在/usr/local/php下面的etc,而不是系统的/etc里面。
题外 由于本次选择了安装7.3最新版,结果出师不利,配置时一直报错:
configure: error: Please reinstall the libzip distribution 解决步骤: A. 先安装最新cmake,这一步的时间不短,可尝试直接进入B。 cd /usr/local/src wget https://github.com/Kitware/CMake/releases/download/v3.14.3/cmake-3.14.3.tar.gz tar -zxvf cmake-3.14.3.tar.gz cd cmake-3.14.3 ./bootstrap make && make install
B. 再编译安装libzip yum remove libzip -y cd /usr/local/src wget https://libzip.org/download/libzip-1.5.2.tar.gz tar -zxvf libzip-1.5.2.tar.gz cd libzip-1.5.2 mkdir build cd build cmake .. make && make install 步骤A编译挺慢的,但是步骤A完成后,B还是挺快的。 C. 继续报错: error: off_t undefined; check your library configuration vi /etc/ld.so.conf #添加如下几行 /usr/local/lib64 /usr/local/lib /usr/lib /usr/lib64 #保存退出 :wq ldconfig -v # 使之生效 错误代码解决,参考的此篇文章:https://blog.csdn.net/ijijni/article/details/89913738
以上错误解决后,再执行下./configure
命令,
然后没报错后,执行以下命令:
make && make install
此步编译又是需要不少的时间的,可以喝一杯咖啡,或者洗澡【如现在的我】 安装完毕
vi /etc/profile
#添加以下内容到最后
PATH=$PATH:/usr/local/php/bin
export PATH
#刷新环境变量
source /etc/profile
mkdir /usr/local/php/conf
cp php.ini-production /usr/local/php/conf/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
执行以上命令是在解压的php源码目录
php -v