Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyusun dan memasang php5.6.31

Bagaimana untuk menyusun dan memasang php5.6.31

藏色散人
藏色散人asal
2022-01-21 10:42:482111semak imbas

Cara untuk menyusun dan memasang php5.6.31: 1. Tambah sumber epel; 3. Muat turun dan nyahmampatkan php5.6.31; Boleh.

Bagaimana untuk menyusun dan memasang php5.6.31

Persekitaran pengendalian artikel ini: Sistem CentOS 7, versi php: 5.6.31 versi nginx: 1.7.3 versi mysql: 5.6.62, DELL G3 komputer

Bagaimana untuk menyusun dan memasang php5.6.31?

CentOS 7 Susun dan pasang PHP5.6.31:

Sudah ada nginx dan mysql pada pelayan, jadi saya memutuskan untuk menggunakan PHP Nginx mysql Untuk gabungan ini, saya membaca banyak maklumat di Internet Memandangkan saya tidak tahu banyak tentang Linux dan PHP, dan saya tidak tahu bagaimana PHP berkaitan dengan nginx dan mysql, saya menghadapi pelbagai sebab (. sama ada PHP dipasang secara tidak betul atau pakej tidak dipasang. Ia mengambil banyak masa, tetapi selepas penggunaan, saya mendapati bahawa ketiga-tiga ini dipasang secara berasingan (baik~~ bolehkah mereka dipasang bersama), anda hanya perlu mengkonfigurasi PHP selepas pemasangan, dan konfigurasikan nginx (dikaitkan dengan PHP). Bagi mysql, selagi ia dihidupkan dan pangkalan data sambungan dalam projek php dikonfigurasikan, anda boleh menyambung secara langsung. Jadi artikel ini tertumpu terutamanya pada pemasangan php.

Mengenai pemasangan nginx dan mysql, anda perlu memasang beberapa perpustakaan pembangunan Linux sebelum memulakan pemasangan, saya tidak akan mengulanginya di sini.

Konfigurasi pemasangan PHP

nginx sendiri tidak boleh mengendalikan PHP, ia hanyalah pelayan WEB Apabila permintaan diterima, jika ia adalah permintaan PHP, ia dihantar kepada penterjemah PHP untuk diproses dan hasilnya dikembalikan kepada pelanggan.

nginx secara amnya menghantar permintaan kepada proses pengurusan fastcgi untuk pemprosesan Proses pengurusan fastcgi memilih hasil pemprosesan sub-proses cgi dan mengembalikannya kepada nginx.

Apakah itu PHP-FPM? PHP-FPM ialah pengurus FASTCGI untuk PHP Ia hanya digunakan untuk PHP Versi baharu telah menyepadukan php-fpm menyediakan pengurusan proses php dengan berkesan, dan boleh memuatkan semula konfigurasi php. Apabila mengkonfigurasi, anda boleh mendayakan php-fpm dengan parameter -enable-fpm Parameter lain boleh didapati di sini Bagi apa itu fastcgi dan hubungannya dengan php-fpm, sila rujuk pautan https://segmentfault.com/. q/1010000000256516

Persediaan sebelum pemasangan

Tambah sumber epel

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Pasang dependencies

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

Muat turunphp-5.6. 31

1) Ekstrak pakej pemasangan ke /usr/local/src

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

2) Masukkan direktori pemasangan dan pasang

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

Di atas menyelesaikan pemasangan php-fpm Proses pemasangan akan mengambil sedikit masa.

Mengenai konfigurasi php

1. Sediakan fail konfigurasi untuk php

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

Nota: php.ini-production masih dalam /usr/local/src/php- 5.6.31 Direktori

2. Sediakan fail konfigurasi untuk php-fpm

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

Ubah suai php-fpm.conf

user = www
group = www

Jika pengguna www tidak wujud , Kemudian tambahkan pengguna www dahulu (default running user nobody)

groupadd www
useradd -g www www

Jika langkah ini tidak dikonfigurasikan, penyemak imbas akan melaporkan ralat semasa membuka fail php

"Halaman yang anda cari tidak tersedia buat sementara waktu. Sila cuba lagi nanti”

Ubah suai

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. Mulakan php-fpm

Laksanakan

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

Gunakan arahan berikut untuk mengesahkan (jika terdapat beberapa proses php-fpm dalam output arahan ini, ini bermakna permulaan berjaya):

ps aux | grep php-fpm

Hasilnya adalah seperti yang ditunjukkan di bawah:

3 Integrasi nginx dan php-fpm

Edit fail konfigurasi nginx

vim /usr/local/nginx/conf/nginx.conf
Kandungan awal adalah seperti berikut:

# 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 {
        }
    }
}
Kami Untuk menukar konfigurasi, anda hanya memerlukan bahagian

server. Masukkan mod pengeditan vim, atau gunakan FlashFXP untuk berkongsi fail konfigurasi ke desktop untuk membuat perubahan.

Hanya tiga perubahan diperlukan

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;
        }
    }
Mulakan semula pelayan nginx

nginx -s reload
Pada ketika ini, nginx dan php telah dikonfigurasikan bersama, tetapi kami tidak Mengetahui bagaimana konfigurasi sebenar berfungsi, kita boleh menulis skrip ujian kecil untuk mengesahkannya pada masa ini.

Seperti yang dinyatakan sebelum ini, /usr/share/nginx/html ialah direktori akar laman web Nginx Kami boleh mencipta skrip ujian php dalam direktori ini.

# phpinfo.php ialah nama fail yang saya ingin buat

vi /usr/share/nginx/html/phpinfo.php
Selepas membuka editor, masukkan

e2fef49b76a02e58cb8a935d1457623a
Selepas menyimpan dan keluar, dalam pelayar Masukkan http://192.168.0.222/phpinfo.php IP saya di sini ialah 192.168.0.222 Anda boleh menukarnya kepada anda sendiri. Seperti yang ditunjukkan dalam rajah, antara muka yang serupa dengan yang berikut muncul:


Nginx dan php telah dikonfigurasikan.

4. Sebab ralat dalam proses pemasangan

Apabila saya memasang mengikut proses, ralat berlaku: mcrypt.h tidak dijumpai. Sila pasang semula libmcrypt

Ia kerana php-mcrypt libmcrypt Pakej libmcrypt-devel tidak dipasang Ralat yang berlaku biasanya disebabkan oleh kehilangan perpustakaan atau pakej.

Pada ketika ini PHP telah dikonfigurasikan, saya harap anda pemasangan yang lancar. By the way, saya mengucapkan Selamat Tahun Baru kepada anda semua terlebih dahulu!

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk menyusun dan memasang php5.6.31. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn