Linux编译安装PHP7

安装PHP

1、去PHP官网http://php.net/找到对应的版本



http://hk1.php.net/get/php-7.2.3.tar.gz/from/this/mirror

2、执行命令下载(php-7.2.3.tar.gz? 中的? .tar.gz是打包并且压缩)

wget http://hk1.php.net/get/php-7.2.3.tar.gz/from/this/mirror

3、解压

tar -zxvf mirror

4、安装依赖包

第一步:

yum 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?gcc gcc-c++?autoconf?bison -y

第二步:

#创建local.conf

vi /etc/ld.so.conf.d/local.conf?

#添加输入

/usr/local/lib

#添加搜索路径到配置文件

echo '/usr/local/lib64 /usr/local/lib /usr/lib /usr/lib64'>>/etc/ld.so.conf

#然后 更新配置

ldconfig -v

第三步:

# 查看 yum 安装的 libzip 版本

yum list installed | grep libzip

#先删除旧版本

yum remove -y libzip

#下载编译安装(1.2版本)

wget https://nih.at/libzip/libzip-1.2.0.tar.gz

tar -zxvf libzip-1.2.0.tar.gz

cd libzip-1.2.0

./configure

make && make install

#还可以去官网https://libzip.org/download/ 下载编译安装1.5版本

1、安装cmake3

yum remove cmake -y

yum install -y cmake3

sudo ln -sf /usr/bin/cmake3 /usr/bin/cmake

2、安装libzip-1.5.2

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

5、安装 FastCGI 进程管理器(FPM)


进入PHP目录

cd php-7.2.3/

编译(将PHP编译安装到 /usr/local/php目录下,带上上图的配置选项)(一下三种编译方式,推荐第一种)

./configure --prefix=/usr/local/php \--with-config-file-path=/usr/local/php/etc \--with-config-file-scan-dir=/usr/local/php/etc/php.d \--enable-mysqlnd \--with-mysqli \--with-pdo-mysql \--enable-fpm \--with-fpm-user=nginx \--with-fpm-group=nginx \--with-gd \--with-iconv \--with-zlib \--enable-xml \--enable-shmop \--enable-sysvsem \--enable-inline-optimization \--enable-mbregex \--enable-mbstring \--enable-ftp \--enable-gd-native-ttf \--with-openssl \--enable-pcntl \--enable-sockets \--with-xmlrpc \--enable-zip \--enable-soap \--without-pear \--with-gettext \--enable-session \--with-curl \--with-jpeg-dir \--with-freetype-dir \--enable-opcache

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-soap --with-libxml-dir --with-xmlrpc --with-openssl --with-mcrypt --with-mhash --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear --enable-opcache

'./configure' '--prefix=/usr/local/php''--with-config-file-path=/usr/local/php/etc' '--with-config-file-scan-dir=/usr/local/php/etc/' '--enable-inline-optimization' '--enable-opcache' '--enable-session' '--enable-fpm' '--with-fpm-user=nobody' '--with-fpm-group=nobody' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-pdo-sqlite' '--with-sqlite3' '--with-gettext' '--enable-mbregex' '--enable-mbstring' '--enable-xml' '--with-iconv' '--with-mhash' '--with-openssl' '--enable-bcmath' '--enable-soap' '--with-xmlrpc' '--with-libxml-dir' '--enable-pcntl' '--enable-shmop' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--enable-sockets' '--with-curl' '--with-zlib' '--enable-zip' '--with-bz2' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir' '--with-iconv-dir' '--with-readline' '--with-pear'

在php-7.2.3中执行make

make完成后执行make install

错误:

若内存较小,比如1G,可手动设置虚拟内存

编译安装时出现下面的错误:

virtual memory exhausted: Cannot allocate memory

问题原因:由于物理内存本身很小,且阿里云服务器并没有分配swap空间,当物理内存不够用时,

? ? ? ? ? ? ? 物理内存中暂时不用的内容没地方转存。

解决方法:手动分配一个swap空间

dd if=/dev/zero of=/swap bs=1024 count=1M ? ?#创建一个大小为1G的文件/swap

mkswap /swap? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#将/swap作为swap空间

swapon /swap? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #enable /swap file ?for paging and swapping

echo "/swap swap swap sw 0 0" >> /etc/fstab ? ?#Enable swap on boot, 开机后自动生效

6.编译安装完后进行参数配置

????vim /etc/profile

方法一:

将 pathmunge?/usr/local/php/bin? ?加入到对应位置


要使改动立即生效执行

????. /etc/profile 或 source /etc/profile

方法二:

????在末尾加入

????PATH=$PATH:/usr/local/php/bin

????export PATH

????要使改动立即生效执行

????. /etc/profile 或 source /etc/profile

????查看环境变量

????echo $PATH

可以在随便一个目录执行 php -v? 来查看全局是否配置好


代表配置完成

7.配置php-fpm

????cd /usr/local/php/etc

????cp php-fpm.conf.default php-fpm.conf

? ??cd /usr/local/php/etc/php-fpm.d

? ? cp?www.conf.default?www.conf

? ? 配置启动php-fpm

????cd ~

? ? cd?php-7.2.3

? ? cp?php-7.2.3/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

? ? chmod -R +x?/etc/init.d/php-fpm

? ? 操作

????/etc/init.d/php-fpm start

? ??/etc/init.d/php-fpm restart

? ??/etc/init.d/php-fpm stop

8.配置php.ini

查看php启动是否加载php.ini

php -i | grep Configuration


执行

cd ~

cd?php-7.2.4

cp php.ini-development /usr/local/php/etc/php.ini

再次查看

查看php启动是否加载php.ini

php -i | grep Configuration


最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容