一直以来开发都是使用的集成环境,对于环境的安装没有细致了解,近期细致安装记录下
关于各环境下使用PHP集成开发环境
博主一致以来都是使用的集成 PHP开发环境
从一开始的windows下的phpstudy
到服务器端使用的宝塔面板
以及mac下使用的mdserver
对于个人而言,以上都是在使用过程中相对于其他集成工具比较好用的
现因趋于docker 的使用,为更好的理解并集成合适自己的环境,于是乎现在着重熟悉下环境的搭建
CentOS 编译安装PHP7.3
首先本次使用的CentOS版本为:
CentOS Linux release 7.7.1908 (Core)
编译安装PHP基本步骤
- 下载一个php的安装包,并进行解压缩
- 下载并安装php所需依赖
- 设置编译前配置
- 开始编译与安装
- 配置相关参数文件等
实操
1.下载一个php的安装包,并进行解压缩
在用户目录下新建临时文件夹'php',并进入(本示例目录为/root/php)。用于临时存放安装包
mkdir php && cd php
安装wget下载工具
yum -y install wget
下载php-7.3.12安装包, 更多版本访问->https://www.php.net/downloads.php
wget https://www.php.net/distributions/php-7.3.12.tar.gz
解压缩,并进入解压后的目录
tar zxvf php-7.3.12.tar.gz && cd php-7.3.12
2.下载并安装php所需依赖
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN pcre-devel
3.设置编译前配置
现计划将php7.3安装在 '/usr/local/php73'目录下,指定php的配置目录为'/usr/local/php73/etc'
则简单配置命令为:在解压出的文件夹下执行命令:./configure --prefix=/usr/local/php73 --with-config-file-path=/usr/local/php73/etc
但由于后期开发常常会用到PHP自带的扩展,所以在编译之前也要加载进去,最终的配置命令如下
./configure \
--prefix=/usr/local/php73 \
--exec-prefix=/usr/local/php73 \
--bindir=/usr/local/php73/bin \
--sbindir=/usr/local/php73/sbin \
--includedir=/usr/local/php73/include \
--libdir=/usr/local/php73/lib/php \
--mandir=/usr/local/php73/php/man \
--with-config-file-path=/usr/local/php73/etc \
--with-mysql-sock=/tmp/mysql.sock \
--with-mhash \
--with-openssl \
--with-mysqli=shared,mysqlnd \
--with-pdo-mysql=shared,mysqlnd \
--with-gd \
--with-iconv \
--with-zlib \
--enable-zip \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--without-gdbm \
--enable-fast-install \
--disable-fileinfo
在上一步中解压出的文件夹'php-7.3.12'下,执行上命令 './configure......'
命令执行后发现错误:
Please reinstall the libzip distribution
让重新安装libzip,那就重新安装呗
# wget https://libzip.org/download/libzip-1.5.2.tar.gz
# tar -zxf libzip-1.5.2.tar.gz
# cd libzip-1.5.2
# mkdir build
# cd build
# cmake .. (#注:后面有两个小数点,若没有cmake命令,如下安装cmake)
# make -j4
# make test
# make install
安装cmake
wget https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2.tar.gz
tar -zxvf cmake-3.13.2.tar.gz
cd cmake-3.13.2 && ./bootstrap && make && make install
安装完成cmake即可返回安装libzip
安装完成libzip后即可返回第三步一开始重新运行命令 './configure......',注意运行的目录
完成后如下信息:
4.开始编译与安装
执行如下命令
make && make install
等待安装完成后,即可在目录'/usr/local/php73'中看到安装的文件
5.配置相关参数文件等
5.1添加php配置文件
在之前的压缩包解压出的目录中执行如下,将默认配置文件复制到安装好的配置目录
cp php.ini-production /usr/local/php73/etc/php.ini
编写刚才复制的配置文件'php.ini',修改php扩展目录位置
首先进入'/usr/local/php73/lib/php/extensions'库扩展目录查看其下的具体扩展路径,如图为:'/usr/local/php73/lib/php/extensions/no-debug-non-zts-20180731'
将扩展目录路径写入php.ini配置文件,使用vi命令编辑'vi /usr/local/php73/etc/php.ini'
找到'extension_dir'属性并修改为扩展目录路径,并保存
到此可测试PHP7.3是否安装成功
如下执行安装目录下的php命令文件,查看版本扩展等
5.2 添加php到环境变量
//创建并打开文件php.sh
vi /etc/profile.d/php.sh
export PATH=$PATH:/usr/local/php73/bin/:/usr/local/php73/sbin/
//使用source立即生效刚刚添加的php环境变量
source /etc/profile.d/php.sh
5.3修改服务器所在时区
vi /usr/local/php73/etc/php.ini
//找到并修改:date.timezone = PRC
//PRC就是英文People's Republic of China, 中华人民共和国
安装配置成功后,即可删除第一步新建的临时的文件夹
rm -rf /root/php
编译安装php73完整命令
以下完整命令包含:
- 创建零时目录'~/phpdir'
- 安装wget、cmake、libzip为编译做准备
- 安装gcc 、gcc、-c++、 autoconf等PHP依赖
- 安装php73并配置
- 清理目录'~/phpdir'、缓存
cd ~ && rm -rf ~/phpdir \
&& mkdir -p ~/phpdir/cmake && cd ~/phpdir/cmake \
&& yum -y install wget \
&& yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN pcre-devel \
&& wget -c https://shareb.oss-cn-beijing.aliyuncs.com/mirror/php/o/cmake-3.13.2.tar.gz \
&& tar -zxvf cmake-3.13.2.tar.gz && cd cmake-3.13.2 && ./bootstrap && make && make install \
&& mkdir -p ~/phpdir/libzip && cd ~/phpdir/libzip \
&& wget https://shareb.oss-cn-beijing.aliyuncs.com/mirror/php/o/libzip-1.5.2.tar.gz \
&& tar -zxf libzip-1.5.2.tar.gz && cd libzip-1.5.2 && mkdir build && cd build && cmake .. && make -j4 && make test && make install \
&& cd ~/phpdir \
&& wget -c https://shareb.oss-cn-beijing.aliyuncs.com/mirror/php/php-7.3.12.tar.gz -O php73.tar.gz && mkdir -p ~/phpdir/php73 \
&& tar zxvf php73.tar.gz -C php73 --strip-components=1 \
&& cd ~/phpdir/php73 \
&& echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf \
&& ldconfig -v \
&& ./configure \
--prefix=/usr/local/php73 \
--exec-prefix=/usr/local/php73 \
--bindir=/usr/local/php73/bin \
--sbindir=/usr/local/php73/sbin \
--includedir=/usr/local/php73/include \
--libdir=/usr/local/php73/lib/php \
--mandir=/usr/local/php73/php/man \
--with-config-file-path=/usr/local/php73/etc \
--with-mysql-sock=/tmp/mysql.sock \
--with-mhash \
--with-openssl \
--with-mysqli=shared,mysqlnd \
--with-pdo-mysql=shared,mysqlnd \
--with-gd \
--with-iconv \
--with-zlib \
--enable-zip \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--without-gdbm \
--enable-fast-install \
--disable-fileinfo \
&& make && make install \
&& cp php.ini-production /usr/local/php73/etc/php.ini \
&& sed -i 's#;extension_dir = "./"#extension_dir = "/usr/local/php73/lib/php/extensions/no-debug-non-zts-20180731"#g' /usr/local/php73/etc/php.ini \
&& sed -i 's#;date.timezone =#date.timezone = PRC #g' /usr/local/php73/etc/php.ini \
&& echo export PATH=$PATH:/usr/local/php73/bin/:/usr/local/php73/sbin/ >> /etc/profile.d/php.sh \
&& source /etc/profile.d/php.sh \
&& cd ~ && rm -rf ~/phpdir \
&& yum clean all
结束语
至此,centos编译安装php7.3详解已结束,回顾主要问题是安装过程中部分扩展或命令不存在,按提示解决即可
下一节编译安装PHP扩展
如有错误,请指正
其他
目前评论:0