Heim > Artikel > Backend-Entwicklung > 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
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
Erfordern Sie die Installation von PHP7 Einige abhängige Bibliothekspakete LIBXML2 und einige andere abhängige Erweiterungsbibliotheken
Benutzer und Gruppen hinzufügen: (RECIMMILIERT (kostenlos):
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
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
Ab PHP 7.4.0 , müssen Sie beim Kompilieren von PHP die Konfigurationsoption
--with-zipverwenden, um Zip-Unterstützung bereitzustellen. Für frühere PHP-Versionen müssen Sie die OptionKompilieren und installieren Sie php7--enable-zip
verwenden.
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 -vFü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:
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 werdenKompilieren 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.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 并进入修改
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
创建开机启动脚本
在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
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; } }
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!