Maison >développement back-end >tutoriel php >Compiler et installer PHP sous Linux

Compiler et installer PHP sous Linux

不言
不言original
2018-06-02 09:34:037082parcourir

Cet article présente principalement la compilation et l'installation de PHP sur Linux. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Compilé et installé sur. le serveur avant l'environnement d'exécution PHP, mais après un certain temps après l'installation, je l'ai presque oublié. Je me suis juste souvenu de quelques étapes simples ici et là. Maintenant, je l'ai réinstallé sur le nouveau serveur et j'ai enregistré le processus d'installation pour un examen facile plus tard. . Il fournit également une référence pour les débutants.

1. Tout d'abord, téléchargez le package d'installation du code source PHP. Vous pouvez le télécharger depuis le site officiel de PHP http://php.net/. Option "Téléchargements" dans la barre de navigation, c'est-à-dire qu'il peut être inclus dans la page de téléchargement. À ce stade, vous pouvez choisir le serveur de téléchargement en fonction de la région. Ici, je choisis cn2.php.net pour télécharger

2. Une fois le téléchargement terminé, utilisez l'outil ftp couramment utilisé pour transférer le code source. Téléchargez le package sur le serveur sur lequel PHP doit être installé. Ici, nous le plaçons temporairement dans le répertoire /tmp <.>

(Remarque : Vous pouvez également utiliser directement l'outil de téléchargement de fichiers Linux wget pour télécharger sous Linux, sous la forme Pour wget -O php-5.6.15.tar.gz http:// cn2.php.net/get/php-5.6.15.tar.gz/from/this/mirror, -O doit être utilisé ici pour télécharger Nommez le fichier, sinon le nom du fichier téléchargé sera "miroir". vous pouvez également utiliser l'adresse miroir de Sohu pour télécharger http://mirrors.sohu.com/php/***)

3 Décompressez le fichier compressé

# tar -zxf php-5.6.15.tar.gz
4. L'étape précédente

génère le répertoire php-5.6.15, entrez dans le répertoire, et exécutez dans ce répertoire le fichier exécutable de configuration (qui représente une nouvelle ligne dans la commande Linux) , MySQL et certaines autres bibliothèques d'extensions doivent être installées avant l'installation. Plus précisément, vous pouvez compléter les extensions désinstallées en fonction du message d'erreur pendant le processus d'installation

# ./configure \
--prefix=/usr/local/php-5.6.15 \
--with-config-file-path=/usr/local/php-5.6.15/etc \
--with-mysqli \
--with-xmlrpc \
--with-openssl \
--with-zlib \
--with-freetype-dir \
--with-png-dir \
--with-jpeg-dir \
--with-gd \
--with-iconv=/usr/local/libiconv \
--enable-sockets \
--enable-zend-multibyte \
--enable-soap \
--enable-mbstring \
--enable-static \
--enable-gd-native-ttf \
--with-mcrypt \
--with-mhash \
--with-curl \
--with-xsl \
--enable-ftp \
--with-libxml-dir \
--enable-pcntl \
--enable-bcmath \
--enable-fpm
L'explication correspondante est la suivante. suit :


--prefix=/usr/local/php-5.6.15 \ (指定PHP的安装目录)
--with-apxs2=/usr/sbin/apxs \ (使PHP支持Apache服务器,使用yum安装Apache时,apxs默认在usr/sbin/目录下)
--with-config-file-path=/usr/local/php-5.6.12/etc \ (指定PHP的配置文件php.ini目录)
--with-mysqli[=DIR] \ (指定mysqli的安装路径,使PHP支持mysqli,PHP最新版本已经不再支持mysql扩展了)
--with-xmlrpc \ (使PHP支持XML-RPC,即XML远程方法调用)
--with-openssl \ (使PHP编译安装openssl模块,加密传输https时用到的)
--with-zlib[=DIR] \ (配置gd库的支持包zlib,zlib是提供数据压缩用的函式库)
--with-freetype-dir[=DIR] \ (配置gd库的支持包freetype,FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎)
--with-png-dir[=DIR] \ (配置gd库的支持包libpng)
--with-jpeg-dir[=DIR] \ (配置gd库的支持包libjpeg)
--with-gd \ (静态编译gd库)
--with-iconv=/usr/local/libiconv \ (iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件)
--enable-sockets \ (打开对socket的支持)
--enable-zend-multibyte \ (支持zend的多字节)
--enable-soap \ (打开对soap的支持,简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息)
--enable-mbstring \ (打开对多字节多字符串的支持)
--enable-static \ (生成静态链接库,在编译过程中,就将静态库中的代码载入程序,由此生成出的可执行程序在运行中不再需要静态库,但因为库中的程序代码被复制进目标程序中,因此生成的程序体积会比较大)
--enable-gd-native-ttf \  (支持TrueType字符串函数库)
--with-mcrypt \ (mcrypt算法扩展)
--with-mhash \  (mhash算法扩展)
--with-curl \ (打开curl浏览工具的支持)
--with-xsl \ (打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件)
--enable-ftp \ (打开对ftp的支持)
--with-libxml-dir \ (打开libxml2库的支持)
--enable-pcntl \ (扩展可以支持php的多线程操作)
--enable-bcmath \ (打开图片大小调整,用到zabbix监控的时候用到了这个模块)
--enable-fpm (打开对php-fpm的支持)

(Remarque : les options de configuration ci-dessus pour la compilation et l'installation sont relativement complètes et peuvent être sélectionnées, mais certaines options de configuration ne sont pas donnés. De plus, Puisque php a intégré la bibliothèque GD, le principe est que le package de support doit être installé à l'avance, comme zlib, png, jpeg, freetype, etc.)

5. Pour les erreurs ci-dessus lors du processus d'installation, découvrez quoi. n'est pas installé Extension, utilisez yum ou téléchargez le package de code source pour compiler et installer manuellement Après l'installation, recompilez et installez PHP

6. L'installation de PHP est terminée. , configurez et entrez /usr Dans /local/php-5.6.15/etc, il s'avère qu'il n'y a pas de fichier php.ini Pour le moment, le php.ini-production sous le répertoire du package d'installation /tmp/php-. 5.6.15 doit être copié dans /usr/local /php-5.6.15/etc Suivant

# cp /tmp/php-5.6.15/php.ini-production php.ini

(Remarque : php.ini-development convient aux programmes de développement, c'est-à-dire aux tests, php.ini-production a un paramètre de sécurité plus élevé adapté à une utilisation en tant que produit en ligne. Généralement, php.ini-production est remplacé par php.ini pour garantir la cohérence de l'environnement de test (local) et de l'environnement officiel (en ligne). de PHP n'est pas fait ici Explication)

7.Ajouter /usr/local/php-5.6.15/bin aux variables d'environnement système , il est pratique d'utiliser des commandes telles que php et phpize

# vi /etc/profile
Ajouter export PATH="$PATH:/usr/local/php -5.6.15 à la fin du fichier ouvert /bin", enregistrez le fichier puis redémarrez le système

8. Exécutez php. Le fonctionnement de PHP équivaut à exécuter php-fpm

# /usr/local/php-5.6.15/bin/php-fpm -c /usr/local/php-5.6.15/etc/php.ini -y /usr/local/php-5.6.15/etc/php-fpm.conf

最后,简单说下PHP的开机启动设置,因为一般的开机启动软件都应该被作为一项系统服务保存在 /etc/rc.d/init.d 中,所以php-fpm也应该作为一个可运行文件存在于该目录下(与MySQL的mysqld以及Apache的httpd相似),然而进入该目录下并未发现php-fpm,没关系,那我们就自己写一个脚本吧。具体脚本如下,可以直接在 /etc/rc.d/init.d 下新建一个php-fpm文件,复制下面代码,修改响应配置与自己所安装的PHP环境相同即可。

#!/bin/bash
#
# Startup script for the PHP-FPM server.
#
# chkconfig: 345 85 15
# description: PHP is an HTML-embedded scripting language
# processname: php-fpm
# config: /usr/local/php-5.6.15/etc/php.ini
 
# Source function library.
. /etc/rc.d/init.d/functions
 
PHP_PATH=/usr/local/php-5.6.15
DESC="php-fpm daemon"
NAME=php-fpm
# php-fpm路径
DAEMON=$PHP_PATH/sbin/$NAME
# 配置文件路径
CONFIGFILE=$PHP_PATH/etc/php-fpm.conf
# PID文件路径(在php-fpm.conf设置)
PIDFILE=$PHP_PATH/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
 
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
 
rh_start() {
  $DAEMON -y $CONFIGFILE || echo -n " already running"
}
 
rh_stop() {
  kill -QUIT `cat $PIDFILE` || echo -n " not running"
}
 
rh_reload() {
  kill -HUP `cat $PIDFILE` || echo -n " can&#39;t reload"
}
 
case "$1" in
  start)
        echo -n "Starting $DESC: $NAME"
        rh_start
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC: $NAME"
        rh_stop
        echo "."
        ;;
  reload)
        echo -n "Reloading $DESC configuration..."
        rh_reload
        echo "reloaded."
  ;;
  restart)
        echo -n "Restarting $DESC: $NAME"
        rh_stop
        sleep 1
        rh_start
        echo "."
        ;;
  *)
         echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
         exit 3
        ;;
esac
exit 0

之后可以通过使用service 命令进行操作

# service php-fpm start 启动php-fpm,
# service php-fpm stop 关闭php-fpm,
# service php-fpm restart重启php-fpm

使用chkconfig 命令添加、删除和查看系统开机自启动服务

# chkconfig --list 显示开机可以自动启动的服务 
# chkconfig --add php-fpm 添加开机自动启动php-fpm服务 
# chkconfig --del php-fpm 删除开机自动启动php-fpm服务

好了,关于PHP的安装基本上就完成啦~

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn