>  기사  >  백엔드 개발  >  php5.6.31을 컴파일하고 설치하는 방법

php5.6.31을 컴파일하고 설치하는 방법

藏色散人
藏色散人원래의
2021-11-17 09:45:311770검색

php5.6.31 컴파일 및 설치 방법: 1. epel 소스를 추가하고 php-5.6.31을 다운로드합니다. 2. 설치 패키지의 압축을 풀고 설치합니다. 3. php-fpm.conf를 수정합니다. 5, nginx 구성 파일을 편집하고 nginx 서비스를 다시 시작합니다.

php5.6.31을 컴파일하고 설치하는 방법

이 기사의 운영 환경: CentOS 7 시스템, php5.6.31 버전, DELL G3 컴퓨터

php5.6.31을 컴파일하고 설치하는 방법은 무엇입니까?

CentOS 7 PHP5.6.31 컴파일 및 설치

서버에 이미 nginx와 mysql이 있어서 PHP+Nginx+mysql 조합을 사용하기로 했고 인터넷에서 많은 정보를 찾아봤습니다. , 저는 Linux와 PHP에 익숙하지 않기 때문에 이해하지만 PHP, nginx 및 mysql이 어떻게 관련되어 있는지 모르겠습니다(PHP가 잘못 설치되었거나 패키지가 설치되지 않았습니다). 나중에 배포하고 보니 이 셋이 분리되어 있는 것을 발견했습니다. 설치하려면(음~~함께 설치해도 되나요?) 설치 후 php만 설정하고, (php와 관련된) nginx만 설정하면 됩니다. 직접 실행할 수 있습니다. 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를 처리할 수 없으며 단지 웹 서버일 뿐입니다. 요청이 수신되면 PHP 인터프리터로 전송되어 처리됩니다. 결과가 클라이언트에 반환됩니다.

nginx는 일반적으로 처리를 위해 fastcgi 관리 프로세스에 요청을 보냅니다. fastcgi 관리 프로세스는 결과를 처리할 cgi 하위 프로세스를 선택하고 이를 nginx에 반환합니다.

PHP-FPM이란 무엇인가요? PHP-FPM은 PHP용 FASTCGI 관리자입니다. 새 버전에는 php-fpm이 통합되어 있으며, php-fpm은 더 나은 PHP 프로세스 관리를 제공하고, 메모리와 프로세스를 원활하게 다시 로드할 수 있습니다. 구성할 때 -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

Downloadphp-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. fpm 구성 파일

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

Modify php-fpm.conf

user = www
group = www

www 사용자가 존재하지 않는 경우 먼저 www 사용자를 추가하세요(기본 실행 사용자는 none)

groupadd www
useradd -g www www

이 단계에서 구성되지 않았습니다. php 파일을 열 때 서버에서 오류를 보고합니다

"찾고 있는 페이지를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오"

Modify

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.

Execute

/usr/local/php/sbin/php-fpm
다음 명령을 사용하여 양성을 확인합니다(이 명령의 출력에 여러 개의 php-fpm 프로세스가 있으면 시작이 성공한 것입니다).

ps aux | grep php-fpm
결과는 아래와 같습니다.

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를 사용하여 구성 파일을 데스크탑에 공유하여 변경하십시오.

3개만 변경하면 됩니다

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
편집기를 연 후

e2fef49b76a02e58cb8a935d1457623a
를 입력하세요저장 후 종료 후 브라우저에 http://192.168.0.222/phpinfo.php를 입력하세요. 저는 IP가 192.168.0.222 입니다. 본인의 IP로 변경하시면 됩니다. 그림과 같이 다음과 유사한 인터페이스가 나타납니다.


Nginx 및 php가 구성되었습니다.

4. 설치 과정에서 오류가 발생하는 이유

설치 과정을 따랐을 때 오류가 발생했습니다: mcrypt.h를 찾을 수 없습니다. libmcrypt를 다시 설치하세요

이것은 php-mcrypt, libmcrypt 및 libmcrypt-devel 패키지가 설치되지 않았기 때문입니다. 라이브러리나 패키지가 누락되면 즉시 설치할 수 있습니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 php5.6.31을 컴파일하고 설치하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.