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

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

藏色散人
藏色散人원래의
2022-01-21 10:42:482016검색

php5.6.31을 컴파일하고 설치하는 방법: 1. epel 소스를 추가합니다. 2. 종속 항목을 설치합니다. 3. php5.6.31을 다운로드하고 압축을 풉니다. 4. php-fpm을 시작합니다.

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

이 글의 운영 환경: CentOS 7 시스템, php 버전: 5.6.31 nginx 버전: 1.7.3 mysql 버전: 5.6.62, DELL G3 컴퓨터

php5.6.31 컴파일 및 설치 방법 ?

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 개발 라이브러리를 설치해야 합니다. 여기서는 모두 참조 링크에 설명하지 않겠습니다.

PHP 설치 구성

nginx 자체는 PHP를 처리할 수 없습니다. 이는 단지 웹 서버일 뿐입니다. 요청이 수신되면 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

수정 php-fpm.conf

user = www
group = www

www 사용자가 없으면 먼저 www 사용자를 추가하세요(기본 실행 사용자는 없음)

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. php-fpm을 시작하세요

Execute

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

다음을 사용하세요. 확인하기 위한 명령(이 명령의 출력이 올바른지 몇 가지 php-fpm 프로세스가 시작에 성공한 것으로 나타남):

ps aux | grep php-fpm

결과는 다음과 같습니다.

3.Integration of nginx and 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 {
        }
    }
}

us 구성을 변경하려면 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 인데, 변경하시면 됩니다. 그림과 같이 다음과 유사한 인터페이스가 나타납니다.

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

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

과정대로 설치했는데 mcrypt.h를 찾을 수 없다는 오류가 발생했습니다. libmcrypt를 다시 설치하세요

이유는 php-mcrypt libmcrypt libmcrypt-devel 패키지가 설치되지 않았으며 오류는 모두 누락된 라이브러리 또는 패키지이므로 설치하면 됩니다.

이제 PHP가 구성되었습니다. 원활한 설치를 기원합니다. 그건 그렇고, 미리 모두 새해 복 많이 받으세요!

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

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

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