最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Linux CentOS7.2源码编译搭建LNMP环境

XAMPP教程 admin 128浏览 0评论
  1. 关闭selinux,关闭防火墙
    原因:
    (1)selinux确实可以提高服务器的安全性,但是对于服务器的性能存在一定的影响,同时,它的复杂规则对于管理人员来说非常头疼,所以暂时关闭掉,非要开启也是可以的;
    (2)关闭防火墙是为了让初学者学习更加方便,如果你防火墙技术好也可以开启防火墙。在生产环境中,只有配置了外网IP的服务器才会开启防火墙,但是即使是外网IP,一般情况下也不会轻易地开启防火墙,高并发、高流量的业务服务器仍然不能开启防火墙,防火墙对性能存在一定的损耗,集群环境下的服务器防火墙一般都是关闭的。案例性可以借助硬件防火墙等设备进行提高,而且,现在机房的网络整体架构都依托于物理防火墙。
  2. 安装完成系统后进行软件升级
    centos6:
service iptables stop		——临时关闭防火墙
chkconfig iptables off	——永久关闭防火墙

centos7:

systemctl stop firewalld.service					——临时关闭防火墙
systemctl disable firewalld.service				——禁止防火墙开机自启

更新软件包:
yum update -y
3. 精简系统开机启动项
一般情况下,服务器刚装完系统后有必要保留的开机启动服务只有5个,具体如下:
(1)sshd:远程连接ssh
(2)rsyslog:日志相关文件,操作系统本身提供的一种机制
(3)network:服务器网络服务
(4)crond:定时任务
(5)sysstat:服务器性能检测工具,收集服务器运行数据,判断运行是否正常
4. 安装make和g++(C语言编译器)
#yum -y install gcc automake autoconf libtool make
drg79
#yum install gcc gcc-c++ glibc
drg079
5. 创建安装目录
本人是在阿里云服务器上安装,所以在服务器根目录下创建alidata目录,然后在alidata目录里面分别创建server目录、webapps目录和package目录,其中server目录存放所有的服务器软件(本文中所涉及到的nginx、php、mysql等),webapps目录存放所有部署的代码及程序,package目录用来存放安装过程中需要用到的编译后的库文件。
需以root权限,依次执行以下命令:

mkdir /alidata
mkdir /alidata/package
mkdir –p /alidata/server
mkdir –p /alidata/webapps
mkdir –p /alidata/logs

这里需要说明,上述的server目录,是指环境安装完成后,运行程序所在的目录,并非nginx等程序的源码存放目录,为了方便,本文将下载到的这些运行环境程序的源码统一存放于/root目录下,读者可根据自身情况及喜好,将运行环境程序源码存放于任意不是/alidata/server的目录下。
6. 安装Nginx
(1)下载并解压pcre

cd /root/
wget https://sourceforge.net/projects/pcre/files/pcre/8.41/pcre-8.41.tar.gz
tar -zxvf pcre-8.41.tar.gz

(2)下载并解压zlib

cd /root/
wget https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz

(3)下载并解压openssl

cd /root/
wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz
tar -zxvf openssl-1.1.0b.tar.gz

(4)为nignx添加用户及组
nignx的工作进程需要以某一个用户的权限进行运行,为了服务器安全,一般指定一个普通用户权限的帐号作为nginx的运行角色,根据个人习惯,这使用robin用户作为nginx工作进程的用户,后续安装的php也以robin用户作为工作进程用户,依次执行以下命令以创建用户及用户组

groupadd -r robin
useradd -r -g robin robin

(5)下载并安装nginx

cd /root/
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar –zxvf nginx-1.12.2.tar.gz

以上命令完成下载和解压操作,接下来进行安装操作

cd nginx-1.12.2/
./configure --prefix=/alidata/server/nginx-1.12.2 --sbin-path=/alidata/server/nginx-1.12.2/sbin/nginx --conf-path=/alidata/server/nginx-1.12.2/nginx.conf --pid-path=/alidata/server/nginx-1.12.2/nginx.pid --user=robin --group=robin --with-http_ssl_module --with-http_flv_module --with-http_mp4_module  --with-http_stub_status_module --with-select_module --with-poll_module --error-log-path=/alidata/logs/nginx/error.log --http-log-path=/alidata/logs/nginx/access.log  --with-pcre=/root/pcre-8.41 --with-zlib=/root/zlib-1.2.11 --with-openssl=/root/openssl-1.1.0b
make
make install

