この記事では、PHP に関する関連知識を提供します。主に、Centos システムで PHP をコンパイルおよびインストールする方法と、PHP を正しく構成する方法を紹介します。手順は非常に詳細です。興味のある方は以下をご覧ください。皆様のお役に立てれば幸いです。
PHP (正式名: PHP: Hypertext Preprocessor、つまり「PHP: Hypertext Preprocessor」) は、オープンソースの汎用コンピュータ スクリプト言語であり、特に次の用途に適しています。 Web 用に開発されており、HTML に埋め込むことができます。 PHP の構文は、C 言語、Java、Perl などの一般的なコンピューター言語の特徴を取り入れているため、一般のプログラマーでも簡単に学習できます。 PHP の主な目標は、Web 開発者が動的ページを迅速に作成できるようにすることです。
公式 Web サイトを使用した場合、ダウンロード速度は遅くなりますが、セキュリティは保証されています。セキュリティに要件がない場合は、Baidu で関連ミラーを検索することもできます。この記事では最新の安定バージョン PHP 8.1.6 を選択しています
wget https://www.php.net/distributions/php-8.1.6.tar.gz tar -zxvf php-8.1.6.tar.gz cd php-8.1.6
yum install libxml2 libxml2-devel libsqlite3x-devel openssl bzip2 libcurl-devel libcurl libjpeg libpng freetype gmp libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glib2 ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel -y
注: 現在の Centos 公式イメージは停止していますServing、yum install
yum ソースには oniguruma パッケージがないため、ここでは github のソース コードを使用してコンパイルおよびインストールしますプロジェクトアドレス: https://github.com/kkos/onigurumaInstallation
develソフトウェアで、エラーが報告されてインストールできない場合は、次の
CentOS-Base.repo.rpmsaveのファイルの内容を上書きしてみてください。
/etc/yum.repos.d/ディレクトリ。
CentOS-Linux-BaseOS.repoに、
CentOS-AppStream.repo.rpmsaveが # に上書きされます。 ##CentOS-Linux-AppStream.repo
、操作前にバックアップを作成してください
wget https://github.com/kkos/oniguruma/releases/download/v6.9.8/onig-6.9.8.tar.gz tar -zxvf onig-6.9.8.tar.gz cd onig-6.9.8 ./configure --prefix=/usr make && make install
#ユーザーの作成セキュリティ上の理由から、php を実行するためのユーザーを作成する必要があります。通常、このユーザーはログインできません。この記事ではユーザーを作成します。名前とユーザー グループは両方とも www
、この名前ですカスタマイズ可能# 创建用户组 groupadd www # 创建用户 useradd -g www www -M -s /sbin/nologin
#-M
ホーム ディレクトリを作成しないでください (プログラムの実行にホーム ディレクトリは必要ありません) ログインを許可しないでください。より安全です
コンパイルしてインストール# 生成编译文件 ./configure --prefix=/www/server/php81 --with-config-file-path=/www/server/php81/etc --enable-fpm --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype --with-mcrypt --with-jpeg --with-png -with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl -enable-mbstring --enable-gd --with-openssl --with-mhash --enable-pcntl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-opcache --with-xsl --enable-sockets --enable-mbregex --enable-ftp --with-webp # 编译并安装 make && make install # 复制配置文件 cp php.ini-production /www/server/php81/etc/php.ini # 或者使用 development cp php.ini-development /www/server/php81/etc/php.ini
--enable-fpm パラメータは削除できます。
/www/server/apache は
apache のインストール ディレクトリです。コンパイル後、
apache の設定ファイルにある
php_module のコメントを解除します。この記事では # については詳しく説明しません。 ##apache
構成。 構成
/etc/profile PATH=$PATH:/www/server/php81/bin && エクスポート PATH を追加し、
source /etc/profile を使用して、構成をすぐに有効にします。 作成
php-fpm
ソフトリンク: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>ln -s /www/server/php81/sbin/php-fpm /www/server/php81/bin/php-fpm</pre><div class="contentsignin">ログイン後にコピー</div></div>
cp /www/server/php81/etc/php-fpm.conf.default /www/server/php81/etc/php-fpm.conf cp /www/server/php81/etc/php-fpm.d/www.conf.default /www/server/php81/etc/php-fpm.d/www.conf
Start php-fpm: /www/server/php81/sbin/php-fpm
Edit
nginx.confファイルで、対応する
serverの下に次の内容を追加します:
location ~ [^/]\.php(/|$) { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; }
#nginx を再起動します、
<?php phpinfo();
在日常的开发中,不同项目可能需要不同版本的 php
来运行,这就需要通过一些配置来实现 php
的共存。多个 php
版本共存时,需要在编译时将不同版本的 php
安装到不同的目录。
打开 php
安装路径,编辑文件 etc/php-fpm.d/www.conf
或 etc/php-fpm.conf
,在文件中新增或修改以下项:
[www] ; 根据版本配置,比如 php8.1 配置为 php-cgi-81.sock listen = /tmp/php-cgi-81.sock listen.backlog = 8192 listen.allowed_clients = 127.0.0.1 ; 运行 master 进程用户名,一定要设置!!并且 listen 中设置的文件 nginx 必须有读权限,否则会报错 listen.owner = www ; 运行 master 进程用户名,参考上一个 listen.group = www listen.mode = 0666 ; worker 进程运行的用户,该用户需要有运行的 PHP 文件的读权限,如涉及文件上传还需要对应目录的写权限 user = www ; worker 进程的用户组,参考上一项 group = www ; 动态调整 worker 数 pm = dynamic ; 依据版本设置 如 php8.1 配置为 phpfpm_81_status pm.status_path = /phpfpm_81_status ; 最大 worker 进程数 一般设置为 内存/50M pm.max_children = 50 ; 启动时的 worker 进程数 pm.start_servers = 5 ; 限制时的最小 worder 进程数 pm.min_spare_servers = 5 ; 限制时的最大 worder 进程数 pm.max_spare_servers = 10 ; 请求超时时间 request_terminate_timeout = 100 ; 慢日志记录时间,请求事件超出此时间会记录日志 request_slowlog_timeout = 30 ; 慢日志目录,目录一定要存在且上面设置的 user 用户要有写权限 slowlog = /www/wwwlogs/php/slow.log
随后在 nginx 配置文件,对应的 server 中修改 fastcgi_pass
为刚才设置中的 listen
对应的路径,注意此文件 nginx 运行用户必须有读权限,否则会报错:
location ~ [^/]\.php(/|$) { - fastcgi_pass 127.0.0.1:9000; + fastcgi_pass unix:/tmp/php81.sock; fastcgi_index index.php; include fastcgi.conf; }
php-fpm
即 php-Fastcgi Process Manager
,php-fpm
是 FastCGI
的实现,并提供了进程管理的功能。php-fpm
进程包含 master
进程与 worker
进程,一般情况下,master
进程只有一个,负责监听端口、调度请求,而 worder
进程则有多个,每个进程内部都嵌入了一个 PHP
解释器,是 PHP
代码真正运行的地方。前文设置中的 worker
即 php-fpm
的 worker
进程数量。
编辑文件 /etc/init.d/php-fpm81
,如需多版本兼容文件名后加上当前版本,如这里使用 php-fpm81
,写入如下内容:
#!/bin/bash # chkconfig: - 51 64 . /etc/init.d/functions # php-fpm 路径 exec=/www/server/php81/sbin/php-fpm # 锁文件 用于识别当前软件是否在运行 lock=/var/lock/subsys/php-fpm81 # 标识 输出信息用 可随意修改 proc=php-fpm81 function start() { pidofproc $exec > /dev/null [ $? = 0 ] && echo "${proc} 正在运行中" && exit daemon $exec if [ $? = 0 ]; then echo "${proc} 启动成功" rm -f lock touch $lock else echo "${proc} 启动失败 $?" fi } function stop() { pidofproc $exec > /dev/null [ $? != 0 ] && echo "${proc} 未运行" && exit killproc $exec if [[ $? == 0 ]]; then echo "${proc} 停止成功" rm -f $lock else echo "${proc} 停止失败 $?" fi } function reload() { killproc $exec -HUP if [[ $? == 0 ]]; then echo "平滑重启成功" else echo "平滑重启失败 $?" fi } function restart() { stop start } function procStatus() { status $exec > /dev/null if [[ $? == 0 ]]; then echo "${proc} 已启动" else echo "${proc} 未启动" fi } case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) restart ;; status) procStatus ;; *) echo $"Usage: $0 {start|stop|reload|restart|status}" esac
随后添加为开机自启即可,如下:( php-fpm81
是上一步自定义得到文件名)
# 添加运行权限 chmod +x /etc/init.d/php-fpm81 chkconfig --add php-fpm81 chkconfig php-fpm81 on
手动操作命令如下:
# 启动 /etc/init.d/php-fpm81 start # 停止 /etc/init.d/php-fpm81 stop # 平滑重启 /etc/init.d/php-fpm81 reload # 重启 /etc/init.d/php-fpm81 restart # 运行状态 /etc/init.d/php-fpm81 status
推荐学习:《PHP视频教程》
以上がCentos で php8 をコンパイル、インストール、構成する詳細な手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。