当前位置: 首页 > 编程日记 > 正文

CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

【准备工作】

01

#在编译安装lnmp之前,首先先卸载已存在的rpm包。

02

rpm -e httpd

03

rpm -e mysql

04

rpm -e php

05

06

yum -y remove httpd

07

yum -y remove mysql-server mysql

08

yum -y remove php

09

yum -y remove php-mysql

10

11

#禁用SeLinux,Selinux可能会致使编译安装失败,我们先禁用它。

12

#sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  #永久禁用,需要重启生效。

13

#或

14

setenforce 0  # 临时禁用,不需要重启(推荐)。

15

16

#yum安装必要工具

17

yum -y install make apr* autoconf automake curl-devel gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel libXpm* freetype libjpeg* libpng* php-common php-gd ncurses* libtool* libxml2 libxml2-devel patch gettext glib2-devel bzip2-devel libuuid-devel docbook-style-xsl libxslt-devel gzip-devel freetype-devel

下载源码包,存放路径如下所示:

usr/local/src/mysql/cmake-2.8.8.tar.gz

usr/local/src/mysql/mysql-5.5.25a.tar.gz

usr/local/src/nginx/nginx-1.4.7.tar.gz

usr/local/src/nginx/openssl-1.0.1e.tar.gz

usr/local/src/nginx/pcre-8.33.tar.gz

usr/local/src/nginx/zlib-1.2.8.tar.gz

usr/local/src/php/libiconv-1.14.tar.gz

usr/local/src/php/libmcrypt-2.5.8.tar.gz

usr/local/src/php/mcrypt-2.6.8.tar.gz

usr/local/src/php/mhash-0.9.9.9.tar.gz

usr/local/src/php/php-5.3.28.tar.gz

usr/local/src/php/ext/memcache-3.0.8.tgz

usr/local/src/php/ext/mongo-1.4.4.tgz

1、Nginx相关软件

Nginx1.4.7

http://nginx.org/download/nginx-1.4.7.tar.gz

pcre(支持Nginx地址重写)

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.gz

gzip(页面压缩)

http://zlib.net/zlib-1.2.8.tar.gz

openssl(https安全支持组件)

http://www.openssl.org/source/openssl-1.0.1e.tar.gz

2、MySQL相关软件

MySQL5.5.25

http://downloads.mysql.com/archives/get/file/mysql-5.5.25a.tar.gz

cmake(MySQL编译工具)

http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz

3、PHP相关软件

PHP5.3.28

http://cn2.php.net/get/php-5.3.28.tar.gz/from/this/mirror

libmcrypt(PHP的加密扩展)

http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download

mhash(PHP的哈希函数库,像MD5,SHA,CRC这类的,比如用来计算消息的校验码之类的。)

http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2/download

mcrypt(PHP的加密扩展)

http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download

libiconv(PHP字符集转换库)

http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

【安装Nginx1.4.7】

01

#安装pcre库

02

cd /usr/local/src/nginx

03

tar -xzvf ./pcre-8.33.tar.gz

04

cd ./pcre-8.33

05

./configure

06

make && make install

07

08

#安装zlib库

09

cd /usr/local/src/nginx

10

tar -xzvf ./zlib-1.2.8.tar.gz

11

cd ./zlib-1.2.8

12

./configure

13

make && make install

14

15

#安装ssl

16

cd /usr/local/src/nginx

17

tar -xzvf ./openssl-1.0.1e.tar.gz

18

19

#安装Nginx

20

cd /usr/local/src/nginx

21

tar -xzvf ./nginx-1.4.7.tar.gz

22

cd ./nginx-1.4.7

23

mkdir /usr/local/nginx

24

./configure --prefix=/usr/local/nginx --user=www --group=www --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=/usr/local/src/nginx/pcre-8.33 --with-zlib=/usr/local/src/nginx/zlib-1.2.8 --with-openssl=/usr/local/src/nginx/openssl-1.0.1e

25

make && make install

注意,其中的配置

--with-pcre=/usr/local/src/nginx/pcre-8.33

--with-zlib=/usr/local/src/nginx/zlib-1.2.8

--with-openssl=/usr/local/src/nginx/openssl-1.0.1e

为源码包解压后的路径,而不是安装路径,否则会报错!

configure 命令后,输出如下信息:

01

...

02

Configuration summary

03

+ using PCRE library: /usr/local/src/nginx/pcre-8.33

04

+ using OpenSSL library: /usr/local/src/nginx/openssl-1.0.1e

05

+ md5: using OpenSSL library

06

+ sha1: using OpenSSL library

07

+ using zlib library: /usr/local/src/nginx/zlib-1.2.8

08

09

nginx path prefix: "/usr/local/nginx"

10

nginx binary file: "/usr/local/nginx/nginx"

11

nginx configuration prefix: "/usr/local/nginx"

12

nginx configuration file: "/usr/local/nginx/nginx.conf"

13

nginx pid file: "/usr/local/nginx/nginx.pid"

14

nginx error log file: "/usr/local/nginx/logs/error.log"

15

nginx http access log file: "/usr/local/nginx/logs/access.log"

16

nginx http client request body temporary files: "client_body_temp"

17

nginx http proxy temporary files: "proxy_temp"

18

nginx http fastcgi temporary files: "fastcgi_temp"

19

nginx http uwsgi temporary files: "uwsgi_temp"

20

nginx http scgi temporary files: "scgi_temp"

21

22

[root@localhost nginx-1.4.7]#

nginx的configure命令支持以下参数:(可使用 ./configure --help 命令查看)

--prefix=path    定义一个目录,存放服务器上的文件 ,也就是nginx的安装目录。默认使用 /usr/local/nginx。

--sbin-path=path 设置nginx的可执行文件的路径,默认为  prefix/sbin/nginx.

--conf-path=path  设置在nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为prefix/conf/nginx.conf.

--pid-path=path  设置nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid.

--error-log-path=path 设置主错误,警告,和诊断文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默认情况下,文件名 为prefix/logs/error.log.

--http-log-path=path  设置主请求的HTTP服务器的日志文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的access_log指令。默认情况下,文件名 为prefix/logs/access.log.

--user=name  设置nginx工作进程的用户。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的用户名是nobody。

--group=name  设置nginx工作进程的用户组。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的为非特权用户。

--with-select_module --without-select_module 启用或禁用构建一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。

--with-poll_module --without-poll_module 启用或禁用构建一个模块来允许服务器使用poll()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。

--without-http_gzip_module — 不编译压缩的HTTP服务器的响应模块。编译并运行此模块需要zlib库。

--without-http_rewrite_module  不编译重写模块。编译并运行此模块需要PCRE库支持。

--without-http_proxy_module — 不编译http_proxy模块。

--with-http_ssl_module — 使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的。

--with-pcre=path — 设置PCRE库的源码路径。PCRE库的源码(版本4.4 - 8.30)需要从PCRE网站下载并解压。其余的工作是Nginx的./ configure和make来完成。正则表达式使用在location指令和 ngx_http_rewrite_module 模块中。

--with-pcre-jit —编译PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)。

--with-zlib=path —设置的zlib库的源码路径。要下载从 zlib(版本1.1.3 - 1.2.5)的并解压。其余的工作是Nginx的./ configure和make完成。ngx_http_gzip_module模块需要使用zlib 。

--with-cc-opt=parameters — 设置额外的参数将被添加到CFLAGS变量。例如,当你在FreeBSD上使用PCRE库时需要使用:--with-cc-opt="-I /usr/local/include。.如需要需要增加 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048".

--with-ld-opt=parameters —设置附加的参数,将用于在链接期间。例如,当在FreeBSD下使用该系统的PCRE库,应指定:--with-ld-opt="-L /usr/local/lib"。

安装成功后,nginx的目录结构如下:

01

[root@localhost nginx-1.4.7]# ll /usr/local/nginx

02

总用量 6468

03

-rw-r--r--. 1 root root    1034 12月  8 14:48 fastcgi.conf

04

-rw-r--r--. 1 root root    1034 12月  8 14:48 fastcgi.conf.default

