centos7.5环境下编译安装php7.0.30并安装redis和mongo扩展
Posted reblue520
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7.5环境下编译安装php7.0.30并安装redis和mongo扩展相关的知识,希望对你有一定的参考价值。
1.安装php7.0.30的脚本 # vim install_php.sh #!/bin/bash # 安装基本依赖 yum install -y gcc gcc-c++ htop telnet iotop iptraf iftop make logrotate xinetd ntsysv sysstat perl autoconf libjpeg libjpeg-devel libpng libpng-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel libxml2 libxml2-devel libxslt-devel libevent-devel libtool libtool-ltdl bison ntpdate patch vim wget openssh-clients bind-utils yum -y install libicu-devel libpng12 libpng12-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel libxslt-devel curl-devel ## zlib echo "*******************install zlib start*******************" cd /usr/local/src && wget http://www.zlib.net/zlib-1.2.11.tar.gz tar -xvzf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure --prefix=/usr/local/zlib make && make install ls -l /usr/local/zlib echo "*******************install zlib end*******************" ## openssl echo "*******************install openssl start*******************" cd /usr/local/src && wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz --no-check-certificate tar -xzf openssl-1.1.0e.tar.gz cd openssl-1.1.0e/ ./config --prefix=/usr/local/openssl ./config -t make && make install ls /usr/local/bin/openssl -l echo "*******************install openssl end*******************" ## freetype echo "*******************install freetype start*******************" cd /usr/local/src && wget https://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.gz --no-check-certificate tar -zxvf freetype-2.4.0.tar.gz cd freetype-2.4.0/ ./configure --prefix=/usr/local/freetype make && make install echo "*******************install freetype end*******************" ## PHP安装 echo "*******************install php-7.0.30 start*******************" cd /usr/local/src && wget http://cn2.php.net/distributions/php-7.0.30.tar.gz tar -zxvf php-7.0.30.tar.gz cd php-7.0.30 ./configure --prefix=/usr/local/php7.0.30 --mandir=/usr/local/php7.0.30/share/man --infodir=/usr/local/php7.0.30/share/info --enable-fpm --enable-mbstring --enable-zib --enable-bcmath --enable-opcache --enable-pcnt --enable-soa --enable-calenda --enable-exif --enable-ftp --enable-intl --with-curl --with-gd --with-jpeg-dir=/usr/local/zlib --with-png-dir=/usr/local/zlib --with-mysql --with-pdo_mysql --with-mcrypt --with-freetype-dir=/usr/local/freetype --with-zlib=/usr/local/zlib --with-openssl make && make install if [ $? != 0 ];then exit 7 fi ln -s /usr/local/php7.0.30 /usr/local/php cp /usr/local/src/php-7.0.30/php.ini-development /usr/local/php7.0.30/lib/php.ini cp /usr/local/php7.0.30/etc/php-fpm.conf.default /usr/local/php7.0.30/etc/php-fpm.conf cp /usr/local/php7.0.30/etc/php-fpm.d/www.conf.default /usr/local/php7.0.30/etc/php-fpm.d/www.conf echo "*******************install php-7.0.30 end*******************" ## Mongo扩展 echo "*******************install Mongo扩展 start*******************" cd /usr/local/src && wget http://pecl.php.net/get/mongodb-1.5.2.tgz tar -zxvf mongodb-1.5.2.tgz cd mongodb-1.5.2/ /usr/local/php7.0.30/bin/phpize ./configure --with-php-config=/usr/local/php7.0.30/bin/php-config make && make install ls /usr/local/php7.0.30/lib/php/extensions/no-debug-non-zts-20151012/ echo "*******************install Mongo扩展 end*******************" ## Redis扩展 echo "*******************install Redis扩展 start*******************" cd /usr/local/src && wget http://pecl.php.net/get/redis-4.0.2.tgz tar -zxvf redis-4.0.2.tgz cd redis-4.0.2/ /usr/local/php7.0.30/bin/phpize ./configure --with-php-config=/usr/local/php7.0.30/bin/php-config make && make install ls /usr/local/php7.0.30/lib/php/extensions/no-debug-non-zts-20151012/ echo "*******************install Redis扩展 end*******************" ## tideways扩展 echo "*******************install tideways扩展 start*******************" cd /usr/local/src && wget https://s3-eu-west-1.amazonaws.com/tideways/extension/5.0.18/tideways-php-5.0.18-x86_64.tar.gz --no-check-certificate tar -zxf tideways-php-5.0.18-x86_64.tar.gz cd tideways-5.0.18 /usr/local/php7.0.30/bin/phpize cp tideways-php-7.0.so /usr/local/php7.0.30/lib/php/extensions/no-debug-non-zts-20151012/ cd /usr/local/php7.0.30/lib/php/extensions/no-debug-non-zts-20151012/ mv tideways-php-7.0.so tideways.so echo "*******************install tideways扩展 end*******************" ## ioncube_loaders 扩展 echo "*******************install ioncube_loaders start*******************" cd /usr/local/src && wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz --no-check-certificate tar -zxvf ioncube_loaders_lin_x86-64.tar.gz cd ioncube/ ls cp ioncube_loader_lin_7.0.so /usr/local/php7.0.30/lib/php/extensions/no-debug-non-zts-20151012/ echo "*******************install ioncube_loaders end*******************" 2.修改配置文件 # php.ini配置文件 # vim /usr/local/php7.0.30/lib/php.ini [dba] extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/ extension=redis.so extension=mongodb.so [tideways] extension=tideways.so ;不需要自动加载,在程序中控制就行 tideways.auto_prepend_library=0 ;频率设置为100,在程序调用时能改 tideways.sample_rate=100 [ionCube Loader] zend_extension=ioncube_loader_lin_7.0.so # php-fpm.conf文件 [[email protected]_filmora_file01:/usr/local/php]# egrep -v ‘^$|^;‘ /usr/local/php/etc/php-fpm.conf [global] process.max = 256 rlimit_files = 65535 events.mechanism = epoll include=/usr/local/php7.0.30/etc/php-fpm.d/*.conf sed -i ‘s#user = nobody#user = apache#g‘ /usr/local/php7.0.30/etc/php-fpm.d/www.conf sed -i ‘s#group = nobody#group = users#g‘ /usr/local/php7.0.30/etc/php-fpm.d/www.conf # www.conf文件 [[email protected]_filmora_file01:/usr/local/php]# egrep -v ‘^$|^;‘ /usr/local/php/etc/php-fpm.d/www.conf [www] user = apache group = users listen = 127.0.0.1:9000 pm = dynamic pm.max_children = 500 pm.start_servers = 32 pm.min_spare_servers = 16 pm.max_spare_servers = 64 pm.process_idle_timeout = 10s; pm.max_requests = 10240 request_terminate_timeout = 100 rlimit_core = 8 ##################启动脚本 # 生成软连接 [[email protected]_filmora_file02:/usr/local/src]# rm -f /usr/local/php [[email protected]_filmora_file02:/usr/local/src]# ln -s /usr/local/php7.0.30/ /usr/local/php [[email protected]_filmora_file01:/usr/local/src/tideways-5.0.18]# vim /etc/init.d/php-fpm #! /bin/sh ### BEGIN INIT INFO # Provides: php-fpm # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts php-fpm # Description: starts the PHP FastCGI Process Manager daemon ### END INIT INFO prefix=/usr/local/php 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 ;; 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}" exit 1 ;; esac ####################### 测试的域名 # vim /usr/local/nginx/conf/vhost.d/film.chinasoft.com.conf server { listen 80; server_name film.chinasoft.com; proxy_connect_timeout 1800s; proxy_read_timeout 1800s; proxy_send_timeout 1800s; access_log /data/www/logs/nginx_log/access/film.chinasoft.com_access.log main ; access_log on; error_log /data/www/logs/nginx_log/error/film.chinasoft.com_error.log ; root /data/www/vhosts/film.chinasoft.com/httpdocs/api/public ; index index.html index.shtml index.php ; error_page 404 403 /404.html; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ^~ /logs/ { deny all; } } server { listen 443; ssl on; ssl_certificate cert2016/chinasoft_com.crt; ssl_certificate_key cert2016/chinasoft_com.key; ssl_dhparam cert2016/dh_2048.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!AES128-GCM-SHA256:!AES256-GCM-SHA384:!AES128-SHA256:!AES256-SHA256:!AES128-SHA:!AES256-SHA:AES:!CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"; ssl_prefer_server_ciphers on; server_name film.chinasoft.com; access_log /data/www/logs/nginx_log/access/film.chinasoft.com_access.log main ; error_log /data/www/logs/nginx_log/error/film.chinasoft.com_error.log ; root /data/www/vhosts/film.chinasoft.com/httpdocs/api/public ; index index.html index.shtml index.php ; error_page 404 403 /404.html; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } # 创建测试页面 [[email protected]_filmora_file01:/usr/local/php]# mkdir -p /data/www/vhosts/film.chinasoft.com/httpdocs/api/public [[email protected]_filmora_file01:/usr/local/php]# echo "<?php echo phpinfo(); ?>"> /data/www/vhosts/film.chinasoft.com/httpdocs/api/public/index.php
以上是关于centos7.5环境下编译安装php7.0.30并安装redis和mongo扩展的主要内容,如果未能解决你的问题,请参考以下文章