前情提要
裝了新版本的 Codeignitor 4,結果一執行才發現他需要的php版本是7.3以上,目前的版本是 7.0w,一執行出現這樣的錯誤:
Parse error: syntax error, unexpected '?' in /home/note/ci4/system/Common.php on line 1124
想著這個php版本也用很久了,順便升級好了(錯)…
作業系統
CentOS Linux release 7.3.1611 (Core)
步驟
一、查看目前版本
或
二、移除
上面的過程列出來的原因是後面退版又一個個裝回去。
三、安裝 remi 的 repos.
四、安裝php
依需要加上想裝的套件,不需要的可不裝。
裝的時候有一些警告,主要是現存套件的依存套件失效
結果安裝完重啟後確實升到7.3沒錯也沒問題,但是一些程式的語法要改,例如 continue、each的語法。
為此,我只好退版回去,只要安裝的步驟反回去即可
# yum remove php php-cli php-common php-gd php-imap php-mbstring php-mysql php-odbc php-pdo php-pear php-pgsql php-process php-snmp php-xml php-xmlrpc php-fpm php-mcrypt
# yum install php70w.x86_64 0:7.0.33-1.w7 php70w-bcmath.x86_64 0:7.0.33-1.w7 php70w-cli.x86_64 0:7.0.33-1.w7 php70w-devel.x86_64 0:7.0.33-1.w7 php70w-gd.x86_64 0:7.0.33-1.w7 php70w-mbstring.x86_64 0:7.0.33-1.w7 php70w-mcrypt.x86_64 0:7.0.33-1.w7 php70w-mysqlnd.x86_64 0:7.0.33-1.w7 php70w-opcache.x86_64 0:7.0.33-1.w7 php70w-pdo.x86_64 0:7.0.33-1.w7 php70w-pear.noarch 1:1.10.1-1.w7 php70w-pecl-apcu.x86_64 0:5.1.9-1.w7 php70w-pecl-igbinary.x86_64 0:2.0.1-1.w7 php70w-pecl-imagick.x86_64 0:3.4.3-1.w7 php70w-pecl-memcached.x86_64 0:3.0.3-1.w7 php70w-process.x86_64 0:7.0.33-1.w7 php70w-tidy.x86_64 0:7.0.33-1.w7 php70w-xml.x86_64 0:7.0.33-1.w7
理論上後面的版號不加也行,但是因為是複製貼上,也就沒去修改
參考資料
[1] https://onoredekaiketsu.com/upgrade-to-php-7-3/