05

-rw-r--r--. 1 root root     964 12月  8 14:48 fastcgi_params

06

-rw-r--r--. 1 root root     964 12月  8 14:48 fastcgi_params.default

07

drwxr-xr-x. 2 root root    4096 12月  8 14:48 html

08

-rw-r--r--. 1 root root    2837 12月  8 14:48 koi-utf

09

-rw-r--r--. 1 root root    2223 12月  8 14:48 koi-win

10

drwxr-xr-x. 2 root root    4096 12月  8 14:48 logs

11

-rw-r--r--. 1 root root    3463 12月  8 14:48 mime.types

12

-rw-r--r--. 1 root root    3463 12月  8 14:48 mime.types.default

13

-rwxr-xr-x. 1 root root 6540149 12月  8 14:48 nginx

14

-rw-r--r--. 1 root root    2685 12月  8 14:48 nginx.conf

15

-rw-r--r--. 1 root root    2685 12月  8 14:48 nginx.conf.default

16

-rw-r--r--. 1 root root     596 12月  8 14:48 scgi_params

17

-rw-r--r--. 1 root root     596 12月  8 14:48 scgi_params.default

18

-rw-r--r--. 1 root root     623 12月  8 14:48 uwsgi_params

19

-rw-r--r--. 1 root root     623 12月  8 14:48 uwsgi_params.default

20

-rw-r--r--. 1 root root    3610 12月  8 14:48 win-utf

21

[root@localhost nginx-1.4.7]#

#添加nginx用户及用户组

1

groupadd www  #添加nginx用户组及用户

2

useradd -g www -s /usr/sbin/nologin www #不让www用户直接登录

#配置防火墙,开启80端口

1

vim /etc/sysconfig/iptables

添加如下规则到22端口这条规则的下面即可

1

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

#重启防火墙

1

service iptables restart

#启动nginx

1

/usr/local/nginx/nginx

在浏览器输入 localhost,出现如下画面,表示nginx安装成功!


#设置nginx开机启动

1

vim /etc/rc.d/init.d/nginx

编辑启动文件添加下面内容

01

#!/bin/bash

02

# nginx Startup script for the Nginx HTTP Server

03

# it is v.0.0.2 version.

04

# chkconfig: - 85 15

05

# description: Nginx is a high-performance web and proxy server.

06

# It has a lot of features, but it's not for everyone.

07

# processname: nginx

08

# pidfile: /var/run/nginx.pid

09

# config: /usr/local/nginx/conf/nginx.conf

10

11

nginxd=/usr/local/nginx/nginx

12

nginx_config=/usr/local/nginx/nginx.conf

13

nginx_pid=/usr/local/nginx/nginx.pid

14

RETVAL=0

15

prog="nginx"

16

17

# Source function library.

18

. /etc/rc.d/init.d/functions

19

20

# Source networking configuration.

21

. /etc/sysconfig/network

22

23

# Check that networking is up.

24

[ ${NETWORKING} = "no" ] && exit 0

25

[ -x $nginxd ] || exit 0

26

27

# Start nginx daemons functions.

28

start() {

29

if [ -e $nginx_pid ] ;then

30

echo "nginx already running...."

31

exit 1

32

fi

33

echo -n $"Starting $prog: "

34

daemon $nginxd -c ${nginx_config}

35

RETVAL=$?

36

echo

37

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

38

39

return $RETVAL

40

}

41

42

# Stop nginx daemons functions.

43

stop() {

44

echo -n $"Stopping $prog: "

45

killproc $nginxd

46

RETVAL=$?

47

echo

48

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

49

}

50

51

reload() {

52

echo -n $"Reloading $prog: "

53

#kill -HUP `cat ${nginx_pid}`

54

killproc $nginxd -HUP

55

RETVAL=$?

56

echo

57

}

58

59

# See how we were called.

60

case "$1" in

61

start)

62

start

63

;;

64

stop)

65

stop

66

;;

67

reload)

68

reload

69

;;

70

restart)

71

stop

72

start

73

;;

74

