专栏首页野路子程序员Centos7+Nginx+PHP 基础WEB运行环境手工部署

Centos7+Nginx+PHP 基础WEB运行环境手工部署

Centos7+nginx+php(php-fpm)基础web运行环境手工部署

准备工作

1.安装编译支持库

yum -y install gcc automake autoconf libtool make

yum install gcc gcc-c++

2.安装PCRE

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
tar -xzf pcre-8.40.tar.gz -C ./
cd pcre-8.40
./configure --prefix=/usr/local/pcre
make && make install
cd ..

3.安装zlib

wget http://zlib.net/zlib-1.2.11.tar.gz
tar -xzf zlib-1.2.11.tar.gz -C ./
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make && make install
cd ..

4.安装openssl

wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar -xzf openssl-1.0.2k.tar.gz -C ./
#注意,这里不需要进行安装,后面步骤省略。

安装nginx

官方下载 http://nginx.org/en/download.html

wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar -xzf nginx-1.12.0.tar.gz  -C ./
cd nginx-1.12.0

./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/mnt/tools/pcre-8.40/ \
--with-zlib=/mnt/tools/zlib-1.2.11/ \
--with-openssl=/mnt/tools/openssl-1.0.2k/

#注:cpre、zlib、openssl等依赖包的路径是解压的源码路径不是安装后的路径。

make
make install

安装PHP

安装依赖扩展

yum install -y libxml2-devel openssl-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel openldap-devel

官网下载 http://php.net/releases/index.php

官网安装文档 http://php.net/manual/zh/install.unix.nginx.php

wget http://php.net/get/php-5.6.29.tar.gz/from/this/mirror -O php-5.6.29.tar.gz
tar -xzf php-5.6.29.tar.gz -C ./
cd php-5.6.29
./configure --prefix=/usr/local/php/php5.6.29/\
 --with-config-file-path=/usr/local/php/php5.6.29/\
 --with-libdir=lib64\
 --enable-fpm\
 --with-fpm-user=php-fpm\
 --with-fpm-group=www\
 --enable-mysqlnd\
 --with-mysql=mysqlnd\
 --with-mysqli=mysqlnd\
 --with-pdo-mysql=mysqlnd\
 --enable-opcache\
 --enable-pcntl\
 --enable-mbstring\
 --enable-soap\
 --enable-zip\
 --enable-calendar\
 --enable-bcmath\
 --enable-exif\
 --enable-ftp\
 --enable-intl\
 --with-openssl\
 --with-zlib\
 --with-curl\
 --with-gd\
 --with-zlib-dir=/usr/lib\
 --with-png-dir=/usr/lib\
 --with-jpeg-dir=/usr/lib\
 --with-gettext\
 --with-mhash\
 --with-ldap

make && make install

配置文件

创建PHP配置文件

#创建配置文件
cd /usr/local/php/php-5.6.29/
cp php.ini-development /usr/local/php/php5.6.29/php.ini
cp /usr/local/php/php5.6.29/etc/php-fpm.conf.default /usr/local/php/php5.6.29/etc/php-fpm.conf

#复制php-fpm管理器脚本
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

修改配置文件

vi /usr/local/php/php5.6.29/php.ini
#需要着重提醒的是,如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 
#以避免遭受恶意脚本注入的攻击。
#定位到 cgi.fix_pathinfo= 并将其修改为如下所示:

cgi.fix_pathinfo=0

创建php-fpm运行用户,可通过配置查看当前配置用户及组名。

vi /usr/local/etc/php-fpm.conf

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used. 
user = php-fpm
group = www


#创建用户
useradd -s /sbin/nologin -M php-fpm 
#创建组
groupadd www

通过php-fpm脚本,启动php服务(停止、重启、重载)。

service php-fpm start
service php-fpm restart
service php-fpm stop
service php-fpm reload

配置nginx,使其支持PHP应用。

vi /usr/local/nginx/nginx.conf

修改默认的 location 块,使其支持 .php 文件:

        location / {
            root   html;
            index  index.php index.html index.htm;
        }

下一步配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  SCRIPT_NAME $fastcgi_script_name;
            include        fastcgi_params;
        }

测试运行

重启 Nginx

/usr/local/nginx/nginx -s stop
/usr/local/nginx/nginx
#注意前面应该启动 php-fpm ,如:service php-fpm start
echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/index.php

访问 http://www.example.com 已经成功。

本文注意细节已经在过程步骤中说明,留意查看。如有疑问,请在文末留言,谢谢。

更多关于nginx、apache等web服务环境部署及生成环境部署优化,欢迎关注本博客文章。

续篇文章

Centos7+Nginx+PHP 基础WEB运行环境-多虚拟主机配置

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP错误日志,解决不显示不记录日志文件等疑难杂症

    Eller
  • 徒手解剖composer,简单了解其实现过程

    Eller
  • 【CentOS】Apache多虚拟主机多版本PHP(5.3+5.6+N)共存运行配置全过程

    Eller
  • Winows + VSCode + Debug PHP

    下载地址:https://code.visualstudio.com/Download

    悟空聊架构
  • 如何将wordpress的the_title()进行大小写处理

      有时我们在做wordpress网站时需要将标题的大写字母改成小写字母或小写字母转为大写字母方便调用,那么要如何改造呢?我们知道Wordpress the_t...

    ytkah
  • PHP-实战新闻模块

    2、在inc下创建conn.php文件,用来连接数据库,代码就是上面连接数据库的代码

    cwl_java
  • yum安装新版php7.0

    这两天又装了一下虚拟机,又要编译lnmp,还要弄各种拓展,很麻烦,能不能直接yum安装呢?答案是可以的!

    逐梦的青春
  • 新手微擎 --- 框架整体认知

    首先贴出微擎根目录各文件夹、文件的大致含义(写的有点乱,仔细看还是能看懂的,O(∩_∩)O):

    双面人
  • Spiral 详细上手指南之安装与配置

    在上一篇《Spiral: 一个性能卓越的PHP/Golang混合开发框架》 中,我介绍了 Spiral 这个基于 PHP/Golang 的高性能混合开发框架,这...

    小李刀刀
  • 宿舍报修系统基于易班开发平台版本开源

    0、使用前需要将本目录下的sql文件导入数据库,注意,需支持utf8mb4编码推荐数据库版本mysql5.6

    雨落凋殇

扫码关注云+社区

领取腾讯云代金券