其中,./configure是对安装进行配置;
–prefix表示nginx要安装到哪个路径下,这里指定刚才新建好的/alidata/server目录下的nginx-1.12.2;
–sbin-path表示nginx的可执行文件存放路径
–conf-path表示nginx的主配置文件存放路径,nginx允许使用不同的配置文件启动,通过命令行中的-c选项
–pid-path表示nginx.pid文件的存放路径,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid

  •  –error-log-path表示nginx的主错误、警告、和诊断文件存放路径 –http-log-path表示nginx的主请求的HTTP服务器的日志文件的存放路径
  •  –user表示nginx工作进程的用户
  •  –group表示nginx工作进程的用户组
  •  –with-select_module或–without-select_module表示启用或禁用构建一个模块来允许服务器使用select()方法
  •  –with-poll_module或–without-poll_module表示启用或禁用构建一个模块来允许服务器使用poll()方法
  •  –with-http_ssl_module表示使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的
  •  –with-pcre表示pcre的源码路径,因为解压后的pcre是放在root目录下的,所以是/root/pcre-8.41;
  •  –with-zlib表示zlib的源码路径,这里因为解压后的zlib是放在root目录下的,所以是/root/zlib-1.2.11
  •  –with-openssl表示openssl库的源码路径

配置成功后,依次执行make和make install命令,即可安装Nginx,安装成功后,可以看到在/alidata/server目录下,多出了一个nginx-1.12.2,里面即是nginx的实际运行程序。
(6)设置nginx配置文件
本文配置的nginx支持多域名,每个域名的配置文件单独放在/alidata/server/nginx-1.12.2/路径下,使用vim命令打开nginx.conf文件,对其内容进行修改:

user  robin robin;
worker_processes  2;

error_log  /alidata/logs/nginx/error.log crit;

pid        /alidata/server/nginx-1.12.2/logs/nginx.pid;
worker_rlimit_nofile 65535;

events {
    use epoll;
    worker_connections  65535;
}