status)

75

status $prog

76

RETVAL=$?

77

;;

78

*)

79

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

80

exit 1

81

esac

82

83

exit $RETVAL

保存,添加到服务,设置开机启动

1

:wq! #保存退出

2

chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限

3

chkconfig nginx on #设置开机启动

4

/etc/rc.d/init.d/nginx restart #重启

5

service nginx restart #重启

【安装MySQL5.5.25a】

1、安装cmake

MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。

因此,我们首先要在系统中源码编译安装cmake工具。

#编译安装

1

cd /usr/local/src/mysql

2

tar -xzvf ./cmake-2.8.8.tar.gz

3

cd ./cmake-2.8.8

4

./configure

5

make && make install

2、编译安装配置MySQL

01

#切换至 MySQL源码 的解压目录

02

cd /usr/local/src/mysql

03

tar -xzvf ./mysql-5.5.25a.tar.gz

04

cd ./mysql-5.5.25a

05

06

#创建所需目录

07

mkdir -pv /usr/local/mysql/data

08

09

#创建mysql用户和mysql组

10

groupadd mysql

11

useradd -g mysql -s /usr/sbin/nologin mysql

12

13

#cmake编译

14

cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/usr/local/mysql/data  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_unicode_ci  -DWITH_READLINE=1  -DWITH_SSL=system  -DWITH_EMBEDDED_SERVER=1  -DENABLED_LOCAL_INFILE=1  -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_DEBUG=0

15

16

#安装

17

make && make install

18

19

#复制配置文件

20

cp ./support-files/my-medium.cnf /etc/my.cnf

21

22

#设置权限

23

chmod +x /usr/local/mysql

24

chown -R mysql:mysql /usr/local/mysql

25

chown -R mysql:mysql /usr/local/mysql/data

26

27

#配置开机自动启动

28

cp ./support-files/mysql.server /etc/init.d/mysqld

29

chmod +x /etc/init.d/mysqld

30

chkconfig --add mysqld

31

chkconfig --level 2345 mysqld on

32

chkconfig --list mysqld #查看是否已应用上

33

34

#添加MySQL的软链接以适应init脚本

35

ln -sv /usr/local/mysql/bin/mysql  /usr/sbin/mysql

36

ln -sv /usr/local/mysql/bin/mysqladmin  /usr/sbin/mysqladmin

37

ln -sv /usr/local/mysql/bin/mysqldump  /usr/sbin/mysqldump

38

39

#启动MySQL

40

service mysqld start

#修改配置文件

1

vim /etc/my.cnf

#在[mysqld]节点中添加:

1

datadir = /usr/local/mysql/data

2

log-error = /usr/local/mysql/data/error.log

3

pid-file = /usr/local/mysql/data/mysql.pid

4

user = mysql

5

tmpdir = /tmp

#保存退出

#初始化数据库

1

/usr/local/mysql/scripts/mysql_install_db  --user=mysql  --basedir=/usr/local/mysql  --datadir=/usr/local/mysql/data

#修改root密码

1

/usr/local/mysql/bin/mysqladmin -u root -p password "123456"  # 注意:刚开始密码最好用纯数字,后期再用phpMyAdmin来在线修改!

配置防火墙,开启3306端口

1

vim /etc/sysconfig/iptables

#添加如下规则到22端口这条规则的下面即可

1

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

#重启防火墙

1

service iptables restart  # 或  /etc/init.d/iptables restart

启动MySQL

1

service mysqld start  # 或 /etc/init.d/mysqld start

测试MySQL是否启动

#查看是否有mysql进程

1

ps -ef | grep mysql

#查看是否有mysql端口

1

netstat -ntlp | grep 3306

#测试mysql,mysqladmin,mysqldump命令是否能正常使用

#读取MySQL的版本信息

1

/usr/local/mysql/bin/mysqladmin version  -u root -p

到此MySQL编译安装完成。

【安装PHP5.3.28】

01

###############################################################

02

###1、安装PHP依赖库

03

###############################################################

04

#安装 libmcryp

05

cd /usr/local/src/php

06

tar -xzvf ./libmcrypt-2.5.8.tar.gz

07

cd ./libmcrypt-2.5.8

08

./configure --prefix=/usr

09

make && make install

10

11

#安装 mhash

12

cd /usr/local/src/php

13

tar -xzvf ./mhash-0.9.9.9.tar.gz

14

cd ./mhash-0.9.9.9

15

./configure --prefix=/usr

16

make && make install

17

18

#安装 mcrypt

19

/sbin/ldconfig  #搜索出可共享的动态链接库

20

cd /usr/local/src/php

21

tar -xzvf ./mcrypt-2.6.8.tar.gz

22

cd ./mcrypt-2.6.8

23

./configure

24

make && make install

25

26

#安装 libiconv

27

cd /usr/local/src/php

28

tar -xzvf ./libiconv-1.14.tar.gz

29

cd ./libiconv-1.14

30

./configure --prefix=/usr/local/libiconv

31

make && make install

32

33

################################################################

34

###2、安装 PHP 5.3.28

35

################################################################

36

cd /usr/local/src/php

37

tar -xzvf ./php-5.3.28.tar.gz

38

cd ./php-5.3.28

39

40

#生成配置

41

./configure --prefix=/usr/local/php-5.3 --with-config-file-path=/usr/local/php-5.3/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-bz2 --with-gd --with-jpeg-dir --with-png-dir --with-gettext --with-mhash --with-freetype-dir --with-mcrypt --with-iconv=/usr/local/libiconv --with-curl --with-curlwrappers --with-xmlrpc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-zip --enable-mbstring --enable-bcmath --enable-soap --enable-sockets --enable-ftp --enable-gd-native-ttf --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-fpm --without-pear

42

43

#编译安装

44

make && make install

编译参数解释:

./configure --prefix=/usr/local/php-5.3

--with-config-file-path=/usr/local/php-5.3/etc

--with-config-file-scan-dir=/etc/php.d   # 这个到时候还是去掉吧

--with-openssl

--with-zlib

--with-bz2

--with-gd

--with-jpeg-dir

--with-png-dir

--with-gettext

--with-mhash

--with-freetype-dir

--with-mcrypt

--with-iconv=/usr/local/libiconv

--with-curl

--with-curlwrappers

--with-xmlrpc

--with-mysql=/usr/local/mysql

--with-pdo-mysql=/usr/local/mysql

--with-mysqli=/usr/local/mysql/bin/mysql_config

--enable-zip

--enable-mbstring

--enable-bcmath

--enable-soap

--enable-sockets

--enable-ftp

--enable-gd-native-ttf

--enable-shmop

--enable-sysvmsg

--enable-sysvsem

--enable-sysvshm

--enable-pcntl

--enable-fpm

--without-pear

3、配置php.ini

1

cd /usr/local/src/php/php-5.3.28

2

cp ./php.ini-production /usr/local/php-5.3/etc/php.ini #复制php配置文件到安装目录

3

mv /etc/php.ini /etc/php.ini.bak #删除/移除系统自带配置文件

4

ln -s /usr/local/php-5.3/etc/php.ini /etc/php.ini #添加软链接

#编辑配置文件

1

vim /usr/local/php-5.3/etc/php.ini

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

找到:;date.timezone =

修改为:date.timezone = PRC #设置时区

找到:expose_php = On

修改为:expose_php = OFF #禁止显示php版本的信息

4、配置php-fpm

1

cp /usr/local/php-5.3/etc/php-fpm.conf.default /usr/local/php-5.3/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

1

vim /usr/local/php-5.3/etc/php-fpm.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

pid = run/php-fpm.pid #取消前面的分号

#删除 /etc/php.d 文件夹下的配置文件

#设置 php-fpm 开机启动

1

cp /usr/local/src/php/php-5.3.28/sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录

2

chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限

3

chkconfig php-fpm on #设置开机启动

5、配置nginx支持php

1

vim /usr/local/nginx/nginx.conf #编辑配置文件,需做如下修改

user www www; #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php-5.3/etc/php-fpm.conf中的user,group配置相同,否则php运行出错。

