一、Nginx编译安装
cd /usr/local/src #将安装包下载到/usr/local/src目录下
wget http://nginx.org/download/nginx-1.9.9.tar.gz #下载,可在http://nginx.org/download/查看选择版本
tar zxvf nginx-1.9.9.tar.gz #解压缩
cd nginx-1.9.9 #进入解压后的nginx目录
./configure --prefix=/usr/local/nginx #将nginx安装到/usr/local目录下, 注意这一步有错的话,根据提示安装需要的库、如果说 nothing to do, 就安装该库的 -devel版本
make && make install #编译、安装
./sbin/nginx #启动nginx
二、MySQL安装
yum install mysql mysql-devel mysql-server
三、PHP编译安装
wget http://cn2.php.net/get/php-7.2.10.tar.gz/from/this/mirror #下载php镜像, 将下载为mirror文件
tar zxvf mirror #解压
./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mcrypt=/usr/include --with-mhash --with-openssl --with-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-redis --enable-fpm --enable-fastcgi --without-gdbm --disable-fileinfo #将php安装到/usr/local/php目录下,添加一些支持.注意这一步有错的话,根据提示安装需要的库、如果说 nothing to do, 就安装该库的 -devel版本
make && make install #编译、安装
cp php.ini-development php.ini-production #将开发配置备份/复制一份为生产配置。如果已存在php.ini-production可不需要这一步
cd /usr/local/php #进入php目录
cp /usr/local/src/php-7.2.10/php.ini-production ./lib/php.ini #将生产配置复制到实际运行目录
cp ./etc/php-fpm.conf.default ./etc/php-fpm.conf #将php-fpm默认配置复制一份为实际运行生效的配置
cp www.conf.default www.conf #将www.conf默认配置复制一份为实际运行生效的配置
ln -s /usr/local/php/bin/php /usr/bin/php #创建软链接
./sbin/php-fpm #启动php
四、配置Nginx,以支持PHP
groupadd nginx #创建nginx用户组。
useradd nginx -g nginx -s /sbin/nologin -M #创建nginx用户,让其属于nginx用户组(-g nginx) ,该用户无法登录(-s /sbin/nologin),不创建它的家目录(-M)
cd /usr/local/src/nginx-1.9.9 #重新进入nginx源目录
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx #重新执行配置, 指定执行的用户主和用户组
make && make install #重新编译安装nginx
cd /usr/local/nginx #进入nginx安装目录
vim conf/nginx.conf
//修改如下:
1.修改nginx用户:顶部的 user nobody 改为 user nginx nginx, 并去掉注释,
2.使nginx识别.php文件入口文件:server模块 中
location / {
root html; #定义服务器的默认网站根目录位置
index index.html index.htm; #定义首页索引文件的名称
}
改为:
location / {
root html;
index index.html index.htm index.php;
}
3.使php请求被传送到后端的php-fpm模块,去掉相关注释,并修改fastcgi进程要解析的脚本路径:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #这句要改成下面这句
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
/usr/local/nginx/sbin/nginx -s stop #停止nginx服务
/usr/local/nginx/sbin/nginx #重新启动nginx服务
五、测试
cd /usr/local/nginx/html #进入html目录
mv index.html index.html_defaut #使index.html失效
vim index.php #新建index.php文件,并编写内容
测试 内容如下:
<?php
echo "Hello NRatel ! <br>";
echo "Hello Nginx ! <br>";
echo "Hello PHP ! <br>";
?>
浏览器中运行结果: