PHP7+Nginx的配置与安装教程详解

2025-05-29 0 81

下面快网idc小编把PHP7+Nginx的配置安装教程分享给大家,供大家参考,本文写的不好还请见谅。

系统环境:centos6.5 x64

软件版本:nginx-1.10.0 php-7.0.6

安装 Nginx

Nginx官网:http://nginx.org/

安装编译依赖的一些组件

复制代码 代码如下:


yum install pcre pcre-devel openssl openssl-devel -y

1、解压程序包

复制代码 代码如下:


tar xf nginx-1.10.0.tar.gz
cd nginx-1.10.0

2、预编译配置参数

复制代码 代码如下:


./configure –user=www \\
–group=www \\
–prefix=/data/server/nginx \\
–with-http_stub_status_module \\
–without-http-cache \\
–with-http_ssl_module \\
–with-http_gzip_static_module

3、执行编译

复制代码 代码如下:


make && make install

4、替换配置文件

nginx.conf

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45
user www www;

worker_processes 1;

error_log /u01/data/log/nginx/error.log crit;

pid /u01/data/server/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.

worker_rlimit_nofile 65535;

events

{

use epoll;

worker_connections 65535;

}

http {

include mime.types;

default_type application/octet-stream;

#charset gb2312;

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 60;

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;

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;

#limit_zone crawler $binary_remote_addr 10m;

log_format main '$remote_addr - "$request_time" [$time_local] "$request" '

'"$status" $body_bytes_sent "$http_referer" '

'"$http_user_agent" $http_x_forwarded_for';

log_format '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" $http_x_forwarded_for "$request_time"';

include /u01/alidata/server/nginx/conf/vhosts/*.conf;

虚拟主机配置文件模板

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32
server {

listen 8080;

server_name localhost;

index index.html index.htm index.php;

root /u01/data/www;

location ~ .*\\.(php|php5)?$

{

fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

fastcgi_index index.php;

include fastcgi.conf;

}

location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires 30d;

}

location ~ .*\\.(js|css)?$

{

expires 1h;

}

###this is to use open website lianjie like on apache##

location / {

if (!-e $request_filename) {

rewrite ^(.*)$ /index.php?s=$1 last;

break;

}

}

location ~ /.svn/ {

deny all;

}

###end##

access_log /u01/data/log/nginx/access/test.log main;

}

5、提供Nginx启动脚本

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67
#!/bin/bash

#

nginxd=/u01/data/server/nginx/sbin/nginx

nginx_config=/u01/data/server/nginx/conf/nginx.conf

nginx_pid=/u01/data/server/nginx/logs/nginx.pid

RETVAL=0

prog="nginx"

[ -x $nginxd ] || exit 0

# Start nginx daemons functions.

start() {

if [ -e $nginx_pid ] && netstat -tunpl | grep nginx &> /dev/null;then

echo "nginx already running...."

exit 1

fi

echo -n $"Starting $prog!"

$nginxd -c ${nginx_config}

RETVAL=$?

echo

[ $RETVAL = 0 ] && touch /var/lock/nginx

return $RETVAL

}

# Stop nginx daemons functions.

stop() {

echo -n $"Stopping $prog!"

$nginxd -s stop

RETVAL=$?

echo

[ $RETVAL = 0 ] && rm -f /var/lock/nginx

}

# reload nginx service functions.

reload() {

echo -n $"Reloading $prog!"

stop() {

echo -n $"Stopping $prog!"

$nginxd -s stop

RETVAL=$?

echo

[ $RETVAL = 0 ] && rm -f /var/lock/nginx

}

# reload nginx service functions.

reload() {

echo -n $"Reloading $prog!"

#kill -HUP `cat ${nginx_pid}`

$nginxd -s reload

RETVAL=$?

echo

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

reload)

reload

;;

restart)

stop

start

;;

*)

echo $"Usage: $prog {start|stop|restart|reload|help}"

exit 1

esac

exit $RETVAL

只需要稍加修改程序路径就可立即使用

安装 PHP7

PHP官网:http://php.net/

PHP扩展:http://pecl.php.net/

安装一些为编译依赖的组建

?

1
yum -y install gcc gcc-c++ gcc-g77 make libtool autoconf patch unzip automake libxml2 libxml2-devel ncurses ncurses-devel libtool-ltdl-devel libtool-ltdl libmcrypt libmcrypt-devel libpng libpng-devel libjpeg-devel openssl openssl-devel curl curl-devel libxml2 libxml2-devel ncurses ncurses-devel libtool-ltdl-devel libtool-ltdl autoconf automake libaio*

1、解压程序包

复制代码 代码如下:


tar xf php-7.0.6.tar.bz2
cd php-7.0.6

2、安装编译依赖的图片库

复制代码 代码如下:


jpegsrc.v6b.tar.gz
libpng-1.2.50.tar.gz
freetype-2.1.10.tar.gz

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17
# 安装 jpegsrc.v6b.tar.gz

#这个需要先创建好存放程序的文件夹不然会报错

mkdir /usr/local/jpeg.6/{bin,lib,include,man/man1} -pv

tar xf jpegsrc.v6b.tar.gz

cd jpeg-6b/

./configure --prefix=/usr/local/jpeg.6/

make && make install

# 安装 libpng-1.2.50.tar.gz

tar xf libpng-1.2.50.tar.gz

cd libpng-1.2.50

./configure --prefix=/usr/local/libpng.1.2.50

make && make install

# 安装 freetype-2.1.10.tar.gz

tar xf freetype-2.1.10.tar.gz

cd freetype-2.1.10

./configure --prefix=/usr/local/freetype.2.1.10/

make && make install

3、预编译配置参数

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43
./configure --prefix=/data/server/php \\

--enable-opcache \\

--with-config-file-path=/u01/data/server/php/etc \\

--enable-mysqlnd \\

--with-mysqli=mysqlnd \\

--with-pdo-mysql=mysqlnd \\

--enable-fpm \\

--enable-static \\

--enable-inline-optimization \\

--enable-sockets \\

--enable-wddx \\

--enable-zip \\

--enable-calendar \\

--with-gd \\

--with-iconv \\

--with-openssl \\

--with-zlib \\

--enable-bcmath \\

--enable-soap \\

--with-xmlrpc \\

--enable-mbstring \\

--enable-shared \\

--with-curl \\

--enable-xml \\

--enable-ftp \\

--with-mcrypt \\

--with-mhash \\

--enable-shmop \\

--enable-sysvsem \\

--enable-mbregex \\

--enable-gd-native-ttf \\

--enable-pcntl \\

--enable-session \\

--with-gettext \\

--with-freetype-dir=/usr/local/freetype.2.1.10 \\

--with-jpeg-dir=/usr/local/jpeg.6 \\

--with-png-dir=/usr/local/libpng.1.2.50 \\

--disable-ipv6 \\

--disable-debug \\

--disable-maintainer-zts \\

--disable-rpath \\

--disable-fileinfo \\

--without-gdbm \\

4、执行编译

复制代码 代码如下:


make && make install

5、提供php.ini文件

复制代码 代码如下:


cp php.ini-production /u01/data/server/php/etc/php.ini

配置php.ini

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17
# 在840行左右-设置PHP的opcache和memcache扩展库

zend_extension=opcache.so

extension=memcache.so

# 722行左右-设置PHP的扩展库路径

extension_dir = "/u01/data/server/php7/lib/php/extensions/no-debug-non-zts-20151012/"

# 避免PHP信息暴露在http头中

expose_php = Off

# 避免暴露php调用mysql的错误信息

display_errors = Off

# 开启PHP错误日志(路径在php-fpm.conf中配置)

log_errors = On

# 设置PHP的时区

date.timezone = PRC

# 开启opcache(1733行左右)

opcache.enable=1

# 设置PHP脚本允许访问的目录

# open_basedir = /usr/share/nginx/html;

6、配置php-fpm

php-fpm.conf 进程服务主配置文件

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27
# 设置错误日志的路径

error_log = /var/log/php-fpm/error.log

# 引入www.conf文件中的配置

include=/usr/local/php7/etc/php-fpm.d/*.conf

# 设置主进程打开的最大文件数

rlimit_files = 102400

www.conf 进程服务扩展配置文件

# 设置用户和用户组

user = www

group = www

# 设置php监听方式

# listen = 127.0.0.1:9000

# 注意这里要设置PHP套接字文件的权限,默认是root,Nginx无法访问。

listen = /var/run/php-fpm/php-fpm.sock

# 开启慢日志

slowlog = /var/log/php-fpm/php-slow.log

request_slowlog_timeout = 10s

# 设置工作进程数(根据实际情况设置)

pm.max_children = 50

# 这里需要注意,pm.start_servers 不能小于 pm.min_spare_servers

pm.start_servers = 5

pm.min_spare_servers = 5

pm.max_spare_servers = 10

pm.max_requests = 10240

# 设置php的session目录(所属用户和用户组都是www)

php_value[session.save_handler] = files

php_value[session.save_path] = /var/tmp/php/session

7、提供php-fpm启动脚本

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106
#! /bin/sh

#

prefix=/u01/data/server/php7

exec_prefix=${prefix}

php_fpm_BIN=${exec_prefix}/sbin/php-fpm

php_fpm_CONF=${prefix}/etc/php-fpm.conf

php_fpm_PID=${prefix}/var/run/php-fpm.pid

php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"

wait_for_pid () {

try=0

while test $try -lt 35 ; do

case "$1" in

'created')

if [ -f "$2" ] ; then

try=''

break

fi

;;

'removed')

if [ ! -f "$2" ] ; then

try=''

break

fi

;;

esac

echo -n .

try=`expr $try + 1`

sleep 1

done

}

case "$1" in

start)

echo -n "Starting php-fpm "

$php_fpm_BIN --daemonize $php_opts

if [ "$?" != 0 ] ; then

echo " failed"

exit 1

fi

wait_for_pid created $php_fpm_PID

if [ -n "$try" ] ; then

echo " failed"

exit 1

else

echo " done"

fi

;;

stop)

echo -n "Gracefully shutting down php-fpm "

if [ ! -r $php_fpm_PID ] ; then

echo "warning, no pid file found - php-fpm is not running ?"

exit 1

fi

kill -QUIT `cat $php_fpm_PID`

wait_for_pid removed $php_fpm_PID

if [ -n "$try" ] ; then

echo " failed. Use force-quit"

exit 1

else

echo " done"

fi

;;

status)

if [ ! -r $php_fpm_PID ] ; then

echo "php-fpm is stopped"

exit 0

fi

PID=`cat $php_fpm_PID`

if ps -p $PID | grep -q $PID; then

echo "php-fpm (pid $PID) is running..."

else

echo "php-fpm dead but pid file exists"

fi

;;

force-quit)

echo -n "Terminating php-fpm "

if [ ! -r $php_fpm_PID ] ; then

echo "warning, no pid file found - php-fpm is not running ?"

exit 1

fi

kill -TERM `cat $php_fpm_PID`

wait_for_pid removed $php_fpm_PID

if [ -n "$try" ] ; then

echo " failed"

exit 1

else

echo " done"

fi

;;

restart)

$0 stop

$0 start

;;

reload)

echo -n "Reload service php-fpm "

if [ ! -r $php_fpm_PID ] ; then

echo "warning, no pid file found - php-fpm is not running ?"

exit 1

fi

kill -USR2 `cat $php_fpm_PID`

echo " done"

;;

*)

echo "Usage: $0 {start|stop|force-quit|restart|reload|status}"

exit 1

;;

esac

八、启动php-fpm程序

?

1

2

3
/etc/init.d/php-fpm start

# 修改套接字文件权限

chown -R /var/run/php-fpm/

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP7+Nginx的配置与安装教程详解 https://www.kuaiidc.com/98384.html

相关文章

发表评论
暂无评论