index index.php index.html index.htm; #添加index.php

1

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

2

#

3

location ~  \.php$ {

4

root html;

5

fastcgi_pass 127.0.0.1:9000;

6

fastcgi_index index.php;

7

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

8

include fastcgi_params;

9

}

#取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,否则使用绝对路径。

1

service php-fpm start  # 启动php-fpm

2

service nginx restart  # 重启nginx

延伸阅读:

PHP5不重新编译,如何安装自带的未安装过的扩展,如soap扩展?

Linux下,如何给PHP安装pdo_mysql扩展

CentOS5.x/CentOS6.x编译安装Python-2.7.6

CentOS6.3编译安装MongoDB-2.2.x 及 安装PHP的MongoDB客户端


转载于:https://my.oschina.net/yonghan/blog/525116

相关文章:

GitHub标星14000+,阿里开源的SEATA如何应用到极致?

作者简介:袁鸣凯,家乐福技术总监, 高知特有限技术公司中国区架构师,HP上海研发技术专家,夸客金融首席架构师,现任家乐福中国区技术总监。多年互联网、企业级SOA、微服务、全渠道中台方面的架构设计实战经验…

C++拾趣——有趣的操作符重载

操作符重载是C语言中一个非常有用的特性。它可以让我们比较优雅的简化代码&#xff0c;从而更加方便的编写逻辑。 为什么要使用操作符重载一种常见的用法是重载<<运算符&#xff0c;让标准输出可以输出自定义的类型。比如 #include <iostream>class Sample {friend…

urlparse模块(专门用来解析URL格式)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #urlparse模块&#xff08;专门用来解析URL格式&#xff09;#URL格式&#xff1a; #protocol ://hostname[:port] / path / [;parameters][?query]#fragment #parameters&#xff1a;特殊参数&#xff0c;一般用的很少。#1、url…

使用Boost的Serialization库序列化STL标准容器

使用Boost做对象序列化是非常方便的&#xff0c;本文将介绍一种序列化STL标准容器的方法。这是之前设计的异步框架的一个子功能&#xff1a;过程A将标准容器数据序列化成二进制流&#xff0c;然后将该二进制数据发送到过程B&#xff0c;过程B将数据反序列化为标准容器。&#x…

连登GitHub TOP榜,中国开发者在行动!

作者 | 唐小引数据 | 于瑞洋出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;中国开发者正在走向世界中文开源项目正在不断登上 GitHub TOP 榜不久前&#xff0c;一个名叫「wuhan2020」的开源项目进入了 GitHub Trending TOP 榜&#xff0c;截至到现在&#xff0c;已经…

Merge into的使用

用途 merge 命令可以用来用一个表中的数据来修改或者插入到另一个表。插入或者修改的操作取决于on子句的条件。该语句可以在同一语句中执行两步操作&#xff0c;可以减少执行多条insert 和update语句。merge是一个确定性的语句&#xff0c;即不会在同一条merge语句中去对同一条…

PHP和MySQL Web开发从新手到高手,第8天-创建categories管理页面

