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

# 安装 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=https://www.jb51.net/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=https://www.jb51.net/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=https://www.jb51.net/usr/local/freetype.2.1.10/ make && make install

3、预编译配置参数

./configure --prefix=https://www.jb51.net/data/server/php \ --enable-opcache \ --with-config-file-path=https://www.jb51.net/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=https://www.jb51.net/usr/local/freetype.2.1.10 \ --with-jpeg-dir=https://www.jb51.net/usr/local/jpeg.6 \ --with-png-dir=https://www.jb51.net/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

# 在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 进程服务主配置文件

# 设置错误日志的路径 error_log = /var/log/php-fpm/error.log # 引入文件中的配置 include=https://www.jb51.net/usr/local/php7/etc/php-fpm.d/*.conf # 设置主进程打开的最大文件数 rlimit_files = 102400 进程服务扩展配置文件 # 设置用户和用户组 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启动脚本

#! /bin/sh # prefix=https://www.jb51.net/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程序

/etc/init.d/php-fpm start # 修改套接字文件权限 chown -R /var/run/php-fpm/

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/56cc031d5b2ec46d97032909dec3b350.html