이 글은 주로 Linux에서 PHP를 컴파일하고 설치하는 방법을 소개하고 있습니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다.
PHP 실행 환경을 컴파일하고 설치했습니다. 이전 서버에 설치했는데 시간이 좀 지나서 잊어버릴 뻔 했네요. 여기저기 간단한 단계만 기억해 두었으니 나중에 참고하기 쉽게 새 서버에 다시 설치해 봤습니다. . 또한 초보자를 위한 참고 자료도 제공합니다.
1. 먼저 PHP 공식 웹사이트(http://php.net/)에서 다운로드할 수 있는 PHP 소스 코드 설치 패키지가 필요합니다. 다운로드 페이지에 포함될 탐색 모음 이때 지역에 따라 다운로드 서버를 선택할 수 있습니다. 여기서는 다운로드할 cn2.php.net을 선택합니다
2. ftp 도구를 사용하여 PHP가 설치될 서버에 소스 코드 패키지를 업로드했습니다. 여기서는 임시로 /tmp 디렉토리
에 넣습니다. (참고: Linux에서 직접 다운로드하려면 Linux 파일 다운로드 도구 wget을 사용할 수도 있습니다. , wget -O php-5.6.15.tar.gz http://cn2.php.net/get /php-5.6.15.tar.gz/from/this/mirror 형식으로, 여기서는 다음을 사용해야 합니다. O 다운로드한 파일의 이름을 지정하지 않으면 다운로드한 파일 이름이 "mirror"가 됩니다. 또한 Sohu의 미러 주소를 사용할 수도 있습니다. 다운로드 http://mirrors.sohu.com/php/***)
3 .압축된 파일의 압축을 풉니다
# tar -zxf php-5.6.15.tar.gz
4. 이전 단계에서 생성된 php-5.6.15 디렉터리에 들어가고, 이 디렉터리에서 구성 실행 파일을 실행합니다(Linux 명령에서 줄바꿈을 나타냄). 그리고 일부 다른 확장 라이브러리는 설치 전에 설치해야 합니다. 특히 설치 과정 중 오류 메시지에 따라 제거된 확장을 보완할 수 있습니다
# ./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
해당 설명은 다음과 같습니다.
--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的支持)
(참고: 위의 컴파일 및 설치 구성 옵션은 비교적 완전하고 선택적으로 구성할 수 있지만 제공되지 않은 일부 구성 옵션도 있습니다. 또한 PHP에는 GD 라이브러리 통합이 있지만 전제는 지원입니다. zlib 등의 패키지를 미리 설치해야 합니다. png, jpeg, freetype 등)
5. 위 설치 과정에서 보고된 오류에 대한 응답으로 제거된 확장 프로그램을 찾아보거나 yum을 사용하거나 소스 코드 패키지를 다운로드하여 수동으로 컴파일하고 설치, 설치 후 재컴파일 PHP 설치
6. PHP 설치가 완료되었으며, 구성하고 /usr/local/php-5.6.15/etc를 입력하여 php.ini 파일이 없는지 확인합니다. 이번에 설치 패키지 디렉터리는 /tmp/php이어야 합니다. - 5.6.15에서 php.ini-production을 /usr/local/php-5.6.15/etc에 복사하세요.
# cp /tmp/php-5.6.15/php.ini-production php.ini
다운로드(참고: php.ini-development는 개발 프로그램, 즉 테스트용으로 적합합니다. php.ini-production은 보안 설정이 더 높으며 온라인 제품으로 사용하기에 적합합니다. 일반적으로 php 테스트 환경(로컬)이 공식 환경(온라인)과 일치하는지 확인하기 위해 .ini-production을 php.ini로 변경합니다. 여기서는 PHP 관련 구성을 설명하지 않습니다.)
7. /local/ php-5.6.15/bin은 php 및 phpize
# vi /etc/profile
Add import PATH="$PATH:/usr/local/과 같은 명령을 쉽게 사용할 수 있도록 시스템 환경 변수에 추가되었습니다. 열린 파일 끝 -5.6.15/bin"에 php를 저장하고, 파일을 저장하고 시스템을 다시 시작하세요
8. php를 실행하세요. PHP의 작업은 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'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的安装基本上就完成啦~
위 내용은 Linux에서 PHP 컴파일 및 설치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!