安装nginx参考之前的文章
安装php依赖包
yum -y install gcc gcc++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc-devel glib2 glib2-devel
下载 php ,这里下载 php-5.6,原因:LNMP 环境中的 nginx 是不支持 php 的,需要通过fastcgi 插件来处理有关 php 的请求。而 php 需要 php-fpm 这个组件提供该功能。在php5.3.3 以前的版本 php-fpm 是以一个补丁包的形式存在的,而 php5.3.3 以后只需在编译安装时使用 --enable-fpm 加载该模块即可,无需另行安装。
创建安装目录:
mkdir /program/php
web目录:
mkdir /program/php/webapps
配置文件目录:
mkdir /program/php/conf
解压php源码:
tar -xzvf php-5.6.40.tar.gz
进入源码目录,检查程序并修改配置,安装目录/program/php,配置文件读取目录/program/php/conf :
./configure --prefix=/program/php --with-config-file-path=/program/php/conf --enable-fpm --enable-pcntl --enable-mysqlnd --enable-opcache --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-shmop --enable-zip --enable-ftp --enable-soap --enable-xml --enable-mbstring --disable-rpath --disable-debug --disable-fileinfo --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pcre-regex --with-iconv --with-zlib --with-gd --with-openssl --with-mhash --with-xmlrpc --with-curl --with-imap-ssl
报错提示:
缺少openssl
yum install openssl openssl-devel
再configure报错:
执行命令:
yum install curl curl-devel
config成功,执行编译,时间会比较长:
make
安装:
make install
将源码中的php全局配置文件 php.ini-production 线上版复制到前面配置的conf目录,改名为php.ini:
cp php.ini-production /program/php/conf/php.ini
将 php 安装目录 bin 下的 php 和 phpize 和 sbin 下的 php-fpm 执行命令加入 path 环境变量:
vi /etc/profile.d/php.sh
添加内容:
PHP_HOME=/program/php #php 安装路径
PATH=$PHP_HOME/sbin:$PHP_HOME/bin:$PATH
export PHP_HOME PATH
添加权限
chmod 755 /etc/profile.d/php.sh
生效:
source /etc/profile
查看安装版本:
php --version
进入配置目录,修改配置文件 php.ini 中的 cgi.fix_pathinfo=0,避免恶意脚本注入的攻击,去掉注释改为0,vi 编辑,输入 /cgi.fix_pathinfo 回车搜索:
cgi.fix_pathinfo=0
进入安装目录的 etc 目录下面,复制默认配置文件,:
cp php-fpm.conf.default php-fpm.conf
修改 etc/php-fpm.conf 配置文件,去掉注释,分号是注释
pid = run/php-fpm.pid
php-fpm.conf 是关键配置,
检查 php-fpm 配置,和 nginx 一样,php-fpm -t
没毛病,可以看出,php-fpm 读取的是我们自定义安装目录下面的 etc 下的 php-fpm.conf 文件,这就是为什么复制并修改 php-fpm.conf.default 的文件名,改配置文件还可以修改端口号等配置,默认是9000,
检查端口占用:
netstat -tunlp |grep 9000
启动 php:
php-fpm
配置nginx
我这里用的源码安装的 nginx,同样也在 /program 目录,给nginx 添加一个server,复制默认配置中的php配置:
修改:
server{
nginx -t 检查nginx配置是否错误,正常执行 nginx -s reload 重载配置文件
在配置的 webapps 目录创建 index.php,添加内容:
<?php
echo phpinfo();
?>
访问测试:
服务器地址:nginx监听端口/index.php
如:http:192.168.58.3/index.php
成功