首頁  >  文章  >  後端開發  >  linux - ubuntu如何編譯安裝官方php7?

linux - ubuntu如何編譯安裝官方php7?

WBOY
WBOY原創
2016-08-04 09:19:20776瀏覽

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的害,特麼軟體包老的要死,報洞的時候很久都沒修

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn