php5.6.31 컴파일 및 설치 방법: 1. epel 소스를 추가하고 php-5.6.31을 다운로드합니다. 2. 설치 패키지의 압축을 풀고 설치합니다. 3. php-fpm.conf를 수정합니다. 5, nginx 구성 파일을 편집하고 nginx 서비스를 다시 시작합니다.
이 기사의 운영 환경: 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
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
설치 전 준비
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 설치가 완료됩니다. 설치 과정은 시간이 좀 걸립니다.
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
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를 사용하여 구성 파일을 데스크탑에 공유하여 변경하십시오.
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 -s reload
앞서 언급했듯이 /usr/share/nginx/html은 Nginx 웹사이트의 루트 디렉터리입니다. 이 디렉터리에서 PHP 테스트 스크립트를 생성할 수 있습니다.
vi /usr/share/nginx/html/phpinfo.php
<?php phpinfo();// 测试信息?>
설치 과정을 따랐을 때 오류가 발생했습니다: mcrypt.h를 찾을 수 없습니다. libmcrypt를 다시 설치하세요
이것은 php-mcrypt, libmcrypt 및 libmcrypt-devel 패키지가 설치되지 않았기 때문입니다. 라이브러리나 패키지가 누락되면 즉시 설치할 수 있습니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 php5.6.31을 컴파일하고 설치하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!