http {
    include       mime.types;
default_type  application/octet-stream;

access_log  /alidata/logs/nginx/access.log  main;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;

sendfile        on;
tcp_nopush     on;

keepalive_timeout  65;

gzip  on;
gzip_min_length  1k;
gzip_buffers     4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_vary on;

tcp_nodelay on;

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;

log_format '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" "$http_x_forwarded_for"';

include /alidata/server/nginx-1.12.2/conf/vhosts/*.conf;
include /alidata/server/nginx-1.12.2/conf/proxy/*.conf;
}

上述配置中,引用了/alidata/server/nginx-1.12.2/conf/vhosts/目录下所有后缀名是.conf的配置文件,现在进入该目录编写一个默认配置文件default.conf,其内容是:

server {
    listen       80;
    server_name  localhost;
    index index.html;
    root /alidata/webapps;
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires 30d;
    }
    location ~ .*\.(js|css)?$
    {
        expires 1h;
    }
    #伪静态规则
    include /alidata/server/nginx-1.12.2/conf/rewrite/default.conf;
    access_log  /alidata/logs/nginx/access/default.log;
    error_log /alidata/logs/nginx/error/default.log;
}

其中引入了一个/alidata/server/nginx-1.12.2/conf/rewrite/default.conf文件,这个文件是用来编写rewrite规则的配置文件,用来实现伪静态,其内容是:

rewrite ^(.*)-htm-(.*)$ $1.php?$2 last;
rewrite ^(.*)/simple/([a-z0-9\_]+\.html)$ $1/simple/index.php?$2 last;
rewrite ^(.*)/data/(.*)\.(htm|php)$ 404.html last;
rewrite ^(.*)/attachment/(.*)\.(htm|php)$ 404.html last;
rewrite ^(.*)/html/(.*)\.(htm|php)$ 404.html last;

(7)启动nginx
/alidata/server/nginx-1.12.2/sbin/nginx
若报错关于nginx.pid文件,则去对应目录下创建nginx.pid文件
启动后,使用命令:

ps aux | grep nginx

drg0079
(8)加入系统环境变量
使用vim命令打开/etc/profile文件,在文件最末尾加上如下代码

export NGINX_HOME=/alidata/server/nginx-1.12.2
export PATH=$PATH:$NGINX_HOME/sbin

保存修改后,使用source命令重新加载配置文件,命令如下:

source /etc/profile

执行上述命令后,可使用

echo $PATH

命令查看环境变量中是否已经加入了相关路径:
drg00079
(9)加入系统服务
使用vim命令在/etc/init.d/目录下创建一个nginx文件,命令如下:

vim /etc/init.d/nginx

文件内容如下:

#!/bin/bash
# chkconfig: - 85 15
PATH=/alidata/server/nginx-1.12.2
DESC="nginx daemon"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
$DAEMON -s stop || echo -n "nginx not running"
}
do_reload() {
$DAEMON -s reload || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0

其中,需要注意几个变量,分别是PATH、NAME、DAEMON、CONFIGFILE、PIDFILE、SCRIPTNAME,其中,PATH设置为nginx的安装路径,DAEMON设置为nginx启动脚本的路径,CONFIGFILE是nginx.conf文件的路径,PIDFILE是进程文件的路径,需要与nginx.conf文件中的配置一致,SCRIPTNAME则是要指向当前文件路径/etc/init.d/nginx
将上述文件保存后,一定要记得给其赋予可执行的权限,具体命令如下:

chmod +x /etc/init.d/nginx

至此,我们已将nginx加入了系统服务,由于本文描述的实在CentOS 7环境下安装,所以与CentOS 6不同的是,不再使用类似于:

service nginx start

这样的命令来开启或者关闭服务,而是使用如下命令开启和关闭服务:

/bin/systemctl start nginx
/bin/systemctl stop nginx
/bin/systemctl reload nginx

若此时无法执行以上命令,首先要确认之前打开的nginx进程已被杀死,其次可以尝试先执行:

systemctl enable nginx

然后再执行上述三个命令。
(10)设置nginx开机自启动
经过上面的操作,nginx已被添加为系统服务,所以可以将其设置为开机自启动,这样就可以避免每次服务器重启之后需要手动开启nginx的操作,具体命令如下:

chkconfig --add nginx
chkconfig nginx on

或者

systemctl enable nginx
  1. 安装php
    (1)通过yum命令安装php需要的常用库
yum -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

(2)下载并安装php

cd /root/
wget http://cn2.php.net/distributions/php-7.1.11.tar.gz
tar -zxvf php-7.1.11.tar.gz

以上命令完成下载和解压,接下来进行安装操作

cd /root/php-7.1.11
./configure --prefix=/alidata/server/php-7.1.11 --with-config-file-path=/alidata/server/php-7.1.11/etc --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-mysqli --with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar
make
make install

(3)设置php配置文件
将官方提供的配置模板拷贝到配置参数中所指定的目录中

cp /root/php-7.1.11/php.ini-production /alidata/server/php-7.1.11/etc/php.ini

然后可以根据自己服务器的需求,对php.ini文件的内容进行修改
(4)设置php-fpm配置文件
依次执行以下命令

cd /alidata/server/php-7.1.11/etc
cp php-fpm.conf.default php-fpm.conf
cd /alidata/server/php-7.1.11/etc/php-fpm.d
cp www.conf.default www.conf

使用vim命令对php-fpm.conf的内容进行如下修改:

pid= /alidata/server/php-7.1.11/var/run/php-fpm.pid

使用vim命令对www.conf的内容进行如下修改:

user = robin
group = robin
listen = 127.0.0.1:9000
pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35

其他配置可根据自己的情况进行相应修改
(5)启动php-fpm
完成以上配置后,即可启动php-fpm,执行以下命令:

/alidata/server/php-7.1.11/sbin/php-fpm

启动后,使用:

ps aux | grep php-fpm

命令查看进程,若能够看到相关进程,则证明启动成功。查询进程时,可以看到进程是以robin用户身份执行的
(6)加入系统环境变量
使用vim命令打开/etc/profile文件,在文件最末尾加上如下代码:

export PHP_HOME=/alidata/server/php-7.1.11
export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin

保存修改后,使用source命令重新加载配置文件,命令如下:

source /etc/profile

执行上述命令后,可使用:

echo $PATH

命令查看环境变量中是否已经加入了相关的路径
(7)加入系统服务
使用vim命令在/etc/init.d/目录下创建一个php-fpm文件,命令如下:

vim /etc/init.d/php-fpm

文件内容如下:

#!/bin/bash
# php-fpm startup script for the php-fpm 
# php-fpm version:7.1.11
# chkconfig: - 85 15
# description: php-fpm
# processname: php-fpm
# pidfile: /alidata/server/php-7.1.11/var/run/php-fpm.pid
# config: /alidata/server/php-7.1.11/etc/php-fpm.conf

php_command=/alidata/server/php-7.1.11/sbin/php-fom
php_config=/alidata/server/php-7.1.11/etc/php-fpm.conf
php_pid=/alidata/server/php-7.1.11/var/run/php-fpm.pid
RETVAL=0
prog="php-fpm"

#start function
php_fpm_start() {
    /alidata/server/php-7.1.11/sbin/php-fpm
}

start(){
    if [ -e $php_pid  ]
    then
    echo "php-fpm already start..."
    exit 1
    fi
    php_fpm_start
}

stop(){
    if [ -e $php_pid ]
    then
    parent_pid=`cat $php_pid`
    all_pid=`ps -ef | grep php-fpm | awk '{if('$parent_pid' == $3){print $2}}'`
    for pid in $all_pid
    do
            kill $pid
        done
        kill $parent_pid
    fi
    exit 1
}

restart(){
    stop
    start
}

# See how we were called.
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
restart)
        stop
        start
        ;;
status)
        status $prog
        RETVAL=$?
        ;;
*)
        echo $"Usage: $prog {start|stop|restart|status}"
        exit 1
esac
exit $RETVAL

其中,php_command表示php-fpm可执行脚本的路径,php_config表示php-fpm的配置文件路径,php_pid表示php-fpm进程文件的路径

(8)设置php-fpm开机自启动
经过上面的操作,php-fpm已被添加为系统服务,所以可以将其设置为开机自启动,这样就可以避免每次服务器重启之后需要手动开启php-fpm的操作,具体命令如下:

chkconfig --add php-fpm
chkconfig php-fpm on

或者

systemctl enable php-fpm
  1. 安装MySQL
    (1)下载并安装cmake
cd /root/
wget https://cmake.org/files/v3.10/cmake-3.10.0-rc5.tar.gz
tar –zxvf cmake-3.10.0-rc5.tar.gz

以上命令完成下载和解压操作,接下来进行安装操作:

cd cmake-3.10.0-rc5
./configure --prefix=/alidata/package/cmake
make
make install
export PATH=/package/cmake/bin:$PATH

(2)下载并安装ncurses

cd /root/
wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz
tar –zxvf ncurses-6.0.tar.gz

以上命令完成下载和解压操作,接下来进行安装操作:

cd ncurses-6.0
./configure --prefix=/alidata/package/ncurses
make
make install

(3)安装libaio库
安装libaio和libaio-devel这两个库

yum install libaio*

(4)为MySQL添加用户及组
为了保证操作系统的安全,这里为mysql工作进程创建专用的用户:

groupadd mysql
useradd -r -g mysql mysql

(5)下载并安装MySQL

cd /root/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
tar –zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.20-linux-glibc2.12-x86_64 /alidata/server/mysql-5.7.20/

这里使用的是mysql官方提供的解压缩版的安装方式,不需要进行make操作。将mysql文件夹移动到安装路径后,需要修改mysql安装文件夹的权限,执行以下命令:

chown –R mysql.mysql /alidata/server/mysql-5.7.20/

后续如果在该目录及其子目录下创建了任何文件和文件夹,均需要再次执行该命令,以确保mysqld进程对该文件夹具有完全的读写权限
(6)设置mysql配置文件
mysql的配置文件是放在/etc/目录下的,名字是my.cnf,具体配置如下

[client]
port            = 3306
socket          = /alidata/server/mysql-5.7.20/tmp/mysql.sock
[mysqld]
basedir=/alidata/server/mysql-5.7.20
datadir=/alidata/server/mysql-5.7.20/data
socket=/alidata/server/mysql-5.7.20/tmp/mysql.sock
#skip-external-locking
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
log-error=/alidata/logs/mysql/error.log
pid-file=/alidata/logs/mysql/mysql.pid

[mysqld_safe]
log-error=/alidata/logs/mariadb/error.log
pid-file=/alidata/logs/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

这里需要注意,配置文件最后一行引入了新的配置文件,下面列出my.cnf.d目录下名为mysql-clients.cnf的配置文件内容:

#
# These groups are read by MariaDB command-line tools
# Use it for options that affect only one utility
#

[mysql]

[mysql_upgrade]

[mysqladmin]

[mysqlbinlog]

[mysqlcheck]

[mysqldump]

[mysqlimport]

[mysqlshow]

[mysqlslap]

在my.cnf配置文件中,需要注意几个配置,其中basedir指的是mysql的安装目录,datadir指的是mysql数据文件的存储目录,其他几项配置项,如果大家感兴趣可以自行查看官方解释。还需要特别说明的一个问题是,所有在配置文件中出现的路径、文件均需要具有可读写的权限,前面为MySQL创建了用户及组,所以上述配置文件中涉及到的路径和文件,均需要将其所有者及组指定为mysql用户,这样MySQL服务才能正常启动。
完成以上配置后,需要将mysqld的启动脚本放入/etc/init.d/路径中,执行以下命令:

cp –a /alidata/server/mysql-5.7.20/support-files/mysql.server /etc/init.d/mysqld

拷贝完成后,使用vim命令,修改/etc/init.d/mysqld中的basedir和datadir,确保其值与my.cnf文件中的内容相同
(7)初始化MySQL
因本文采用的是MySQL 5.7.20版本,所以不能使用mysql_install_db命令,而是需要使用mysqld –initialize命令对数据库进行初始化,具体命令如下:

/alidata/server/mysql-5.7.20/bin/mysqld –initialize --user=mysql --basedir=/alidata/server/mysql-5.7.20/ --datadir=/alidata/server/mysql-5.7.20/data/

若前面配置文件中的各配置项均正确,各路径、文件均存在并可读写,改命令将提示执行成功,并能够在/root/目录下生成一个.mysql_secret文件,使用cat命令可查看其内容,其是mysql中本地root用户的初始密码。这里需要特别说明一下,本文作者使用mysql自动生成初始密码没有登录成功,然后通过安全启动脚本对mysql的root用户密码进行修改后,才能够正常登录和使用,所以这一步目前无法得到确认,大家可根据自己的实际情况处理。
(8)使用安全模式启动MySQL
在mysql安装目录的bin目录下,使用以下命令启动mysql:

./mysqld_safe --user=mysql &

启动后,使用初始化所得的root密码登录mysql,查看是否可以正常操作,命令如下:

./mysql –uroot –p

(9)设置MySQL服务开机自启

cd /alidata/server/mysql-5.7.20/bin/
chkconfig --level 35 mysqld on

(10)启动MySQL服务
前文使用的是安全模式启动,现在,需要让MySQL服务正常启动,首先,通过命令:

ps aux | grep mysql

查找到通过mysqld_safe命令启动的进程,使用kill命令将其全部杀掉,然后使用:

/etc/init.d/mysqld start

命令,启动MySQL服务,接下来,就请使用root用户登录,然后进行创建用户,创建数据库,赋权等操作,这部分属于MySQL的基本操作,本文不再赘述。

  1. 配置Nginx+PHP+MySQL

与Apache服务器不同的是,Nginx本身并不解释、运行PHP代码,Nginx只是将用户端发来的HTTP请求进行转发,真正解释运行PHP代码的是php-fpm进程,所以,这里只需要将Nginx收到的http请求转发给php-fpm即可。
根据本文前序步骤,已经完成了Nginx和PHP的安装和配置,接下来,只需要在Nginx的配置文件中加入转发至php-fpm的配置即可。
(1)配置Nginx+PHP
本文中对Nginx进行了多域名配置,每个域名只需要在/alidata/server/nginx-1.12.2/conf/vhosts目录下有一个自己的配置文件即可,所以重点就在这个配置文件里,现在假定我们需要查看当前服务器的php信息,因为本文没有涉及到域名解析及配置的相关信息,所以这里就以IP访问为例进行配置讲解,首先,需要在我们的web代码根路径/alidata/webapps下创建一个info.php文件,执行以下命令:

vim /alidata/webapps/info.php

文件内容是一段非常简单的php代码

保存文件后,对Nginx的配置文件进行修改,前文已经在/alidata/server/nginx-1.12.2/conf/vhosts目录下创建了default.conf配置文件,现在对这个文件的内容进行修改,修改后的内容如下:

server {
        listen       80;
        server_name  localhost;
        index index.php index.htm index.html;
        root /alidata/webapps;
        location ~ .*\.(php|php5)?$
        {
                #fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi.conf;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
                expires 30d;
        }
        location ~ .*\.(js|css)?$
        {
                expires 1h;
        }
        # 配置页面静态化
        include /alidata/server/nginx-1.12.2/conf/rewrite/default.conf;
        access_log  /alidata/logs/nginx/access/default.log;
        error_log /alidata/logs/nginx/error/default.log;
}

可以看到,与之前的配置文件相比,主要是index配置项后,多了关于php的配置内容,以及location相关配置中,多了对于php的内容,保存以上配置文件,使用:

systemctl reload nginx

命令,重新加载配置文件后,通过浏览器访问http://服务器的IP/info.php,即可看到上文中php代码的运行效果,具体如下图所示 :
drg000079
至此,即完成了Nginx和PHP的配置,这里需要说明,上述的配置只是最简单的配置,若项目不是运行在web根目录下的,那么配置文件也需要对应的进行修改,若项目是采用CodeIgniter或Laravel等其他框架技术开发的,那么也需要对配置文件进行相应修改,这部分内容大家可自行百度,有很多相关的博客。

转载自:https://www.cnblogs. com/python-cat/p/8435801.html
如有侵权,请联系删除。

转载请注明:XAMPP中文组官网 » Linux CentOS7.2源码编译搭建LNMP环境