中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何編譯安裝php5.6.31

發布時間:2021-11-17 10:02:41 來源:億速云 閱讀:127 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“如何編譯安裝php5.6.31”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何編譯安裝php5.6.31”這篇文章吧。

編譯安裝php5.6.31的方法:1、添加epel源并下載php-5.6.31;2、將安裝包進行解壓并安裝;3、修改php-fpm.conf;4、啟動php-fpm;5、編輯nginx配置文件并重啟nginx服務即可。

本文操作環境:CentOS 7系統、php5.6.31版、DELL G3電腦

CentOS 7 編譯安裝PHP5.6.31

服務器上已經有nginx和mysql,所以就決定采用 PHP+Nginx+mysql這個組合,在網上翻了很多資料,由于對linux和PHP不不了解,不知道PHP和nginx和mysql是怎么關聯的,遇到各種原因(不是php裝錯了,就是包沒裝,),花了很多時間,后來部署完后發現,這三個都是單獨安裝(額~~難道還能一起安裝),只需要php安裝后配置下,nginx的配置下(和php的關聯)就直接可以跑了。至于mysql,只要開啟,php項目里面的連接數據庫配置好了,可以直接連上去。所以本文主要針對php的安裝。

關于nginx和mysql的安裝,開始安裝前需要在linux的一些開發庫安裝在此也不復述,參考鏈接里面都有。

本文主要參考了此鏈接博客:https://www.cnblogs.com/flower-tree/p/7562101.html

php版本:5.6.31

nginx版本:1.7.3

mysql版本:5.6.62

PHP安裝配置

nginx本身不能處理PHP,它只是個WEB服務器,當接收到請求后,如果是php請求,則發送給php解釋器處理,并把結果返回給客戶端。

nginx一般把請求發送給fastcgi管理進程處理,fastcgi管理進程選擇cgi子進程處理結果并返回nginx。

什么是PHP-FPM?PHP-FPM是一個屬于PHP的FASTCGI管理器,只用于PHP,新版本已集成php-fpm了,php-fpm提供更好的php進程管理,可以有效控制內存和進程,可以平滑重載php配置。在configure時,帶-enable-fpm參數即可開啟php-fpm,其他參數可見這里,至于什么是fastcgi,和php-fpm什么關系,可參考鏈接https://segmentfault.com/q/1010000000256516

安裝前準備

添加 epel 源
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
安裝依賴
yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-develyum -y install gcc gcc-c++ glibcyum -y install libmcrypt-devel mhash-devel libxslt-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \
krb5 krb5-devel libidn libidn-devel openssl openssl-devel

下載php-5.6.31

 1)將安裝包解壓到 /usr/local/src

cd /usr/local/srctar -zvxf php-5.6.31.tar.gz

2)進入安裝目錄,進行安裝

cd php-5.6.31./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt \--enable-mbstring --enable-pdo --with-curl --disable-debug  --disable-rpath \--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \--with-gd --with-jpeg-dir --with-freetype-dir --enable-calendarmake && make install
CentOS 中下載php: wget http://php.net/get/php-5.6.30.tar.gz/from/this/mirror

以上就完成了php-fpm的安裝,安裝過程會花一些時間。

關于php配置

1、為php提供配置文件

cp php.ini-production /usr/local/php/etc/php.ini

注意:php.ini-production 還是在剛才/usr/local/src/php-5.6.31 目錄下

2、為php-fpm提供配置文件

cd /usr/local/phpcp etc/php-fpm.conf.default etc/php-fpm.conf
vim etc/php-fpm.conf

修改php-fpm.conf

user = www
group = www

如果www用戶不存在,那么先添加www用戶(默認運行用戶nobody)

groupadd www
useradd -g www www

如果沒有配置這一步,瀏覽器打開 php 文件會報錯

“The page you are looking for is temporarily unavailable. Please try again later”

修改

pm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pid = /usr/local/php/var/run/php-fpm.pid

3、啟動php-fpm

執行

/usr/local/php/sbin/php-fpm

使用如下命令來驗正(如果此命令輸出有中幾個php-fpm進程就說明啟動成功了):

ps aux | grep php-fpm

結果如下圖:

如何編譯安裝php5.6.31

3、nginx和php-fpm整合

編輯nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

初始內容如下:

# nginx運行的用戶名
user nginx;
# nginx啟動進程,通常設置成和cpu的數量相等,這里為自動
worker_processes auto;

# errorlog文件位置
error_log /var/log/nginx/error.log;
# pid文件地址,記錄了nginx的pid,方便進程管理
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
# 用來加載其他動態模塊的配置
include /usr/share/nginx/modules/*.conf;

# 工作模式和連接數上限
events {
    # 每個worker_processes的最大并發鏈接數
    # 并發總數:worker_processes*worker_connections
    worker_connections 1024;
}

# 與提供http服務相關的一些配置參數類似的還有mail
http {
    # 設置日志的格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    # access_log記錄訪問的用戶、頁面、瀏覽器、ip和其他的訪問信息
    access_log  /var/log/nginx/access.log  main;

    # 這部分下面會單獨解釋
    # 設置nginx是否使用sendfile函數輸出文件
    sendfile            on;
    # 數據包最大時發包(使用Nagle算法)
    tcp_nopush          on;
    # 立刻發送數據包(禁用Nagle算法)
    tcp_nodelay         on;
    # 鏈接超時時間
    keepalive_timeout   65;
    # 這個我也不清楚...
    types_hash_max_size 2048;

    # 引入文件擴展名與文件類型映射表
    include             /etc/nginx/mime.types;
    # 默認文件類型
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    # http服務上支持若干虛擬主機。
    # 每個虛擬主機一個對應的server配置項
    # 配置項里面包含該虛擬主機相關的配置。
    server {
        # 端口
        listen       80 default_server;
        listen       [::]:80 default_server;
        # 訪問的域名
        server_name  _;
        # 默認網站根目錄(www目錄)
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.

        include /etc/nginx/default.d/*.conf;

        # 默認請求
        location / {
        }

        # 錯誤頁(404)
        error_page 404 /404.html;
            location = /40x.html {
        }

        # 錯誤頁(50X)
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

我們要更改配置的只需要server部分就可以了。進入vim編輯模式,或者用FlashFXP將配置文件共享到桌面來更改即可。

只需要改動三處即可

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        # 這里改動了,也可以寫你的域名,我用的是IP地址
        server_name  192.168.0.222;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            # 這里改動了 定義首頁索引文件的名稱
            index index.php index.html index.htm;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }

        # 這里新加的
        # PHP 腳本請求全部轉發到 FastCGI處理. 使用FastCGI協議默認配置.
        # Fastcgi服務器和程序(PHP,Python)溝通的協議.
        location ~ \.php$ {
            # 設置監聽端口
            fastcgi_pass   127.0.0.1:9000;
            # 設置腳本文件請求的路徑
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            # 引入fastcgi的配置文件
            include        fastcgi_params;
        }
    }

重啟nginx服務器

nginx -s reload

此時,nginx和php已經聯合配置完成了,但是我們并不知道實際配置效果如何,這個時候我們可以寫一個小的測試腳本來驗證一下。
之前提過了/usr/share/nginx/html是Nginx的網站根目錄,我們可以在此目錄下建立一個php測試腳本。

# phpinfo.php是我要建立的文件名

vi /usr/share/nginx/html/phpinfo.php

打開編輯器后,在里面輸入

<?php
phpinfo();// 測試信息?>

保存退出后,在瀏覽器中輸入http://192.168.0.222/phpinfo.php,我這里的ip是192.168.0.222,你換成你們自己的即可。如圖出現類似如下界面:

如何編譯安裝php5.6.31

Nginx和php已經配置完成了。

4、安裝過程出錯原因

我按流程安裝時,出現了一個錯誤:mcrypt.h not found. Please reinstall libmcrypt

是因為php-mcrypt  libmcrypt  libmcrypt-devel這些包沒安裝,出現的錯誤一般都是缺少庫或者包,安裝即可。


以上是“如何編譯安裝php5.6.31”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梅河口市| 天水市| 玉屏| 长葛市| 革吉县| 丽江市| 商城县| 义马市| 大港区| 嘉义市| 沐川县| 本溪市| 石阡县| 济宁市| 屯门区| 永城市| 白玉县| 昌黎县| 宁河县| 海宁市| 美姑县| 白水县| 西贡区| 贡山| 基隆市| 密云县| 抚州市| 开江县| 嘉禾县| 南平市| 寻乌县| 抚松县| 崇礼县| 沁阳市| 灵宝市| 塘沽区| 临沭县| 河曲县| 湛江市| 满城县| 龙岩市|