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閱讀 227,967評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,273評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,870評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,742評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,527評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,010評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,250評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,769評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,656評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,853評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,103評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,472評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,717評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,487評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,815評論 2 372

推薦閱讀更多精彩內容