linuxphp版本
Linux (測試環境 Ubuntu 12.04 Server X86_64)
1. 安裝編譯工具及所需類庫
$ sudo apt-get install build-essential gcc g++ autoconf libjpeg62 libjpeg62-dev libpng12-0 libpng12-dev libfreetype6 libfreetype6-dev libxml2 libxml2-dev zlib1g zlib1g-dev bzip2 libbz2-dev openssl libssl-dev curl libcurl4-openssl-dev libpcre3 libpcre3-dev libevent-1.4-2 libevent-dev libmcrypt4 libmcrypt-dev mcrypt libltdl-dev libldap2-dev libsasl2-dev libmhash-dev libc-client2007e libc-client2007e-dev
2. 安裝Mysql
$ sudo apt-get install mysql-server libmysqlclient-dev
3. 安裝PHP
Linux下多版本PHP共存需要自己手工編譯安裝。
下載PHP源文件到/opt/src目錄
$ mkdir /opt/src
$ cd /opt/src
$ wget http://museum.php.net/php5/php-5.2.17.tar.bz2 -O php-5.2.17.tar.bz2
$ wget http://cn2.php.net/get/php-5.3.28.tar.bz2/from/this/mirror -O php-5.3.28.tar.bz2
$ wget http://cn2.php.net/get/php-5.4.29.tar.bz2/from/this/mirror -O php-5.4.29.tar.bz2
$ wget http://cn2.php.net/get/php-5.5.14.tar.bz2/from/this/mirror -O php-5.5.14.tar.bz2
創建PHP各版本安裝目錄
$ mkdir -p /opt/php/{5217,5328,5429,5514}
安裝PHP 5.2.17
$ cd /opt/src
$ tar -xvjf php-5.2.17.tar.bz2
$ cd php-5.2.17
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/libpng.so
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libkrb5.so /usr/lib/libkrb5.so
$ wget -O debian_patches_disable_SSLv2_for_openssl_1_0_0.patch 「https://bugs.php.net/patch-display.php?bug_id=54736&patch=debian_patches...」
$ patch -p1 < debian_patches_disable_SSLv2_for_openssl_1_0_0.patch
$ ./configure --prefix=/opt/php/5217 --with-config-file-scan-dir=/opt/php/5217/etc/php.d --with-mysql --with-pdo-mysql --with-mysqli --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-ftp --disable-debug --disable-ipv6 --disable-short-tags --enable-calendar --with-mime-magic --with-imap --with-imap-ssl --with-kerberos
$ make
$ sudo make install
$ cp php.ini-recommended /opt/php/5217/lib/php.ini
安裝PHP 5.3.28
$ cd /opt/src
$ tar -xvjf php-5.3.28.tar.bz2
$ cd php-5.3.28
$ ./configure --prefix=/opt/php/5328 --with-config-file-scan-dir=/opt/php/5328/etc/php.d --with-mysql --with-pdo-mysql --with-mysqli --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-ftp --disable-debug --disable-ipv6 --disable-short-tags --enable-calendar --with-imap --with-imap-ssl --with-kerberos
$ make
$ sudo make install
$ cp php.ini-development /opt/php/5328/lib/php.ini
安裝PHP 5.4.29
$ cd /opt/src
$ tar -xvjf php-5.4.29.tar.bz2
$ cd php-5.4.29
$ ./configure --prefix=/opt/php/5429 --with-config-file-scan-dir=/opt/php/5429/etc/php.d --with-mysql --with-pdo-mysql --with-mysqli --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-ftp --disable-debug --disable-ipv6 --disable-short-tags --enable-calendar --with-imap --with-imap-ssl --with-kerberos
$ make
$ sudo make install
$ cp php.ini-development /opt/php/5429/lib/php.ini
安裝PHP 5.5.14
$ cd /opt/src
$ tar -xvjf php-5.5.14.tar.bz2
$ cd php-5.5.14
$ ./configure --prefix=/opt/php/5514 --with-config-file-scan-dir=/opt/php/5514/etc/php.d --with-mysql --with-pdo-mysql --with-mysqli --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-ftp --disable-debug --disable-ipv6 --disable-short-tags --enable-calendar --with-imap --with-imap-ssl --with-kerberos
$ make
$ sudo make install
$ cp php.ini-development /opt/php/5514/lib/php.ini
4. 安裝Apache
$ sudo apt-get install apache2
啟用相應模塊
$ a2enmod headers
$ a2enmod expires
$ a2enmod actions
$ a2enmod rewrite
5. 配置Apache
$ sudo vi /etc/apache2/httpd.conf
追加如下腳本映射和虛擬主機配置,原理同Windows的配置說明。
ServerName localhost
AddType application/x-httpd-php .php
ScriptAlias /php-5217/ "/opt/php/5217/bin/"
ScriptAlias /php-5328/ "/opt/php/5328/bin/"
ScriptAlias /php-5429/ "/opt/php/5429/bin/"
ScriptAlias /php-5514/ "/opt/php/5514/bin/"
<Directory /var/www/sites>
Options Indexes FollowSymLinks Includes ExecCGI
DirectoryIndex index.php index.html
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/sites/5217>
Action application/x-httpd-php "/php-5217/php-cgi"
</Directory>
<Directory /var/www/sites/5328>
Action application/x-httpd-php "/php-5328/php-cgi"
</Directory>
<Directory /var/www/sites/5429>
Action application/x-httpd-php "/php-5429/php-cgi"
</Directory>
<Directory /var/www/sites/5514>
Action application/x-httpd-php "/php-5514/php-cgi"
</Directory>
# Virtualhosts
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/sites/5217/test.local"
ServerName php5217.local
ErrorLog "/var/log/apache2/php5217.local-error.log"
CustomLog "/var/log/apache2/php5217.local-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/sites/5328/test.local"
ServerName php5328.local
ErrorLog "/var/log/apache2/php5328.local-error.log"
CustomLog "/var/log/apache2/php5328.local-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/sites/5429/test.local"
ServerName php5429.local
ErrorLog "/var/log/apache2/php5429.local-error.log"
CustomLog "/var/log/apache2/php5429.local-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/sites/5514/test.local"
ServerName php5514.local
ErrorLog "/var/log/apache2/php5514.local-error.log"
CustomLog "/var/log/apache2/php5514.local-access.log" common
</VirtualHost>
保存配置後,創建各站點的DocumentRoot目錄,再往每個目錄放置一個phpinfo的測試文件,完成後重啟Apache伺服器並在本地hosts文件加入域名解析,現在就可以訪問各站點來測試多版本PHP共存了。
好了,基本的多版本PHP共存解決方案已經完成,如果還需要添加其他的PHP類庫支持,後續自己再調用對應php目錄下的pecl, php_config等腳本編譯安裝就可以了。
『貳』 如何查看linux能夠安裝php的版本
1、首先可以利用find
/
-name
php.ini
查找一下,系統是否有php的配置文件
2、利用netstat
-ntpl
查看9000埠是否在運行
3、如果9000埠存在,可以使用lsof
-i:9000查看文件位置
4、另外,如果系統已經安裝了php,你還可以用php
-v
查看版本號,前提是設置環境變數
『叄』 Linux CentOS安裝PHP多版本同時運行
mkdir -p /lnmp/php74
wget https://www.php.net/distributions/php-7.4.33.tar.gz
tar -zxvf php-7.4.33
cd ./php-7.4.33
./configure --prefix=/lnmp/php74 --enable-fpm --with-mysqli --with-curl --with-pdo_mysql --with-pdo_sqlite --enable-mysqlnd --enable-mbstring --with-gd --with-freetype
(7.4之前的版本freetype是 --with-freetype-dir )
make
make install
cp php.ini-development /lnmp/php74/lib/php.ini
cd /lnmp/php74/etc
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf
cd /lnmp/php71/etc/php-fpm.d
vim www.conf
cgi.fix_pathinfo=0
/lnmp/php71/sbin/php-fpm
ps aux|grep php
vim /etc/init.d/php71-fpm
chmod a+x /etc/init.d/php71-fpm
chkconfig --add php71-fpm
service php71-fpm start
service php71-fpm restar
service php71-fpm stop
『肆』 如何在linux安裝php開發環境
我一般會選用源碼安裝 php,安裝 php 的過程指定要安裝的擴展,但是避免不了缺少某個擴展未安裝導致程序運行報錯的問題。以 fileinfo 為例,介紹一下怎麼添加 php 擴展。
1. 准備
通常遇到報錯:xxx function undefined,而這個函數是系統函數的話,那一定是你缺少某個擴展。添加擴展也非常簡單。首選要確認當前的 php 是哪個版本,不同版本的 php 擴展會有些許出入。然後找到 Php 源碼目錄,也就是從網上下載下來並且解壓的 php 文件包。添加擴展的時候需要在源碼包裡面去執行命令。
2. 安裝 fileinfo 擴展
1. 確認 php 版本
php -v
# PHP 7.4.4 (cli)
2. 找到 php 可執行文件的位置
whereis php
# php: /usr/local/php /usr/local/php/bin/php
可以看出 php 執行文件在 /usr/local/php/bin 目錄裡面
那麼嘗試執行 phpize,保證這個文件存在,phpize 命令在添加擴展的時候需要用到
/usr/local/php/bin/phpize -v
# Configuring for:
# PHP Api Version: 20190902
# Zend Mole Api No: 20190902
# Zend Extension Api No: 320190902
3.進入php源碼目錄
我的習慣是網路下載的軟體會放在 /usr/local/src 下面,
cd /usr/local/src/php-7.4.4
cd /etc
cd fileinfo
擴展都在源碼目錄的 etc 下面,裡面有 curl,gd,ftp 等等擴展目錄,我要安裝 fileinfo,所以到 fileinfo 目錄裡面
4.開始安裝
確定目錄下面有 config.m4 文件,如果沒有,應該會有 config0.m4 文件,把 config0.m4 復制一份為 config.m4,如果沒有這個文件,會報錯:can not found config.m4
/usr/local/php/bin/phpize
./configure
make && make install
如果這幾行命令運行下來都沒有報錯,那麼說明擴展文件已經生成,並且已經自動移入相應位置。接下來就是修改 php.ini,追加 extension=fileinfo.so 到 php.ini 中。
5.修改php.ini,載入擴展文件
查看 php.ini 的位置
php -i | grep php.ini
#Configuration File (php.ini) Path => /usr/local/php/etc
#Loaded Configuration File => /usr/local/php/etc/php.ini
可以看到 php.ini 的位置: /usr/local/php/etc/php.ini
vim /usr/local/php/etc/php.ini
#添加extension=fileinfo.so,保存
php -m | grep fileinfo
#fileinfo
看到輸出 fileinfo,至此,fileinfo 擴展安裝完畢!另外可以使用 pecl 命令安裝,更方便快捷!
『伍』 linux系統使用RPM包安裝了PHP7.2,但是查詢PHP版本顯示的5.5.7是為什麼啊要怎麼設置才能使用7.2版本
需要替換掉執行目錄的php鏈接。
系統默認安裝的php有一個軟鏈接在執行目錄( bin或sbin之類的 ),命令行調用php的時候調用到這個文件。如果通過非系統包管理方式安裝了其它版本的php,需要做軟鏈接覆蓋。
查看目前調用的位置
whereisphp
創建鏈接覆蓋
ln-s/自行安裝的php文件/上面找到的php軟鏈接的位置
『陸』 linux里怎麼升級php版本
1:進入終端後查看PHP版本
php -v
輸出可能如下:
PHP 5.4.35 (cli) (built: Nov 14 2014 07:04:10) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2015, by Zend Technologies
2:執行下面的命令升級軟體倉庫
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
3:執行下面的命令刪除php
yum remove php-common
然後像安裝那樣問你是否繼續的,輸入yes即可
4:安裝php 5.6版本(php56w-devel這個不是必需的)
yum install -y php56w php56w-opcache php56w-xml php56w-mcrypt php56w-gd php56w-devel php56w-MySQL php56w-intl php56w-mbstring
5:重啟httpd
service httpd restart
查看最新的版本
php -v
現在應該是5.6了!
『柒』 如何在linux上安裝php5.6,謝謝,
不知道你問的linux,是哪個發行版本,常用的如 ubntu,centos,debian等。
我列一個centos7(伺服器常用這個版本)的安裝方法吧
centos7默認使用yum install 來安裝程序,但默認源安裝的php是5.4的,版本比較低,
要安裝高版本的,要麼下載源代碼手動編譯安裝,但對不熟悉的,萬一出點錯誤,會越搞越亂。我一般使用epel源安裝php,裡面各個版本都有,最新的php7.3
首先安裝epel
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
這裡面的url是目前我用的,如果提示出錯,就是換url了,可以在電腦上手動打開epel源列表去檢查 epel-release是哪個版本,換上對應的名字
按版本安裝php
rpm-Uvhhttps://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yuminstallphp56wphp56w-mysqlphp56w-pdophp56w-gdphp56w-sslphp56w-mbstringphp56w-cliphp56w-xmlphp56w-bcmath
我這里列的是一些常用的php擴展,如果需要其它的,手動加上即可
如果需要安裝php其它版本,把包名里的56改成對應版本即可 ,如
yuminstallphp71wphp71w-mysqlphp71w-pdophp71w-gdphp71w-sslphp71w-mbstringphp71w-cliphp71w-xmlphp71w-bcmath
yuminstallphp72wphp72w-mysqlphp72w-pdophp72w-gdphp72w-sslphp72w-mbstringphp72w-cliphp72w-xmlphp72w-bcmath
可對應安裝php7.1和php7.2,這種安裝方法,會默認配置好對應的設置,php.ini在/etc/中查找,命令行也默認啟用了 (php-cli)
『捌』 Linux下查看Nginx、Apache、MySQL、PHP版本號
查看Nginx版本號使用命令:nginx -v
查看Apache版本號使用命令:apachectl -v
查看MySQL版本號使用命令:mysql -V
查看PHP版本號使用命令:php -v
『玖』 怎麼在linux系統下查看php版本
1、首先可以利用find
/
-name
php.ini
查找一下,系統是否有php的配置文件。
2、利用netstat
-ntpl
查看9000埠是否在運行。
3、如果9000埠存在,可以使用lsof
-i:9000查看文件位置。
4、另外,如果系統已經安裝了php,你還可以用php
-v
查看版本號,前提是設置環境變數。
『拾』 linux伺服器 修改默認php版本
先查看當前php版本,我的是5.2,已安裝7.3版本,
1.查看php各版本安裝位置:find / name php
2.設置軟連接:
ln -s /www/server/php/73/bin/php /usr/sbin/php
有時候需要覆蓋舊鏈接:
ln -sf /www/server/php/73/bin/php /usr/sbin/php
3.定義系統變數路徑為你剛剛設置的路徑
export PATH="/usr/sbin:$PATH"
4.查看切換成功