1. 程式人生 > >【安裝PHP】

【安裝PHP】

 

安裝路徑:/usr/local/php

 

【安裝PHP】

先安裝如下依賴包

$ yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

 

下載PHP7.2.0安裝包,點此下載 [密碼:pm0q]

解壓php-7.2.0.tar.gz  然後進入目錄,編譯。命令如下:

$ tar -zxvf php-7.2.0.tar.gz

$ cd php-7.2.0

$ ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl

 

編譯完成的介面如下:

image.png

說明:由於PHP7.2不再支援mysql,而是用mysqli取代。因此會出現上面圖中所示的warning。不過沒關係,如果需要安裝php的mysql擴充套件,文章後面會有說明。

編譯完成之後,執行安裝命令:

$ make && make install

 

說明:如果是在阿里雲購買的雲伺服器,安裝到這裡可能會出現如下錯誤:

image.png

解決方法:看這裡:
http://kccdzz.com/detail/13uat9xrd.html

 

安裝過程大約需要20分鐘時間,安裝成功的介面如下:

image.png

【配置PHP】

在之前編譯的原始碼包中,找到 php.ini-production,複製到/usr/local/php下,並改名為php.ini:

$ cp php.ini-production /usr/local/php/php.ini

[可選項] 設定讓PHP錯誤資訊列印在頁面上 

$ vim /usr/local/php/php.ini 

1

display_errors = On

 

複製啟動指令碼:

$ cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

$ chmod +x /etc/init.d/php-fpm

修改php-fpm配置檔案:

$ cd /usr/local/php/etc

$ cp php-fpm.conf.default php-fpm.conf

$ vim php-fpm.conf

1

① 去掉 pid = run/php-fpm.pid 前面的分號

$ cd php-fpm.d

$ cp www.conf.default www.conf

$ vim www.conf

1

② 修改user和group的使用者為當前使用者(也可以不改,預設會新增nobody這個使用者和使用者組)

 

【啟動PHP】

$ /etc/init.d/php-fpm start        #php-fpm啟動命令

$ /etc/init.d/php-fpm stop         #php-fpm停止命令

$ /etc/init.d/php-fpm restart        #php-fpm重啟命令

$ ps -ef | grep php 或者 ps -A | grep -i php  #檢視是否已經成功啟動PHP

 

【PHP7.2的MySQL擴充套件】

由於PHP7.2不再支援mysql,而是用mysqli取代,如果需要安裝php的mysql擴充套件,請看這裡。

下載安裝包:連結:https://pan.baidu.com/s/1bqDutYZ  密碼:ae40

解壓,並進入目錄:

$ tar -zxvf mysql-24d32a0.tar.gz

$ cd mysql-24d32a0

$ /usr/local/php/bin/phpize  #使用phpize初始化

image.png

#編譯mysql擴充套件,使用mysql native driver 作為mysql連結庫

$ ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=mysqlnd

編譯完成的介面:

image.png

接下來,安裝:

$ make && make install

安裝完成的介面:

image.png

 

最後,編輯php.ini檔案,在最後面加入 extension=mysql.so 即可。

$ vim /usr/local/php/php.ini

image.png

 

重啟PHP,檢視phpinfo()

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

image.png

 

Linux PHP7的openssl擴充套件安裝

Linux環境下使用PHPmailer傳送郵件時,出現如下錯誤:

1

SMTP -> ERROR: Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (32690)

出現這個問題的原因是當初編譯安裝PHP缺少了ssl庫。

可以重新再次編譯PHP,加上--enable-openssl引數即可。

但是如果只為了安裝這一個擴充套件就去重新編譯,未免有點麻煩,其實可以簡單一點,只要安裝openssl.so擴充套件就可以了。

    (1)找到之前編譯安裝PHP的安裝包,或者從php的官網下載php7(本例使用php7,其他版本的PHP類似)

    (2)解壓並進入資料夾 

1

    cd php7.0/ext/openssl

    (3)執行 phpize:

1

    /usr/local/php/bin/phpize

        image.png

        備註,如果出現如下錯誤:Cannot find config.m4.

        Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module

        【解決辦法】cp ./config0.m4 ./config.m4 即可解決

 

    (4)編譯和安裝

1

2

    ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config

    make && make install

        image.png

    (5)然後進入最後提示的目錄,檢視檔案如下:

        image.png

    (6)將 openssl.so 複製到PHP的擴充套件目錄下:

1

    cp openssl.so /usr/local/php/include/php/ext

    (7)找到php.ini,在最後面新增如下內容:

1

    extension=openssl.so

    (8)重啟php-fpm和nginx/apache,檢視phpinfo();

    image.png