環境
Ubuntu-18.0.4
php7.4.20
序言
php的安裝應該是php程序開發者必備的技能,建議讀者一步步跟著教程做,對每條命令自行測試;
- 到PHP官網下載tar.gz格式的源碼包,我下載的版本是7.4.20,下載軟件到本地目錄/var/local/src(此目錄自定義),并解壓,
> tar -zxvf php-7.4.20.tar.gz
- 安裝依賴可以提前安裝好(也可以后續一個個安裝);
> apt install -y build-essential gcc libcurl3-dev pkg-config libxml2-dev libssl-dev sqlite3 libsqlite3-dev libbz2-dev libgmp3-dev libonig-dev libedit-dev libreadline-dev libxslt1-dev autoconf postgresql
- 檢測環境
./configure --prefix=/usr/local/php74 --with-config-file-path=/usr/local/php74/ini_path --with-config-file-scan-dir=/usr/local/php74/config_path --enable-MySQLnd --with-pdo-mysql --with-pdo-mysql=mysqlnd --enable-bcmath --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --enable-mbstring --enable-phpdbg --enable-shmop --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-zlib --with-curl --with-pear --with-openssl --enable-pcntl --with-readline
notes: 可以輸入./configure --help來查看php安裝的配置項清單,可以自由選擇,按需配置(不明白的可以自行搜索);
- 出現如下畫面,說明環境正常,可以開始編譯安裝了
- 編譯和安裝
> make && make install
- 出現如下畫面,說明安裝成功了
- 設置環境變量
> vi /etc/profile
# 添加
> export PATH=$PATH:/usr/local/php74/bin
# 加載配置文件
> source /etc/profile
- 測試查看PHP版本
> php -v
- 配置php.ini文件
# 將源碼中的配置文件復制到PHP的配置文件中
> cp /usr/local/src/php-7.4.20/php.ini-production /usr/local/php74/ini_path/php.ini
- 創建php-fpm軟鏈接
> ln -s /usr/local/php74/sbin/php-fpm /usr/local/php74/bin/php-fpm
# 檢測是否成功
> php-fpm -v
- 配置php-fpm
# 將PHP目錄中的php-fpm配置文件進行修改
> cd /usr/local/php74/etc
> cp php-fpm.conf.default php-fpm.conf
> cp php-fpm.d/www.conf.default php-fpm.d/www.conf
- 啟動php-fpm
> php-fpm
沒有報錯(沒有消息就是最好的消息)
驗證php-fpm是否啟動成功
> ps -ef|grep php-fpm
> netstat -tnl | grep 9000 # php-fpm默認是9000端口
- 配置php-fpm系統自啟動
> vi /etc/rc.local(如果沒有創建一個)
文件內容:
#!/bin/sh
/usr/local/php74/sbin/php-fpm
保存退出
> chmod a+x /etc/rc.local
- 查看安裝了哪些擴展
> php -m
- 安裝擴展,以安裝ftp擴展為例
> cd /usr/local/src/php-7.4.20/ext (源代碼解壓目錄下的擴展目錄)
> cd ftp
> phpize
> ./configure
> make && make install
在配置文件(php.ini)中開啟擴展,如果沒有"extension=ftp",可以加上去,有的話,將前面的分號去掉即可
重啟php-fpm
> killall php-fpm && php-fpm
> php -m 查看