扫码关注官方订阅号
php学习终归还是要学习底层的,但是我c相关的早就忘光了,求助如何编译官方php7,http://php.net/downloads.php#...
业精于勤,荒于嬉;行成于思,毁于随。
wget http://cn2.php.net/get/php-7.0.9.tar.bz2/from/this/mirror tar xvf mirror cd php-7.0.9/ sudo apt-get update sudo apt-get install libkrb5-dev \ libc-client2007e \ libc-client2007e-dev \ libcurl4-openssl-dev \ libbz2-dev \ libjpeg-dev \ libmcrypt-dev \ libxslt1-dev \ libxslt1.1 \ libpq-dev \ libpng12-dev \ libfreetype6-dev \ build-essential \ git \ make
如果下面的./configure爆出缺什么的错误,就在上面命令中加一条 lib<缺的东西名字>-dev(el)
./configure \ --prefix=/opt/php-7.0.9 \ --with-config-file-path=/opt/php-7.0.9/etc \ --with-zlib-dir \ --with-freetype-dir \ --enable-mbstring \ --with-libxml-dir=/usr \ --enable-soap \ --enable-calendar \ --with-curl \ --with-mcrypt \ --with-zlib \ --with-gd \ --disable-rpath \ --enable-inline-optimization \ --with-bz2 \ --with-zlib \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-pcntl \ --enable-mbregex \ --enable-exif \ --enable-bcmath \ --with-mhash \ --enable-zip \ --with-pcre-regex \ --with-pdo-mysql \ --with-mysqli \ --with-mysql-sock=/var/run/mysqld/mysqld.sock \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --enable-gd-native-ttf \ --with-openssl \ --with-fpm-user=www-data \ --with-fpm-group=www-data \ --enable-ftp \ --with-imap \ --with-imap-ssl \ --with-kerberos \ --with-gettext \ --with-xmlrpc \ --with-xsl \ --enable-opcache \ --enable-fpm
然后我们开始编译,注意编译机器的内存必须要大,我虚拟机最开始1G还不够,调到了4G
make #或者根据你当前正在编译机器cpu核数调参数加速编译,比如我虚拟机是2核 make -j2 就可以同时跑2个job加速编译,编译了差不多15分钟
然后安装
sudo make install
把php7装到上面prefix指定目录,也就是/opt/php-7.0.9/下
跑下cli看看版本号与信息:
/opt/php-7.0.9/bin/php -v /opt/php-7.0.9/bin/php -i
运行php-fpm服务前,需要把相关的配置文件放好:
sudo mv /opt/php-7.0.9/etc/php-fpm.conf.default /opt/php-7.0.9/etc/php-fpm.conf sudo mv /opt/php-7.0.9/etc/php-fpm.d/www.conf.default /opt/php-7.0.9/etc/php-fpm.d/www.conf sudo cp ./php.ini-production /opt/php-7.0.9/etc/php.ini
修改fpm监听的端口:
sudo vi /opt/php-7.0.9/etc/php-fpm.d/www.conf >;listen = 127.0.0.1:9000 >listen = /var/run/php7.0.9-fpm.sock
然后启动服务 sudo /opt/php-7.0.9/sbin/php-fpm
最后在nginx配置里用
fastcgi_pass unix:/var/run/php7.0.9-fpm.sock;
就可以了。
如果你用16.04 LTS,就自带PHP7软件包
这个在网上搜Linux编译PHP都会有很多结果吧,./configure --help就能得到一个参数列表。PHP测试版出来的时候我编译过好几次了,有些扩展,比如curl,gd,iconv,json,mbstring,mysqlnd,pdo这些是必装的,不然很多程序会出问题。
Linux编译PHP
还是自己编译好,我是深受apt-get的害,特么软件包老的要死,报洞的时候很久都没修
学习了,编译过程中 make test && make install 过不去。 出现错误
> /usr/local/pkgsrc/lang/php56/work/php-5.6.12/ext/fileinfo/libmagic/apprentice.c > -o ext/fileinfo/libmagic/apprentice.lo > gcc: Internal error: Killed (program cc1 received signal 9) > Please submit a full bug report. > See for instructions. > Makefile:491: recipe for target 'ext/fileinfo/libmagic/apprentice.lo' failed > gmake: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1 > *** Error code 2
最后查了下,才发现是内存不够了,百度ubuntu 加swap ,解决问题。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
闲着无聊,刚刚编译了下,我写一下过程。
如果下面的./configure爆出缺什么的错误,就在上面命令中加一条 lib<缺的东西名字>-dev(el)
然后我们开始编译,注意编译机器的内存必须要大,我虚拟机最开始1G还不够,调到了4G
然后安装
把php7装到上面prefix指定目录,也就是/opt/php-7.0.9/下
跑下cli看看版本号与信息:
运行php-fpm服务前,需要把相关的配置文件放好:
修改fpm监听的端口:
然后启动服务 sudo /opt/php-7.0.9/sbin/php-fpm
最后在nginx配置里用
就可以了。
如果你用16.04 LTS,就自带PHP7软件包
这个在网上搜
Linux编译PHP都会有很多结果吧,./configure --help就能得到一个参数列表。PHP测试版出来的时候我编译过好几次了,有些扩展,比如curl,gd,iconv,json,mbstring,mysqlnd,pdo这些是必装的,不然很多程序会出问题。
还是自己编译好,我是深受apt-get的害,特么软件包老的要死,报洞的时候很久都没修
学习了,编译过程中 make test && make install 过不去。
出现错误
最后查了下,才发现是内存不够了,百度ubuntu 加swap ,解决问题。