CentOS 7 安装 Nginx、PHP7、PHP-FPM

安装 nginx
CentOS 7 没有内建的 nginx,所以先到 nginx 官网  http://nginx.org/en/linux_packages.html#stable ,找到 CentOS 7 的 nginx-release package 档案连结,然后如下安装
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装后,会自动产生 yum 的 repository 设定(在 /etc/yum.repos.d/nginx.repo),
接下来便可以使用 yum 指令安装 nginx
yum install nginx
启动 nginx
以前用 chkconfig 管理服务,CentOS 7 改用 systemctl 管理系统服务
立即启动
systemctl start nginx
查看目前运作状态
systemctl status nginx
查看 nginx 服务目前的启动设定
systemctl list-unit-files | grep nginx
若是 disabled,可以改成开机自动启动
systemctl enable nginx
若有设定防火强,查看防火强运行状态,看是否有开启 nginx 使用的 port
firewall-cmd --state
永久开放开启防火强的 http 服务
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
列出防火强 public 的设定
firewall-cmd --list-all --zone=public
经过以上设定,应该就可以使用浏览器访问 nginx 的预设页面。
安装 PHP-FPM
使用 yum 安装 php、php-fpm、php-mysql
yum install php php-fpm php-mysql
查看 php-fpm 服务目前的启动设定
systemctl list-unit-files | grep php-fpm
改成开机自动启动
systemctl enable php-fpm
立即启动
systemctl start php-fpm
查看目前运作状态
systemctl status php-fpm
修改 PHP-FPM listen 的方式
若想将 PHP-FPM listen 的方式,改成 unix socket,可以编辑 /etc/php-fpm.d/www.conf

listen = 127.0.0.1:9000
改成
listen = /var/run/php-fpm/php-fpm.sock
然后重新启动 php-fpm
systemctl restart php-fpm
注:不要改成 listen = /tmp/php-fcgi.sock (将 php-fcgi.sock 设定在 /tmp 底下), 因为系统产生 php-fcgi.sock 时,会放在 /tmp/systemd-private-*/tmp/php-fpm.sock 随机私有目录下, 除非把 /usr/lib/systemd/system/ 里面的 PrivateTmp=true 设定改成 PrivateTmp=false, 但还是会产生其他问题,所以还是换个位置最方便

删除之前的版本

# yum remove php*

rpm 安装 Php7 相应的 yum源

CentOS/RHEL 7.x:

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
CentOS/RHEL 6.x:
# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

yum安装php7

yum install php70w php70w-opcache
安装其他插件(选装)
注:如果安装pear,需要安装php70w-devel
php70w
php70w-bcmath
php70w-cli
php70w-common
php70w-dba
php70w-devel
php70w-embedded
php70w-enchant
php70w-fpm
php70w-gd
php70w-imap
php70w-interbase
php70w-intl
php70w-ldap
php70w-mbstring
php70w-mcrypt
php70w-mysql
php70w-mysqlnd
php70w-odbc
php70w-opcache
php70w-pdo
php70w-pdo_dblib
php70w-pear
php70w-pecl-apcu
php70w-pecl-imagick
php70w-pecl-xdebug
php70w-pgsql
php70w-phpdbg
php70w-process
php70w-pspell
php70w-recode
php70w-snmp
php70w-soap
php70w-tidy
php70w-xml
php70w-xmlrp

编译安装php7
配置(configure)、编译(make)、安装(make install)

使用configure --help

编译安装一定要指定定prefix,这是安装目录,会把所有文件限制在这个目录,卸载时只需要删除那个目录就可以,如果不指定会安装到很多地方,后边删除不方便。

Configuration: --cache-file=FILE       cache test results in FILE --help                  print this message --no-create             do not create output files --quiet, --silent       do not print `checking...' messages --version               print the version of autoconf that created configure Directory and file names: --prefix=PREFIX         install architecture-independent files in PREFIX [/usr/local] --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
注意
内存小于1G安装往往会出错,在编译参数后面加上一行内容--disable-fileinfo

其他配置参数

--exec-prefix=EXEC-PREFIX
可以把体系相关的文件安装到一个不同的位置,而不是PREFIX设置的地方.这样做可以比较方便地在不同主机之间共享体系相关的文件
--bindir=DIRECTORY
为可执行程序声明目录,缺省是 EXEC-PREFIX/bin
--datadir=DIRECTORY
设置所安装的程序需要的只读文件的目录.缺省是 PREFIX/share
--sysconfdir=DIRECTORY
用于各种各样配置文件的目录,缺省为 PREFIX/etc
--libdir=DIRECTORY
库文件和动态装载模块的目录.缺省是 EXEC-PREFIX/lib
--includedir=DIRECTORY
C 和 C++ 头文件的目录.缺省是 PREFIX/include
--docdir=DIRECTORY
文档文件,(除 “man(手册页)”以外, 将被安装到这个目录.缺省是 PREFIX/doc
--mandir=DIRECTORY
随着程序一起带的手册页 将安装到这个目录.在它们相应的manx子目录里. 缺省是PREFIX/man
注意: 为了减少对共享安装位置(比如 /usr/local/include) 的污染,configure 自动在 datadir, sysconfdir,includedir, 和 docdir 上附加一个 “/postgresql” 字串, 除非完全展开以后的目录名字已经包含字串 “postgres” 或者 “pgsql”.比如,如果你选择 /usr/local 做前缀,那么 C 的头文件将安装到 /usr/local/include/postgresql, 但是如果前缀是 /opt/postgres,那么它们将 被放进 /opt/postgres/include
--with-includes=DIRECTORIES
DIRECTORIES 是一系列冒号分隔的目录,这些目录将被加入编译器的头文件 搜索列表中.如果你有一些可选的包(比如 GNU Readline)安装在 非标淮位置,你就必须使用这个选项,以及可能还有相应的 --with-libraries 选项.
--with-libraries=DIRECTORIES
DIRECTORIES 是一系列冒号分隔的目录,这些目录是用于查找库文件的. 如果你有一些包安装在非标淮位置,你可能就需要使用这个选项 (以及对应的--with-includes选项)
--enable-XXX
打开XXX支持
--with-XXX
制作XXX模块

PHP FPM设定参考
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
[www]
listen = /var/run/php-fpm/php-fpm.sock
user = www
group = www
pm = dynamic
pm.max_children = 800
pm.start_servers = 200
pm.min_spare_servers = 100
pm.max_spare_servers = 800
pm.max_requests = 4000
rlimit_files = 51200

listen.backlog = 65536
;设 65536 的原因是-1 可能不是unlimited
;说明 http://php.net/manual/en/install.fpm.configuration.php#104172

slowlog = /usr/local/php/var/log/slow.log
request_slowlog_timeout = 10
nginx.conf 设定参考
user  nginx;
worker_processes  8;
error_log  /var/log/nginx/error.log warn;
pid  /var/run/nginx.pid;
events {
  use epoll;
  worker_connections  65535;
}
worker_rlimit_nofile 65535;
#若没设定,可能出现错误:65535 worker_connections exceed open file resource limit: 1024
http {
  include    /etc/nginx/mime.types;
  default_type  application/octet-stream;
  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  /var/log/nginx/access.log  main;
  sendfile  on;
  tcp_nopush  on;
  keepalive_timeout  65;
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
  server_tokens  off;
  client_body_buffer_size  512k;
  # fastcgi
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  fastcgi_intercept_errors on;
  #gzip (说明 http://nginx.org/en/docs/http/ngx_http_gzip_module.html)
  gzip  off;
  gzip_min_length  1k;#1k以上才压缩
  gzip_buffers 32  4k;
    #http://stackoverflow.com/questions/4888067/how-to-get-linux-kernel-page-size-programatically
    #使用 getconf PAGESIZE 取得系统 one memory page size,
  gzip_http_version  1.0;
  gzip_comp_level  2;
  gzip_types  text/css text/xml application/javascript application/atom+xml application/rss+xml text/plain application/json;
    #查看 nginx 的 mime.types 档案(/etc/nginx/mime.types),里面有各种类型的定义
  gzip_vary  on;
  include /etc/nginx/conf.d/*.conf;
}
若出现出现错误:setrlimit(RLIMIT_NOFILE, 65535) failed (1: Operation not permitted)
先查看目前系统的设定值
ulimit -n
若设定值太小,修改 /etc/security/limits.conf
vi /etc/security/limits.conf
加上或修改以下两行设定
* soft nofile 65535
* hard nofile 65535

时间: 2024-11-10 00:16:14

CentOS 7 安装 Nginx、PHP7、PHP-FPM的相关文章

CentOS下安装Nginx并添加nginx_upload_module

安装前,最好能保证依赖的系统软件已经升级.    yum update CentOS上安装Nginx,如果只是简单安装,不附加其他第三方模块,一句话可以搞定:    yum install nginx 但是如果需要添加第三方的module则需要下载源码并重新编译安装了.(也可能有简单方法,本人不知,如果真有,还请路过的高人指点.) 我这里要添加两个第三方模块,用来作文件上传和上传进度条nginx_upload_module和nginx-upload-progress-module. 这里需要安装

centos yum安装nginx 提示 No package nginx available问题解决方法

问题原因:   nginx位于第三方的yum源里面,而不在centos官方yum源里面   解决方法:   安装epel(Extra Packages for Enterprise Linux) a.去epel网站 http://fedoraproject.org/wiki/EPEL下载 b.我的系统是centos5.7,cpu是x86_64,所以我下载的是wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.no

CentOS中安装nginx与socks5代理服务器dante-server方法

通常我们在CentOS里可以使用 yum install nginx来安装nginx.但是通常安装的nginx不是最新的,那么如何才能用yum安装最新版本的nginx呢? 1.编辑 /etc/yum.repos.d/nginx.repo 文件,写入以下内容:  代码如下 复制代码 [nginx] name=nginx repo baseurl=http://nginx.org/packages/CentOS/5/$basearch/ gpgcheck=0 enabled=1 如果你是使用RHEL

[CentOS 7] 安装nginx

下载对应当前系统版本的nginx包(package) # wget  http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm   建立nginx的yum仓库 # rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm   下载并安装nginx # yum install nginx   启动nginx服务 systemct

CentOS 6安装Nginx

 一,安装依赖模块              yum install gcc yum install g++ yum install openssl openssl--devel yum install zlib zlib-devel yum install pcre pcre-devel  yum -y install gcc-c++ 二,安装nginx  首先进入软件安装目录:           cd /usr/local 1,下载nginx-sticky插件   wget http://

CentOS YUM 安装 Nginx PHP

一,由于yum源中没有我们想要的nginx,那么我们就需要创建一个"/etc/yum.repos.d/nginx.repo"的文件,其实就是新增一个yum源. [root@niaoyun~]# vim /etc/yum.repos.d/nginx.repo 然后将下面的内容复制进去: [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 ena

CentOS下安装nginx以及端口配置教程

在nginx官网上找到支持信息: Currently, nginx packages are available for the following distributions and versions: RHEL/CentOS: Version Supported Platforms 5.x x86_64, i386 6.x x86_64, i386 7.x x86_64 Debian: Version Codename Supported Platforms 6.x squeeze x86_

centos系统编译安装nginx+php环境另加独立mysql教程

  前端(nginx+php)ip:192.168.10.8 后端(独立mysql)ip:192.168.10.5 软件版本:libiconv-1.14.tar.gz mysql-5.1.63.tar.gz php-5.2.17.tar.gz php-5.2.17-fpm-0.5.14.diff.gz php-5.2.17-max-input-vars.patch 1.先在后端安装mysql 在192.168.10.5上只安装mysql.方法可以去看centos编译安装nginx+php-fpm

CentOS 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)

CentOS 下安装 LEMP 服务(nginx.MariaDB/MySQL 和 php) LEMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作用.正如其名称所暗示的, LEMP 包是由 Linux.nginx.MariaDB/MySQL 和 PHP 组成的.在传统的 LAMP 包中使用的 Apache HTTP 协议服务器性能低下而且难于大规模集群,相比来说 nginx 的高性能及轻量级等特性,正是其的替代方案. MariaDB 是一款社区支持驱动