編譯安裝php+nginx
服務器: 阿里雲centos7
安裝php
下載: wget https://www.php.net/distributions/php-7.3.19.tar.gz
我的下載目錄: /disk2/soft_pack/
解壓:tar -zxvf php-7.3.19.tar.gz
進入解壓目錄:cd ./php-7.3.19/
提前先把安裝依賴,避免一會兒反復編譯安裝
yum -y install gcc
yum -y install libxml2-devel
yum -y install openssl-devel
yum -y install bzip2 bzip2-devel
yum -y install libpng libpng-devel
yum -y install libzip
開始編譯php
注意: 沒有configure的先使用phpize命令生成
./configure --prefix=/usr/local/php73 \
--with-config-file-path=/usr/local/php/etc/php73\
--with-curl \
--with-bz2 \
--enable-libxml \
--with-openssl \
--enable-bcmath \
--enable-pcntl \
--enable-sockets \
--enable-zip \
--enable-soap \
--with-gettext \
--with-zlib \
--enable-xml \
--enable-fpm \
--with-gd \
在編譯時發現libzip版本過低,重新安裝libzip(沒有提示libzip的版本問題時可忽略)
#先刪除舊版本
yum remove -y libzip
#下載編譯安裝
wget https://nih.at/libzip/libzip-1.2.0.tar.gz
#解壓
tar -zxvf libzip-1.2.0.tar.gz
#進入解壓目錄
cd libzip-1.2.0
#編譯安裝
./configure
make && make install
編譯報錯: /usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or dire
#解決
cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
編譯完成后安裝:
make && make install
查看php版本
/usr/local/php73/bin/php -v
或
使用ln -s /usr/local/php73/bin/php /usr/local/bin/php
后,直接使用php -v
查看
成功獲取版本信息,安裝成功
PHP 7.3.19 (cli) (built: Jul 4 2020 17:35:16) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies
配置php-fpm:
#進入之前解壓的安裝包目錄
cd /disk2/soft_pack/php-7.3.19/
#在編譯包里面把php.ini-production拷貝到php安裝目錄
cp ./php.ini-production /usr/local/php73/php.ini
#復制啟動腳本
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#添加執行權限
chmod +x /etc/init.d/php-fpm
#添加php-fpm配置文件
cp /usr/local/php73/etc/php-fpm.conf.default /usr/local/php73/etc/php-fpm.conf
cp /usr/local/php73/etc/php-fpm.d/www.conf.default /usr/local/php73/etc/php-fpm.d/www.conf
查看是否安裝完成:ps -ef|grep php-fpm
php-fpm命令(開啟/重啟/停止):
/etc/init.d/php-fpm start/restart/stop
添加開機啟動
chkconfig --add php-fpm
查看是否添加成功
chkconfig | grep php-fpm
如圖:
2,3,4,5登錄為開啟狀態,表示添加成功,如果為關閉狀態可以用chkconfig php-fpm on
開啟
安裝nginx
下載:wget http://nginx.org/download/nginx-1.18.0.tar.gz
我的下載目錄:
/disk2/soft_pack/
進入下載目錄解壓
cd /disk2/soft_pack/
tar -zxvf nginx-1.18.0.tar.gz
進入解壓目錄
cd ./cd nginx-1.18.0
編譯
./configure --prefix=/usr/local/nginx \
--with-stream \
--with-stream_ssl_module \
--with-http_ssl_module \
--with-http_v2_module \
--with-threads
安裝
make && make install
添加全局命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
查看nginx信息: nginx -V
nginx命令:
nginx
啟動
nginx -s stop
是快速關閉,不管有沒有正在處理的請求。
nginx -s quit
是一個優雅的關閉方式,Nginx在退出前完成已經接受的連接請求。
nginx -s reload
重載配置
啟動ngxin后通過ip訪問:
nginx安裝成功
nginx開機自啟動
設置自啟動我們只需要創建/etc/init.d/ngxin文件,把官方提供的代碼放進去修改執行程序和配置文件的目錄,然后加入chkconfig管理列表,利用chkconfig命令添加自啟動即可
這里有官方提供的一個腳本:https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/
詳細步驟如下:
創建並編輯文件: vim /etc/init.d/nginx
將官方提供的腳本放入/etc/init.d/nginx
腳本中這兩項修改成自己的路徑
nginx="/usr/local/nginx/sbin/nginx" # 執行程序
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" #配置文件
如圖:
添加執行權限
chmod +x /etc/init.d/nginx
添加chkconfig管理列表
chkconfig --add /etc/init.d/nginx
設置開啟啟動
chkconfig nginx on
查看是否設置成功
chkconfig | grep nginx
或chkconfig --list
如圖:
配置nginx識別php文件
添加配置
vim /usr/local/nginx/conf/nginx.conf
location ~ \.php$ {
root /usr/local/nginx/html; #網站目錄
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
現在去創個php文件試試
echo "<?php phpinfo();?>">>/usr/local/nginx/html/phpinfo.php
瀏覽器訪問xxx.xxx.xxx.xxx/index.php
:
到這里php和nginx都安裝完成了