Linux下部署php多版本共存
背景說明
自php7問世,身為最新版本控的我馬上升級體驗,但是由於伺服器上還有舊程序在運行,只好部署一個php多版本共存環境。
現有環境是lnmp
- CentOS 6.7
- nginx 1.10.1
- mariadb-10.0.26
- php 7.0.8
為了更好兼容舊的php程序,推薦使用5.4.45. 主要是兼容mysql擴展。
開始安裝
首先要下載php-5.4.45.tar.gz源碼包。
通過源碼安裝
# tar xzvf php-5.4.45.tar.gz
# cd php-5.4.45
# ./configure --prefix=/usr/local/php54 --with-config-file-path=/usr/local/php54/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-intl --with-xsl
# make ZEND_EXTRA_LIBS='-liconv'
# make install
# cp php.ini-proction /usr/local/php/etc/php.ini
------------------------------------------------------------------------------------------------
php.ini 配置
post_max_size = 50M
upload_max_filesize = 50M
date.timezone = PRC
short_open_tag = On
cgi.fix_pathinfo=0
max_execution_time = 300
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
------------------------------------------------------------------------------------------------
php-fpm.conf 配置
------------------------------
# vim /usr/local/php/etc/php-fpm.conf1
[global]
pid = /usr/local/php54/var/run/php-fpm.pid
error_log = /usr/local/php54/var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php54-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1:9001
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 40
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 40
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
----------------------------------------------------------------------------------
啟動 php-fpm
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php54-fpm
# chmod +x /etc/init.d/php54-fpm
# /etc/init.d/php54-fpm start
-------------------------------------------------------------------------------------------
修改nginx配置,對需要的服務配置使用php-5.4.45
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php54-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
----------------------------------------------------------------------------------------
配置php-5.4.45 的php54-fpm 開機自動啟動
# chkconfig --add php54-fpm
# chkconfig php54-fpm on
㈡ 怎麼在linux的CLI下運行php文件
在Linux的CLI(命令行界面)下運行PHP文件,可段旁帆以通過以下步驟進行:
打開終端,進入PHP文件所在的目錄啟穗。
輸入以下命令:
php filename.php
其中,filename.php是要運行的PHP文件名。
按下回車鍵,即可運行PHP文件。
注意,要在CLI下運行PHP文件,需要先安裝PHP解釋器。如果您的系統中沒有安裝PHP,可以通過以下命令進行安裝:
sudo apt-get install php
這個命令會使用apt-get包管理器自動安裝PHP解握雹釋器。如果您的系統中使用的是其他包管理器,可以根據實際情況進行相應的安裝。
㈢ 如何在linux下安裝多個不同版本的PHP
進入php源程序目錄中的ext目錄中,這里存放著各個擴展模塊的源代碼,選擇你需要回的模塊,比如答curl模塊:cd curl
執行phpize生成編譯文件,phpize在PHP安裝目錄的bin目錄下
/usr/local/php5/bin/phpize
運行時,可能會報錯:Cannot find autoconf. Please check your autoconf installation and
the $PHP_AUTOCONF
environment variable is set correctly and then rerun this
script.,需要安裝autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install
autoconf(Ubuntu Linux)
/usr/local/php5/bin/php -v
執行這個命令時,php會去檢查配置文件是否正確,如果有配置錯誤,
這里會報錯,可以根據錯誤信息去排查!
㈣ 如何在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運行php文件
在命令行運行的話來,linux和Windows環境下自一樣,如果你的PHP已經設置為全局的,可以直接
php 後跟文件名,如果不是全局的就進入php安裝bin目錄下,就是有php.exe文件那個目錄下執行 php+文件名
㈥ 如何在linux下安裝phalcon框架php版本的擴展
方法/步驟
1
第一步:在網路中搜索Phalcon,一般第一個網站,進入網站,我們點擊網站首頁的download,目前該框架的最近版本是2.0
2
接著 我們找到我們的系統 這里我建議選用二進制的源碼編譯安裝!
3
然後 我們根據網站上的提示 下載該框架託管在github上面的二進制源碼,如圖所示,(使用git命令時需要安裝yum install git)
4
使用putty連接我們的linux系統 在linux系統/usr/local/src/下面輸入步驟三圖片上的命令 稍等片刻源碼就會下載下來
5
源碼下載完畢後會有一個cphalcon目錄 我們用命令行切換到/usr/local/src/cphalcon/build
6
用vi編輯器打開install文件 按照下圖配置 選擇php-config(php安裝位置各有不同)默認install 沒有選擇php-config的位置所有我們要自己動手
7
編輯完成 直接執行./install 動態編譯載入php擴展
8
編譯完成後打開php.ini文件添加phalcon的擴展 在php.ini中添加下圖的擴展即可
9
最後一步php探針驗證 !大工告成!
http://jingyan..com/article/2d5afd69f595b585a3e28e50.html