1. 创建categories管理页面 主要包含以下几个页面: A. index.php, 准备各种变量数据.供展示页面使用. B. categories.html.php, 显示categories. C. form.html.php, 用于编缉或添加作者的页面. 页面郊果: 2. categories页面的主要流程 2.1 是否已登录 if (!user_is_login()){in…

堆状态分析的利器——valgrind的DHAT

在《堆问题分析的利器——valgrind的massif》一文中&#xff0c;我们介绍了如何使用massif查看和分析堆分配/释放的问题。但是除了申请和释放&#xff0c;堆空间还有其他问题&#xff0c;比如堆空间的使用率、使用周期等。通过分析这些问题&#xff0c;我们可以对程序代码进行优…

cisco2950交换机密码恢复

在实际工作中可能会忘记交换机密码&#xff0c;导致不能对交换机进行配置的情况。cisco提供了密码恢复的方法。以下是关于交换机密码恢复说明&#xff1a;如果忘记密码&#xff0c;这时我们如果要配置交换机就必须在启动时绕过config.text的配置【密码保存在config.text中】然后…

程序员SQL都不会?能干啥?资深研发:别再瞎努力了!

国外有人曾做过调查显示&#xff1a;“SQL的使用人数仅次于JavaScript”。更有统计&#xff0c;世界上一流的互联网公司中&#xff0c;排名前 20 的有 80% 都是 MySQL 的忠实用户。为什么这项技术仍有这么多人在用&#xff1f;又为什么值得我们学习&#xff1f;1、无论你是前端…

OC管理文件方法

1、常见的NSFileManager文件方法 -(NSData *)contentsAtPath:path  //从一个文件读取数据 -(BOOL)createFileAtPath: path contents:(NSData *)data attributes:attr  //向一个文件写入数据 -(BOOL)removeItemAtPath:path error:err  //删除一个文件 -(BOOL)moveItemAtPa…

堆状态分析的利器——gperftools的Heap Profiler

在《内存泄漏分析的利器——gperftools的Heap Checker》一文中&#xff0c;我们介绍了如何使用gperftools分析内存泄漏。本文将介绍其另一个强大的工具——Heap Profiler去分析堆的变化过程。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 我们使用类似于《堆…

亲戚称呼关系表

直系血亲父系曾曾祖父--曾祖父--祖父--父亲曾曾祖母--曾祖母--祖母--父亲母系曾曾外祖父--曾外祖父--外祖父--母亲曾曾外祖母--曾外祖母--外祖母--母亲儿子&#xff1a;夫妻间男性的第一子代。女儿&#xff1a;夫妻间女性的第一子代。孙&#xff1a;夫妻间的第二子代&#xff0…

技术驰援抗疫一线, Python 线上峰会免费学!

截至截止2月9号24时&#xff0c;新型冠状病毒在全国已确诊42714例&#xff0c;疑似病例已达21675例。而专家所说的“拐点”始终未至&#xff0c;受疫的影响&#xff0c;各大公司开启远程办公模式&#xff0c;将返回工作场所办公的时间一延再延。在抗疫前线&#xff0c;中国医疗…

ZeroMq实现跨线程通信

ZeroMq实现跨线程通信 之前在技术崇拜的技术经理指导下阅读了ZeroMq的基础代码&#xff0c;现在就将阅读的心得与成果记录一下&#xff0c;并重新模仿实现了一下经理的异步队列。 1、对外接口 //主要接口&#xff08;1&#xff09;void *ymq_attach (void *ctx_, int oid, voi…

动态执行流程分析和性能瓶颈分析的利器——gperftools的Cpu Profiler

在《动态执行流程分析和性能瓶颈分析的利器——valgrind的callgrind》中&#xff0c;我们领略了valgrind对流程和性能瓶颈分析的强大能力。本文将介绍拥有相似能力的gperftools的Cpu Profiler。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 我们依然以callg…

C语言内存管理内幕(二)----半自动内存管理策略

2019独角兽企业重金招聘Python工程师标准>>> C语言内存管理内幕(二&#xff09;----半自动内存管理策略 转载于:https://my.oschina.net/hengcai001/blog/466

无人机巡逻喊话、疫情排查、送药消毒,抗疫战中机器人化身钢铁战士!

整理 | 夕颜责编 | Carol出品 | CSDN&#xff08;ID:CSDNnews&#xff09;这场抗疫战争似乎格外漫长&#xff0c;但回头细数一下才发现&#xff0c;自疫情爆发以来&#xff0c;也不过半月之久。在接下来的几个半月中&#xff0c;抗疫战仍将继续&#xff0c;各方力量也要绷紧神经…

jQuery EasyUI 表单插件 - Datebox 日期框

为什么80%的码农都做不了架构师&#xff1f;>>> 扩展自 $.fn.combo.defaults。通过 $.fn.datebox.defaults 重写默认的 defaults。 日期框&#xff08;datebox&#xff09;把可编辑的文本框和下拉日历面板结合起来&#xff0c;用户可以从下拉日历面板中选择日期。在…

互斥量、读写锁长占时分析的利器——valgrind的DRD

在进行多线程编程时&#xff0c;我们可能会存在同时操作&#xff08;读、写&#xff09;同一份内存的可能性。为了保证数据的正确性&#xff0c;我们往往会使用互斥量、读写锁等同步方法。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 互斥量的用法如下 pth…

一次性同步修改多台linux服务器的密码

如何一次性修改多台linux服务器的密码&#xff0c;这是个问题&#xff0c;我给大家提供一个脚本&#xff0c;是前一段我刚刚写的&#xff0c;希望能对大家有所帮助一 , 需求:linux环境下运行&#xff0c;需要tcl和expect支持原理说明&#xff1a;利用expect的摸拟交互的功能&…

麻省理工学院的新系统TextFooler, 可以欺骗Google的自然语言处理系统及Google Home的音频...

来源 | news.mit编译 | 武明利责编 | Carol出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;两年前&#xff0c;Google的AI还不太成熟。一段时间以来&#xff0c;有一部分计算机科学研究一直致力于更好地理解机器学习模型如何处理这些“对抗性”攻击&#xff0c;这些攻…

Oracle VS DB2 数据类型

Oracle VS DB2 本文转自&#xff1a;http://www.bitscn.com/oracle/install/200604/16541.html首先&#xff0c;通过下表介绍ORACLE与DB2/400数据类型之间的对应关系&#xff0c;是一对多的关系&#xff0c;具体采用哪种对应关系&#xff0c;应具体问题具体分析。 OracleDB2/40…

死锁问题分析的利器——valgrind的DRD和Helgrind

在《DllMain中不当操作导致死锁问题的分析--死锁介绍》一文中&#xff0c;我们介绍了死锁产生的原因。一般来说&#xff0c;如果我们对线程同步技术掌握不牢&#xff0c;或者同步方案混乱&#xff0c;极容易导致死锁。本文我们将介绍如何使用valgrind排查死锁问题。&#xff08…

疫情可视化,基于知识图谱的AI“战疫”平台如何做?

来源 | DataExa渊亭科技武汉封城半个月&#xff0c;疫情依然严峻。但与17年前的SARS相比&#xff0c;我国在此次疫情防控工作中展现出了更高的医疗救治水平、更快的防疫反应速度、更透明的信息披露机制、更迅速的数据报送机制。在这场没有硝烟的战役中&#xff0c;社会各界团结…

mysql乐观锁总结和实践

2019独角兽企业重金招聘Python工程师标准>>> 上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁&#xff0c;但是悲观锁并不是适用于任何场景&#xff0c;它也有它存在的一些不足&#xff0c;因为悲观锁大多数情况下依靠数据库的锁机制实现&#xff0c;以保证操…

数据竞争(data race)问题分析的利器——valgrind的Helgrind

数据竞争&#xff08;data race&#xff09;是指在非线程安全的情况下&#xff0c;多线程对同一个地址空间进行写操作。一般来说&#xff0c;我们都会通过线程同步方法来保证数据的安全&#xff0c;比如采用互斥量或者读写锁。但是由于某些笔误或者设计的缺陷&#xff0c;还是存…

sql charindex函数

CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下&#xff1a; CHARINDEX ( expression1 , expression2 [ , start_location ] ) Expression1是要到expression2中寻找的字符中&#xff0c;start_location是CHARINDEX函数开始在expressi…

170亿参数加持,微软发布史上最大Transformer模型

来源 | 微软译者 | 刘畅出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;Turing Natural Language Generation&#xff08;T-NLG&#xff09;是微软提供的一个有170亿参数的语言模型&#xff0c;在许多NLP任务上均优于目前的SOTA技术。我们向学者演示了该模型&#xf…

iOS 开发 OC编程 数组冒泡排序.图书管理

// // main.m // oc -5 数组 // // Created by dllo on 15/10/28. // Copyright (c) 2015年 dllo. All rights reserved. // #import <Foundation/Foundation.h> #import "Student.h" #import "Book.h" int main(int argc, const char * argv[])…