Heim > Backend-Entwicklung > PHP7 > Hauptteil

Erklären Sie, wie Sie PHP7 auf Centos installieren und php-fpm für den Start konfigurieren

coldplay.xixi
Freigeben: 2023-02-17 20:14:01
nach vorne
3032 Leute haben es durchsucht

Erklären Sie, wie Sie PHP7 auf Centos installieren und php-fpm für den Start konfigurieren

Schritte zum Kompilieren und Installieren von PHP-7.2.11 in Centos 7 http://cn2.php.net/distributions/php-7.2.11.tar.gz

cd /usr/local/src
wget -c http://cn2.php.net/distributions/php-7.2.11.tar.gz
Nach dem Login kopieren

Entpacken Sie nach dem Herunterladen das komprimierte Paket php-7.2.11.tar.gz und geben Sie das dekomprimierte Verzeichnis ein

tar -xzvf php-7.2.11.tar.gz
cd php-7.2.11
Nach dem Login kopieren

Erfordern Sie die Installation von PHP7 Einige abhängige Bibliothekspakete LIBXML2 und einige andere abhängige Erweiterungsbibliotheken

RECIMMILIERT (kostenlos):

Php7

evironment -Konfigurationsprüfung vor der Installation, einige abhängige Paketprüfungen von PHP7 und PHP Erweiterungen Start. Wenn das Bibliothekspaket, von dem PHP abhängt, während dieses Vorgangs fehlt, wird eine Fehlermeldung gemeldet.

Benutzer und Gruppen hinzufügen: (
Der Benutzer und die Gruppe hier sind nginx, mein Benutzername für nginx

) groupadd -r nginx && useradd -r -g nginx -s /sbin/nologin

php-Installationskonfiguration

Bitte wählen Sie den entsprechenden A B C für die Installation und Konfiguration aus -path=/usr/local/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-inline-optimization --disable-debug --disable - rpath --enable-shared --enable-soap --with-xmlrpc --with-openssl --with-mcrypt --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath - - with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre- dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable -gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-libmbfl - - with-onig --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session - - enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable- zip --enable-mysqlnd-compression-support --with-pear --enable-opcache

B. PHP 7.2.10 Mehrzeilenmodus

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \ 
--with-fpm-user=nginx \
--with-fpm-group=nginx \ 
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache
Nach dem Login kopieren
C. PHP 7.4.10

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-kerberos \
--with-libdir=lib64 \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--enable-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--with-zip \
--enable-xml \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache \
--enable-pcntl
Nach dem Login kopieren

Ab PHP 7.4.0 , müssen Sie beim Kompilieren von PHP die Konfigurationsoption

--with-zip
verwenden, um Zip-Unterstützung bereitzustellen. Für frühere PHP-Versionen müssen Sie die Option

--enable-zip

verwenden.

Kompilieren und installieren Sie php7

make && make install( Wenn ein Fehler von make: *** [sapi/cli/php] Fehler 1 auftritt, fahren Sie mit der Ausführung von make ZEND_EXTRA_LIBS='-liconv 'Befehlslösung fort

Erfolgreich kompilieren, PHP-Version überprüfen

/usr/local/php/bin/php -v

Führen Sie php-fpm aus

/usr/local/php/sbin/php-fpm

Fehler, die beim Starten von php-fpm auftreten können, sind im Wesentlichen Konfigurationsdateikonfigurations- und Umbenennungsprobleme:

Fehler 1:

Missing www.conf-Konfigurationsdatei (WARNUNG: Nichts entspricht dem Include-Muster /usr/local /php/etc/php- fpm.d/*.conf) müssen Sie www.conf.default im Verzeichnis /usr/local/php/etc/php-fpm.d/*.conf in www.conf umbenennen


Fehler 2:

Die Konfigurationsdatei php-fpm.conf fehlt. Sie müssen die Standardkonfigurationsdatei php-fpm.conf.default in /usr/local/php/etc/php-fpm.conf ändern
Fehler 3:

Fehlende php.ini-Konfigurationsdatei Nachdem php7 kompiliert und installiert wurde, werden Sie feststellen, dass keine php.ini-Konfigurationsdatei vorhanden ist. Sie müssen php.ini-produktion oder php.ini-development in das Stammverzeichnis kopieren des entpackten Pakets und benennen Sie es um. Gehen Sie für php.ini in den Ordner /usr/local/php/etc im php-kompilierten Installationsverzeichnis.

Andere Fehlerlösungen:

Fehler: Paketanforderungen (sqlite3 > 3.7 .4) wurden nicht erfüllt. -with-mcrypt, --enable-gd-native-ttf

php7.2 und höher unterstützt nicht –with-mcrypt, --enable-gd-native-ttf. Diese beiden Parameter müssen entfernt werden

Kompilieren und installieren Sie in Centos7. Nach der Installation von PHP wird PHP nach dem Neustart des Systems nicht gestartet. Sie müssen daher Centos7 ein Startskript hinzufügen, um den PHP-Dienst zu starten.

php7-Kompilierungs- und Installationsmethode: http://zixuephp.net/article-207.html

Manueller Start:

/usr/local/php/sbin/php-fpm

Automatischer Start beim Booten :

Konfiguration PHP-FPM PID aktivieren

  1. #找到php-fpm.conf配置文件
  2. /usr/local/php/etc/php-fpm.conf
  3. #开启pid ,去掉分号注释
  4. pid = run/php-fpm.pid

安装后要进行的操作:

1. 把安装目录下的 php.ini-development 复制到 /etc/ 目录下
2. 修改 /usr/local/php/etc/php-fpm.conf.default 名为 php-fpm.conf 并进入修改
3. 修改 /usr/local/php/etc/php-fpm.d/www.conf.default 为 www.conf 并进入修改
Nach dem Login kopieren

PHP 7.4.10 安装 ZIP

1 扩展包    wget https://pecl.php.net/get/zip-1.19.0.tgz 
2 解压 并进入    tar -zxvf zip-1.19.0.tgz      2.2   cd  zip-1.19.0
3 /usr/local/php/bin/phpize  
4 ./configure --with-php-config=/usr/local/php/bin/php-config   自己的php目录
5 make && make install

---------------------
然后下载最新的,解压

wget https://libzip.org/download/libzip-1.5.2.tar.gz
tar -zxvf libzip-1.5.2.tar.gz

这时发现还要安装cmake,再去下载cmake:
wget https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4.tar.gz

解压:
tar -zxvf cmake-3.15.4.tar.gz

注意:cmake要按照文档安装
./bootstrap && make && sudo make install

漫长的等待,安装完成后,执行
cmake -version
出现版本号即表示cmake安装成功。

接下来, 再进入 cd libzip-1.5.2
mkdir build && cd build/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/libzip ..
make
make install

//检测libzip是否安装成功
whereis libzip 
libzip: /usr/local/libzip
Nach dem Login kopieren

创建开机启动脚本

在Linux中将php-fpm配置成服务的方法

PHP 源文件路径: /usr/local/src/php-7.2.11/
PHP 安装后路径: /usr/local/php/

1、配置 php-fpm.conf

vim /usr/local/php/etc/php-fpm.conf

php-fpm.pid 目录必须指向:/usr/local/php/var/run/php-fpm.pid

2、拷贝php-fpm脚本至/etc/init.d目录

cp /usr/local/src/php-7.2.11/sapi/fpm/init.d.php-fpm /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
	;;

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

	configtest)
		$php_fpm_BIN -t
	;;

	*)
		echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}"
		exit 1
	;;

esac
Nach dem Login kopieren

3、设置权限并启动php-fpm:

chmod 755 /etc/init.d/php-fpm

/etc/init.d/php-fpm start

chkconfig –add php-fpm

最后,给出php-fpm以服务的方式启动、停止和重启:

service php-fpm start

service php-fpm stop

service php-fpm reload


PHP-FPM 自启动配置服务:
vim /etc/rc.d/rc.local


查看开机启动的所有服务

chkconfig --list


nginx demo 配置:(不要忘记chown www-data:www-data 网站目录 不然没权限)

server {
	    listen      80;
	    server_name {{ server_name }};
	    access_log  /data/logs/nginx/{{ server_name }}/access.log;
	    error_log   /data/logs/nginx/{{ server_name }}/error.log;
    location / {
        index           index.php index.html index.htm;
        root            /data/www/wwwroot/{{ server_name }}/;
 
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php;
        }
    }
 
    location ~ \.php$ {
        include        fastcgi_params;
        fastcgi_pass   unix:/tmp/php-fcgi.sock;
        fastcgi_index  index.php;
    }
}
Nach dem Login kopieren

php-fpm配置 (重命名两个文件 其他看实际情况配置(略。。。))
www.conf.default -> www.conf
php-fpm.conf.default -> php-fpm.conf
启动: php-fpm -D
nginx -s reload

Das obige ist der detaillierte Inhalt vonErklären Sie, wie Sie PHP7 auf Centos installieren und php-fpm für den Start konfigurieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage