php學習終歸還是要學習底層的,但是我c相關的早就忘光了,求助如何編譯官方php7,http://php.net/downloads.php#...
php學習終歸還是要學習底層的,但是我c相關的早就忘光了,求助如何編譯官方php7,http://php.net/downloads.php#...
<code>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</code>
如果下面的./configure爆出缺什麼的錯誤,就在上面指令中加一條 lib-dev(el)
<code>./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</code>
然後我們開始編譯,注意編譯機器的記憶體必須要大,我虛擬機最開始1G還不夠,調到了4G
<code>make #或者根据你当前正在编译机器cpu核数调参数加速编译,比如我虚拟机是2核 make -j2 就可以同时跑2个job加速编译,编译了差不多15分钟</code>
然後安裝
<code>sudo make install</code>
把php7裝到上面prefix指定目錄,也就是/opt/php-7.0.9/下
跑下cli看看版本號碼與資訊:
<code>/opt/php-7.0.9/bin/php -v /opt/php-7.0.9/bin/php -i</code>
運行php-fpm服務前,需要把相關的設定檔放好:
<code>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</code>
修改fpm監聽的連接埠:
<code>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</code>
然後啟動服務 sudo /opt/php-7.0.9/sbin/php-fpm
最後在nginx配置裡用
<code>fastcgi_pass unix:/var/run/php7.0.9-fpm.sock;</code>
就可以了。
如果你用16.04 LTS,就自備PHP7軟體包
這個在網路上搜尋Linux編譯PHP
都會有很多結果吧,./configure --help就能得到一個參數清單。
PHP測試版出來的時候我編譯過好幾次了,有些擴展,比如curl,gd,iconv,json,mbstring,mysqlnd,pdo這些是必裝的,不然很多程式會出問題。
還是自己編譯好,我是深受apt-get的害,特麼軟體包老的要死,報洞的時候很久都沒修