2020年ubuntu1804安裝php7.3最新詳細教程


雖然很久沒有寫php了,但是php這個語言還是不能丟。php7發布以后運行速度有大幅的提升,改進也很快,php的開源項目也很多。所以在服務器安裝一份,讓自己隨時能用。說不定哪天就用上了。

一、准備php的第三方源

因為ubuntu默認的php是7.2的版本,看很多大神介紹7.3比7.2有提高不少,所以考慮用php的第三方源
(最新的7.4是2019年11月發布的,還在快速迭代,更新bug,暫時不考慮。)

  1. 第三方源ppa:ondrej/php 是一個比較知名的PHP源。
    作者Ondřej Surý 是 Debian PHP 軟件源的官方維護者之一,所以說穩定性和安全性基本上不是問題。
  2. 用【ppa:ondrej/php】還是同時安裝多個版本的php在同一台服務器,可以非常方便的切換版本,可以支持php5.6/7.1/7.2/7.3/7.4
  3. 先安裝相關依賴包(以下都是以root用戶進行操作)
apt -y install software-properties-common apt-transport-https lsb-release ca-certificates
#-y是省去提示yes/no時,輸入y的麻煩
  1. 添加第三方源,會有個warning提示
add-apt-repository ppa:ondrej/php 
#WARNING: add-apt-repository is broken with non-UTF-8 locales
#試了,這個命令 LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php,提示也一樣
apt update
  1. 安裝php7.3和相關拓展
apt install php7.3 php7.3-fpm php7.3-mysql php7.3-curl php7.3-gd php7.3-mbstring php7.3-xml php7.3-xmlrpc php7.3-zip php7.3-opcache php7.3-json  php7.3-pgsql
#有點多,都是常用的
apt instal php-redis php-mongodb 
#這兩個擴展沒有針對7.3的,redis和mongodb現在使用都非常多
  1. 可根據需要安裝的擴展
 apt-cache search php7.3

二、配置PHP7.3

  1. php-fpm的啟動和管理
    • 安裝完Php7.3后,會自動啟動php-fpm
    • /etc/init.d/php7.3-fpm start/stop/restart 可以啟動、停止、重啟php-fpm
    • 默認讀取/ect/php/7.3/fpm/php-fpm.conf
  2. php的配置文件說明
    • 配置文件/etc/php/7.3/fpm/目錄下
    • php-fpm.conf 是【global】
      • 中小應用這里修改的不多,如果需要深入定制可以參考以下文章
    • php-fpm線程池/etc/php/7.3/fpm/pool.d/www.conf
pm = dynamic 如何控制子進程,選項有static和dynamic
pm.max_children:靜態方式下開啟的php-fpm進程數量
pm.max_requests:php-fpm子進程能處理的最大請求數
pm.start_servers:動態方式下的起始php-fpm進程數量
pm.min_spare_servers:動態方式下的最小php-fpm進程數
pm.max_spare_servers:動態方式下的最大php-fpm進程數量
區別:
如果dm設置為 static,那么其實只有pm.max_children這個參數生效。系統會開啟設置數量的php-fpm進程。
如果dm設置為 dynamic,那么pm.max_children參數失效,后面3個參數生效。
1G的內存
pm = dynamic
pm.start_servers = 6
pm.min_spare_servers = 3
pm.max_spare_servers = 20

     + [參考文檔](https://www.cnblogs.com/jonsea/p/5522018.html),
       [php-fpm配置優化](https://blog.csdn.net/Derek_Yam/article/details/89474827),
       [優化2](https://www.cnblogs.com/52fhy/p/5051722.html),
       [參考3](https://www.php.cn/php-weizijiaocheng-391985.html)
+ pool.d/www.conf 是進程池的相關配置,是用tcp,還是用unix socket,可以參考這篇文章
     + [tcp Or unix](https://blog.csdn.net/qq624202120/article/details/60957634)
     + [參考2](https://www.cnblogs.com/mzhaox/p/11215113.html)[參考3](https://blog.csdn.net/lifushan123/article/details/45704471)
     + 改用TCP socket ,vim pool.d/www.conf ,修改listion = 127.0.0.1:9000
+ 默認啟動的是unixsocket,/run/php/php7.3-fpm.sock
  1. 修改nginx的配置,新增一個phpdev.conf ,放在/etc/nginx/conf.d/phpdev.conf
erver {
    listen       80;
    server_name  php.qumogu.com;

    #charset koi8-r;
    access_log  /var/log/nginx/phpdev.access.log  main;

    location / {
        root   /data/www/phpdev;
        index  index.html index.htm index.php;
    }
  
    error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80

    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80

    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /data/www/phpdev;
        #fastcgi_pass   unix:/dev/shm/php-fpm.sock;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

在配置nginx的時候,一直報,no input file specified,無法正常顯示php

需要,指定root ,然后,參考

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  改為:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  1. php-fpm的常用命令
systemctl restart php7.3-fpm #重啟
systemctl start php7.3-fpm #啟動
systemctl stop php7.3-fpm #關閉
systemctl status php7.3-fpm #檢查狀態
#也可以用
/etc/init.d/php7.3-fpm start/stop/restart
  1. 查看網絡端口
netstat -lnt | grep 9000
netstat -lnt #查看所有端口占用
  1. 添加www-data用戶合組
useradd www-data
groupadd www-data


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM