検索
ホームページバックエンド開発PHPチュートリアルLinuxにPHPをインストールする方法
LinuxにPHPをインストールする方法Mar 17, 2018 am 10:46 AM
linuxphpどうやって

この記事では、主に Linux に php をインストールする方法を写真とテキストの形式で共有し、お役に立てれば幸いです。

1. php公式ウェブサイトから対応するバージョンをダウンロードします

phpのダウンロードページには最新バージョンのみがあり、古いバージョンはダウンロードページで見つけることができなくなっているため、次の URL に手動でアクセスしてダウンロードします。

http://cn.php.net/distributions/php-5.3.9.tar.bz2 一部の古いバージョンがこのページにリストされています。5.3 バージョンが使用されます。 gz 形式です


2. php

をインストールし、解凍されたパッケージディレクトリに移動し、コマンドを実行します: ./configure --prefix=/opt/local /php、「 /opt/local/php」はインストールパスです。任意のインストールパスに変更できます。

(1) 必要なプラグインがいくつかないことを示すプロンプトが表示される場合があります。たとえば、最も可能性の高いエラーは次のとおりです。configure error xml2-config not found. libxml2 のインストールを確認してください。この時点で実行してください。コマンド: yum -y install libxml2 libxml2-devel、対応するプラグインのインストールなど

すべてのプラグインがインストールされたら、再度実行します

<span style="font-size: 14px;">./configure --prefix=/opt/local/php<br/></span>


(2) ここに php-fpm 関数をインストールしたい場合 その場合は、yum を使用してさらに次のようなプラグインをインストールする必要があります:

<span style="font-size: 14px;">yum -y install openssl openssl-devel bzip2 bzip2-devel curl curl-devel readline-devel fcgi php-mcrypt libmcrypt libmcrypt-devel<br/></span>


-mcrypt libmcrypt libmcrypt-devel を実行すると、パッケージが見つからないというメッセージが表示される場合があります。この場合、問題を解決するにはソースを更新する必要があります。

<span style="font-size: 14px;">yum -y install epel-release<br/>yum update<br/></span>

このうち、Update は成功するまでに 2 回実行され、その後、configure が実行されます。

./configure --prefix=/opt/local/php5.3.29 --with-config-file-path=/etc --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --with-readline --without-sqlite3 --without-pdo-sqlite --with-pear  

通过后执行make

此时可能会出现以下提示

PEAR package PHP_Archive not installed: generated phar will require PHP&#39;s phar extension be enabled.

此处可暂进忽略,等之后再行安装,再次在php目录执行make all install

如果安装了php-fpm,则还需要执行以下命令,将php/etc目录下的配置文件拷贝一份

cp etc/php-fpm.conf.default etc/php-fpm.conf

将php/lib/php.ini拷贝到/etc/下

3.初装phar

这时可以执行

<span style="font-size: 14px;">wget http://pear.php.net/go-pear.phar<br/></span>

之后再执行

/opt/local/php/bin/php /opt/local/go-pear.phar

在出现的提示后,选1,选择phar安装目录,然后一路回车进行安装即可

最后制作php软链,让php全局可用

<span style="font-size: 14px;">ln -s /opt/local/php/bin/php /usr/bin/php<br/></span>

4.验证

执行php -v和sbin/php-fpm -v查看php版本以验证php是否已安装



5.启动php-fpm

php/sbin/php-fpm

INT, TERM 立刻终止

QUIT 平滑终止

USR1 重新打开日志文件

USR2 平滑重载所有worker进程并重新载入配置和二进制模块

示例:

php-fpm 关闭:

kill -INT `cat /opt/local/php/var/run/php-fpm.pid`

php-fpm 重启:

kill -USR2 `cat /opt/local/php/var/run/php-fpm.pid`

如果找不到php-fpm.pid文件,可通过查找php-fpm进程号进行重启和关闭

例如

<span style="font-size: 14px;">[root@SH-DEV local]# ps -aux|grep php-fpm<br/>root     141735  0.0  0.0 201840  3892 ?       <br/> Ss   16:27   0:00 php-fpm: master process (/opt/local/php5.3.29/etc/php-fpm.conf)<br/><br/>kill -USR2 141735<br/></span>


6.修改php-fpm配置

(1)如果在nginx.conf中使用了fastcgi_pass   unix:/tmp/php-cgi.sock,则需要修改php-fpm.conf,找到如下码段:

<span style="font-size: 14px;">; The address on which to accept FastCGI requests.<br/>; Valid syntaxes are:<br/>;   &#39;ip.add.re.ss:port&#39;    - to listen on a TCP socket to a specific address on<br/>;                            a specific port;<br/>;   &#39;port&#39;                 - to listen on a TCP socket to all addresses on a<br/>;                            specific port;<br/>;   &#39;/path/to/unix/socket&#39; - to listen on a unix socket.<br/>; Note: This value is mandatory.<br/>;listen = 127.0.0.1:9000<br/>listen = /tmp/php-cgi.sock<br/><br/>; Set listen(2) backlog. A value of &#39;-1&#39; means unlimited.<br/>; Default Value: 128 (-1 on FreeBSD and OpenBSD)<br/>;listen.backlog = -1<br/><br/>; Set permissions for unix socket, if one is used. In Linux, read/write<br/>; permissions must be set in order to allow connections from a web server. Many<br/>; BSD-derived systems allow connections regardless of permissions.<br/>; Default Values: user and group are set as the running user<br/>;                 mode is set to 0660<br/>listen.owner = nobody<br/>listen.group = nobody<br/>listen.mode = 0660<br/></span>

将原listen和listen.ownerlisten.group段做如上修改,其中listen.ownerlisten.group为nginx启动用户名,如此处不修改,会提示

nginx error connect to php-fpm.sock failed (13: Permission denied)

当然此处如果将sock放在内存中/dev/shm/php-fpm.sock会更快

(2)修改php-fpm线程数

<span style="font-size: 14px;">; Per pool prefix<br/>; It only applies on the following directives:<br/>; - &#39;slowlog&#39;<br/>; - &#39;listen&#39; (unixsocket)<br/>; - &#39;chroot&#39;<br/>; - &#39;chdir&#39;<br/>; - &#39;php_values&#39;<br/>; - &#39;php_admin_values&#39;<br/>;   dynamic - the number of child processes are set dynamically based on the<br/>;             following directives. With this process management, there will be<br/>;             always at least 1 children.<br/>;             pm.max_children      - the maximum number of children that can<br/>;                                    be alive at the same time.<br/>;             pm.start_servers     - the number of children created on startup.<br/>;             pm.min_spare_servers - the minimum number of children in &#39;idle&#39;<br/>;                                    state (waiting to process). If the number<br/>;                                    of &#39;idle&#39; processes is less than this<br/>;                                    number then some children will be created.<br/>;             pm.max_spare_servers - the maximum number of children in &#39;idle&#39;<br/>;                                    state (waiting to process). If the number<br/>;                                    of &#39;idle&#39; processes is greater than this<br/>;                                    number then some children will be killed.<br/>;  ondemand - no children are created at startup. Children will be forked when<br/>;             new requests will connect. The following parameter are used:<br/>;             pm.max_children           - the maximum number of children that<br/>;                                         can be alive at the same time.<br/>;             pm.process_idle_timeout   - The number of seconds after which<br/>;                                         an idle process will be killed.<br/>; Note: This value is mandatory.<br/>pm = dynamic<br/>#如何控制子进程,选项有static和dynamic。如果选择static,则由pm.max_children指定固定的子进程数。如果选择dynamic,则由下面的参数决定<br/><br/>; The number of child processes to be created when pm is set to &#39;static&#39; and the<br/>; maximum number of child processes when pm is set to &#39;dynamic&#39; or &#39;ondemand&#39;.<br/>; This value sets the limit on the number of simultaneous requests that will be<br/>; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.<br/>; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP<br/>; CGI. The below defaults are based on a server without much resources. Don&#39;t<br/>; forget to tweak pm.* to fit your needs.<br/>; Note: Used when pm is set to &#39;static&#39;, &#39;dynamic&#39; or &#39;ondemand&#39;<br/>; Note: This value is mandatory.<br/>pm.max_children = 8<br/>#子进程最大数<br/><br/>; The number of child processes created on startup.<br/>; Note: Used only when pm is set to &#39;dynamic&#39;<br/>; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2<br/>pm.start_servers = 8<br/>#启动时的进程数<br/><br/><br/>; The desired minimum number of idle server processes.<br/>; Note: Used only when pm is set to &#39;dynamic&#39;<br/>; Note: Mandatory when pm is set to &#39;dynamic&#39;<br/>pm.min_spare_servers = 1<br/>#保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程<br/><br/>; The desired maximum number of idle server processes.<br/>; Note: Used only when pm is set to &#39;dynamic&#39;<br/>; Note: Mandatory when pm is set to &#39;dynamic&#39;<br/>pm.max_spare_servers = 8<br/>#保证空闲进程数最大值,如果空闲进程大于此值,此进行清理<br/></span>

相关推荐:

Linux上安装php-mysqlnd扩展实例

mac安装php开发环境方法实例分享

最详细的linux安装php过程

以上がLinuxにPHPをインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
什么是linux设备节点什么是linux设备节点Apr 18, 2022 pm 08:10 PM

linux设备节点是应用程序和设备驱动程序沟通的一个桥梁;设备节点被创建在“/dev”,是连接内核与用户层的枢纽,相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。设备节点使用户可以与内核进行硬件的沟通,读写设备以及其他的操作。

Linux中open和fopen的区别有哪些Linux中open和fopen的区别有哪些Apr 29, 2022 pm 06:57 PM

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

linux怎么判断pcre是否安装linux怎么判断pcre是否安装May 09, 2022 pm 04:14 PM

在linux中,可以利用“rpm -qa pcre”命令判断pcre是否安装;rpm命令专门用于管理各项套件,使用该命令后,若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。

linux中什么叫端口映射linux中什么叫端口映射May 09, 2022 pm 01:49 PM

端口映射又称端口转发,是指将外部主机的IP地址的端口映射到Intranet中的一台计算机,当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上;可以通过使用动态或固定的公共网络IP路由ADSL宽带路由器来实现。

linux中eof是什么linux中eof是什么May 07, 2022 pm 04:26 PM

在linux中,eof是自定义终止符,是“END Of File”的缩写;因为是自定义的终止符,所以eof就不是固定的,可以随意的设置别名,linux中按“ctrl+d”就代表eof,eof一般会配合cat命令用于多行文本输出,指文件末尾。

linux怎么查询mac地址linux怎么查询mac地址Apr 24, 2022 pm 08:01 PM

linux查询mac地址的方法:1、打开系统,在桌面中点击鼠标右键,选择“打开终端”;2、在终端中,执行“ifconfig”命令,查看输出结果,在输出信息第四行中紧跟“ether”单词后的字符串就是mac地址。

手机远程linux工具有哪些手机远程linux工具有哪些Apr 29, 2022 pm 05:30 PM

手机远程linux工具有:1、JuiceSSH,是一款功能强大的安卓SSH客户端应用,可直接对linux服务进行管理;2、Termius,可以利用手机来连接Linux服务器;3、Termux,一个强大的远程终端工具;4、向日葵远程控制等等。

linux中lsb是什么意思linux中lsb是什么意思May 07, 2022 pm 05:08 PM

linux中,lsb是linux标准基础的意思,是“Linux Standards Base”的缩写,是linux标准化领域中的标准;lsb制定了应用程序与运行环境之间的二进制接口,保证了linux发行版与linux应用程序之间的良好结合。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)