# LAMPの組み合わせをコンパイルしてインストールします。
# httpd+php
# cgi
# pm(fastcgi):独立したサービスとしてのPhp
# fastcgiプロトコルのhttpdサポート:
# httpd-2.2:追加のfcgiモジュールをインストールする必要があります。
# httpd-2.4:fcgiモジュールが付属しています。
# インストール手順:
# シーケンス:mariadb–>httpd–>php
# httpdとmariadbの順序は関係ありません。これは、PHPのコンパイル時にhttpdのパスを指定する必要があるため、PHPが最後です。
# 開発ツールをインストールする
yum groupinstall "Development tools"
wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.41.tar.gz
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
[ root@master httpd]# tar -xvf apr-1.7.0.tar.gz && cd apr-1.7.0[root@master apr-1.7.0]# ./configure --profix=/usr/local/apr
[ root@master apr-1.7.0]# make && make install
[ root@master httpd]# tar -xvf apr-util-1.6.1.tar.gz && cd apr-util-1.6.1[root@master apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[ root@master apr-util-1.6.1]# make && make install
[ root@master httpd]# tar -xvf pcre-8.43.tar.gz && cd pcre-8.43[root@master pcre-8.43]# ./configure --prefix=/usr/local/pcre
[ root@master pcre-8.43]# make && make install
# 必要な依存関係
ncurses-devel expat-devel zlib-static zlib-devel autoconf freetype
libjpeg libjpeg-devel libpng libpng-del libxml2 libxml2-devel freetype-devel
curl-devel libtool libtool-ltdl libtool-ltdl-devel libevent libevent-devel
# コンパイルプロセス
[ root@master httpd]# tar -xvf httpd-2.4.41.tar.gz
[ root@master httpd]# cd httpd-2.4.41[root@master httpd-2.4.41]# ./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-headers --enable-mime-magic \
- - enable-proxy --enable-so --enable-rewrite --enable-proxy-fcgi --enable-cgi --enable-ssl --enable-proxy-http2 --enable-ssl \
- - enable-deflate --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util \
- - with-nghttp2=/usr/local/nghttp2 --enable-mpms-shared=all --enable-nonportable-atomics=yes --enable-remoteip --enable-http2
[ root@master httpd-2.4.41]# make -j8 && make install
[ root@master httpd]# groupadd apache
[ root@master httpd]# useradd -g apache -r -M -s /usr/sbin/nologin apache
# システムアカウントを作成する,ホームディレクトリを作成せず、グループをapacheとして指定し、nologinを使用してapacheユーザーを作成します
[ root@master apache]# chown -R apache:apache ./*
[ root@master apache]# PATH=$PATH:/usr/local/apache
[ root@master apache]# export $PATH
[ root@master apache]# vim /etc/httpd/httpd.conf
User apache
Group apache
# apachectlをinitにコピーできます.dディレクトリ
[ root@master ~]# ln -s /usr/local/apache/bin/apachectl /etc/init.d/httpd
# デーモンの起動方法を構成します
[ root@master apache]# chown -R apache:apache ./*
[ root@master apache]# cp bin/apachectl /etc/init.d/httpd
[ root@master apache]# chkconfig --add httpd
[ root@master apache]# chkconfig httpd on
[ root@master apache]# chkconfig --list
# CentOS7systemctl起動方法
[ root@master ~]# vim /etc/systemd/system/httpd.service
[ Unit]
Description=Apache Server Daemon
Documentation=man:httpd man:httpd(8) man:apachectl
After=network.target rsyslog.service
[ Service]
Type=forking
ExecStart=/etc/init.d/httpd -k start
ExecStop=/etc/init.d/httpd -k stop
ExecReload=/etc/init.d/httpd -k graceful
ExecRestart=/etc/init.d/httpd -k restart
[ Install]
WantedBy=multi-user.target
。/ configure
を使用したコンパイルと構成の方法はキャンセルされ、cmakeツールに置き換えられました。したがって、最初にcmakeツールをコンパイルしてシステムにインストールする必要があります。# ソースパッケージをダウンロード
[ root@master httpd]# wget https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2.tar.gz
[ root@master httpd]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28.tar.gz
[ root@master httpd]# wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
# cmakeをコンパイルする
[ root@master httpd]# tar vxf cmake-3.13.4.tar.gz && cd cmake-3.13.4[root@master cmake-3.13.4]# ./configure
[ root@master cmake-3.13.4]# make && make install
# ブーストライブラリを初期化します
[ root@master httpd]# tar xvf boost_1_59_0.tar.gz
[ root@master httpd]# cp -r boost_1_59_0 /usr/local/boost_1_59
#- - BEGIN--
# 頼る
cmake ncurses-devel gcc gcc-c++ pcre pcre-devel openssl openssl-devel
#- - END--
# mysqlをコンパイルします
[ root@master httpd]# groupadd mysql #mysqlユーザーを作成します
[ root@master httpd]# useradd -M -g mysql -r -s /usr/sbin/nologin mysql
[ root@master httpd]# id mysql
uid=994(mysql) gid=1002(mysql) groups=1002(mysql)[root@master httpd]# tar xvf mysql-5.7.28.tar.gz && mysql-5.7.28[root@master httpd]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 \ #導入手引き
- DWITH_BOOST=/usr/local/boost_1_59_0 \ #ライブラリパスをブースト
- DDOWNLOAD_BOOST=1 \ #ブーストライブラリがない場合、ブーストライブラリをブーストパスに自動的にダウンロードするかどうか,これをローカルブーストライブラリに追加する必要はありません
- DMYSQL_UNIX_ADDR=/data/mysql/tmp/mysql.sock \ #Unixソケットストレージディレクトリ
- DMYSQL_DATADIR=/mnt/data/data \ #データストレージディレクトリ
- DSYSCONFDIR=/etc/mysql \ #構成ファイルのインストールディレクトリ
- DDEFAULT_CHARSET=utf8mb4 \ #Mysqlで使用される文字セット
- DDEFAULT_COLLATION=utf8mb4_general_ci \ #Mysql照合
- DWITH_EXTRA_CHARSETS=all \ #追加のキャラクターセット
- DWITH_MYISAM_STORAGE_ENGINE=1 \ #InnoDBを有効にする
- DWITH_INNOBASE_STORAGE_ENGINE=1 \ #ARCHIVEを有効にする
- DWITH_MEMORY_STORAGE_ENGINE=1 \ #MEMORYを有効にする
- DWITH_READLINE=1 \ #行ごとの読み取りをサポートするかどうか
- DWITH_INNODB_MEMCACHED=1 \ #memcached共有ライブラリを生成するかどうか
- DWITH_DEBUG=OFF \ #ビルドデバッグを有効にするかどうか
- DWITH_ZLIB=bundled \ #ディストリビューションにバンドルされているzlibのライブラリを使用する
- DENABLED_LOCAL_INFILE=1 \ #ローカルMySQLクライアントライブラリの組み込みのデフォルト機能を制御する
- DENABLED_PROFILING=ON \ #クエリプロファイリングコードを有効にするかどうか
- DMYSQL_MAINTAINER_MODE=OFF \ #MySQLメンテナに固有の開発環境を有効にするかどうか
- DMYSQL_TCP_PORT=3306 #MySQLが使用するポート
[ root@master httpd]# make -j8 && make install
# 構成リファレンスのコンパイル:
# https://zhuanlan.zhihu.com/p/60045437
# https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
# 構成
[ root@master local]# ln -sv mysql57 mysql #ソフト接続を確立する
[ root@master bin]# PATH=$PATH:/usr/local/mysql/bin
[ root@master bin]# export PATH
[ root@master bin]# mkdir -p /mnt/data/{data,logs,pids,share}
# ディレクトリを初期化します
[ root@master bin]# touch /mnt/data/pids/mysqld.pid
[ root@master bin]# touch /mnt/data/logs/mysqld.log
[ root@master data]# chown -R mysql:mysql /mnt/data/
# 構成ファイルを変更する
[ root@master data]# vim /etc/my.cnf
[ mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
datadir=/mnt/data/data
socket=/mnt/data/tmp/mysql.sock
[ mysqld_safe]
log-error=/mnt/data/logs/mysqld.log
pid-file=/mnt/data/pids/mysqld.pid
[ client]default-character-set=utf8mb4
# initに参加する.dデーモン
[ root@master mysql57]# cp support-files/mysql.server /etc/init.d/mysqld
[ root@master mysql57]# chkconfig --add mysqld
[ root@master mysql57]# chkconfig mysqld on
[ root@master mysql57]# chkconfig --list mysqld #自己開始プロセスを作成するかどうかを確認します
# データベースを初期化するには、データベースを開いて初期化する必要があります
[ root@master data]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/mnt/data/data
# 安全な初期化
[ root@master ~]# mysql_secure_installation
# systemctl start mysql
[ root@master system]# vim /etc/systemd/system/mysqld.service
[ Unit]
Description=MySQL Service
Documentation=man:mysqld man:mysqld(8)
After=network.target
[ Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop
ExecReload=/etc/init.d/mysqld reload
ExecRestart=/etc/init.d/mysqld restart
[ Install]
WantedBy=multi-user.target
[ root@slave system]# systemctl daemon-reload #過負荷管理サービス
# テストを開始します
[ root@master system]# systemctl start mysqld.service
[ root@master system]# systemctl status mysqld.service
● mysqld.service - MySQL Service
Loaded:loaded(/etc/systemd/system/mysqld.service; disabled; vendor preset: disabled)
Active:active(running) since Thu 2020-01-0222:25:29 CST; 1s ago
Docs: man:mysqld
man:mysqld(8)
Process:21577 ExecStart=/etc/init.d/mysqld start(code=exited, status=0/SUCCESS)
Main PID:21587(mysqld_safe)
CGroup:/system.slice/mysqld.service
├─21587/bin/sh /usr/local/mysql57/bin/mysqld_safe --datadir=/mnt/data/data --pid-file=/mnt/data/pids/mysqld.pid
└─21751/usr/local/mysql57/bin/mysqld --basedir=/usr/local/mysql57 --datadir=/mnt/data/data --plugin-dir=/usr/local/mysql57/lib/plugin --u...[root@master system]# mysql
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys |+--------------------+4 rows inset(0.00 sec)
# 実行中のユーザーを作成する
[ root@slave ~]# groupadd mysql
[ root@slave ~]# useradd -r -M -g mysql -s /usr/sbin/nologin mysql
[ root@slave local]# tar -xvf mariadb-10.4.11-linux-x86_64.tar.gz -C /usr/local/[root@slave local]# ln -sv mariadb-10.4.11-linux-x86_64/ mysql
[ root@slave mysql]# . scripts/mysql_install_db --datadir=/data/data --user=mysql #データベースディレクトリを初期化します
# 環境変数を設定し、ログファイルを作成します
[ root@slave system]# PATH=$PATH:/usr/local/mysql/bin/[root@slave system]# mkdir /var/log/mariadb
[ root@slave system]# touch /var/log/mariadb/mariadb.log
[ root@slave system]# chown mysql:mysql /var/log/mariadb/mariadb.log
[ root@slave system]# touch /tmp/mysql.sock
[ root@slave system]# chown mysql:mysql /tmp/mysql.sock
# 構成ファイルを追加する
[ root#slave system]# vim /etc/my.cnf
[ mysqld]
port =3306
socket =/tmp/mysql.sock
datadir=/data/data
symbolic-links=0
innodb_file_per_table = on
skip_name_resolve = on
key_buffer_size = 128M
skip-external-locking
max_allowed_packet = 1M
table_open_cache =512
sort_buffer_size = 2m
read_buffer_size = 2M
read_rnd_buffer_size = 8M
query_cache_size = 32M
[ mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
# 起動スクリプトをコピーする
[ root@slave mysql]# cp support-files/mysql.server /etc/init.d/mysqld
# systemctl管理スクリプトを追加します
[ root@slave system]# vim /etc/systemd/system/mariadb.service
[ Unit]
Description=MariaDB Service
Documentation=man:mariadb
After=network.target
[ Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop
ExecReload=/etc/init.d/mysqld reload
ExecRestart=/etc/init.d/mysqld restart
[ Install]
WantedBy=multi-user.target
[ root@slave system]# systemctl daemon-reload
# 安全な初期化
[ root@slave mysql]# ./bin/mysql_secure_installatio
# 依存関係をコンパイルする
libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel libicu-devel libzip-devel
# ソースパッケージをダウンロード
[ root@master httpd]# wget http://mirror.cogentco.com/pub/php/php-7.0.9.tar.gz
# 実行中のユーザーとユーザーグループを確立する
[ root@master php-7.0.9]# groupadd www
[ root@master php-7.0.9]# useradd -r -M -g www -s /sbin/nologin www
# コンパイルプロセス
[ root@master httpd]# tar -xvf php-7.0.9.tar.gz && cd php-7.0.9/
# コンパイルパラメータを設定する
[ root@master php-7.0.9]# ./configure \
- - prefix=/usr/local/php7 --with-config-file-path=/etc/php --enable-fpm --with-fpm-user=www --with-fpm-group=www \
- - enable-inline-optimization --disable-debug --disable-rpath --enable-shared --with-libxml-dir \
- - with-xmlrpc --with-openssl --with-mhash --with-pcre-regex --with-zlib --with-iconv --with-bz2 --with-curl \
- - enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir \
- - with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-jis-conv --with-gettext \
- - with-gmp --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-onig \
- - enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-readline --enable-session \
- - enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir \
- - with-xsl --enable-zip --with-pear --enable-opcache --with-mcrypt
[ root@master httpd]# make -j8 && make install
# 構成ファイルを初期化し、phpを起動します-fpm
[ root@master php-7.0.9]# cp php.ini-production /etc/php/php.ini
[ root@master php-7.0.9]# cp /usr/local/php7/etc/php-fpm.conf.default/usr/local/php7/etc/php-fpm.conf
[ root@master php-7.0.9]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default/usr/local/php7/etc/php-fpm.d/www.conf
# 構成ファイルを変更する
[ root@master php7]# vim etc/php-fpm.conf
[ global]
pid =/var/run/php-fpm.pid
error_log =/www/log/php-fpm.log
log_level = notice
[ www]
listen =/tmp/php-fpm.sock
listen.backlog =-1
listen.allowed_clients =127.0.0.1
listen.owner = www
listen.group = www
listen.mode =0666
user = www
group = www
pm = dynamic
pm.status_path =/status
pm.max_children =30
pm.start_servers =5
pm.min_spare_servers =5
pm.max_spare_servers =10
request_terminate_timeout =100
request_slowlog_timeout =30
slowlog =/www/log/slow.log
request_slowlog_timeout = 1s
# phpを追加-fpmのデーモンが実行されます
[ root@master ~]# vim /etc/systemd/system/php-fpm.service
[ Unit]
Description=The FastCGI Process Manager
Documentation=php-fpm service
After=rsyslog.target network.target
[ Service]
Type=simple
ExecStart=/usr/local/php7/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php7/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[ Install]
WantedBy=multi-user.target
# libmcryptがインストールされていません
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
# 解決:yumインストールまたはコンパイルしてインストール
[ root@master php-7.0.9]# yum -y install libmcrypt-devel
# コンパイルしてインストール
[ root@master httpd]# wget https://src.fedoraproject.org/repo/pkgs/libmcrypt/libmcrypt-2.5.8.tar.gz/0821830d930a86a5c69110837c55b7da/libmcrypt-2.5.8.tar.gz
[ root@master httpd]# mv download libmcrypt-2.5.8.tar.gz
[ root@master libmcrypt-2.5.8]# tar xvf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8[root@master libmcrypt-2.5.8]# ./configure --prefix=/usr
# 問題
configure: error: Don t know how to define struct flock on this system,set--enable-opcache=no
# 解決
[ root@master httpd]# vim /etc/ld.so.conf
include /usr/local/lib #この行を追加します
[ root@master httpd]# ldconfig
# コンパイルパラメータの説明
- - prefix=/usr/local/php //phpインストールディレクトリを指定します--with-apxs2=/usr/local/apache/bin/apxs //apacheを統合し、//apxs関数はmodを使用することです_その中のLoadModule命令、//指定されたモジュールをapacheにロードし、SOモジュールを開くためにapacheを必要とします--with-config-file-path=/usr/local/php/etc //phpを指定します.ini位置--with-MySQL=/usr/local/mysql //mysqlインストールディレクトリ、mysqlのサポート--with-mysqli=/usr/local/mysql/bin/mysql_config
//mysqli拡張テクノロジは、MySQLストアドプロシージャを呼び出してMySQLトランザクションを処理できるだけでなく、//また、データベースへのアクセスをより安定させることができます。--enable-safe-mode //セーフモードをオンにする--enable-ftp //ftpサポートを開く--enable-zip //zipのオープンサポート--with-bz2 //bz2ファイルのオープンサポート--with-jpeg-dir //jpeg画像のサポートをオンにする--with-png-dir //png画像のオープンサポート--with-freetype-dir //フリータイプフォントライブラリのオープンサポート--without-iconv //iconv機能、さまざまな文字セット間の変換をオフにします--with-libXML-dir //libxml2ライブラリのサポートを開きます--with-XMLrpc //xmlを開く-rpcのc言語--with-zlib-dir //zlibライブラリのサポートを開きます--with-readline //CLIとCGIのどちらを開くか--with-gd //gdライブラリのサポートを開く--enable-gd-native-ttf //TrueType文字列関数ライブラリをサポート--with-curl //カールブラウジングツールのサポートを開きます--with-curlwrappers //カールツールを使用してURLストリームを開きます--with-ttf //freetype1を開きます.*サポート、省略可能--with-xsl //XSLTファイルのサポートを開き、libXML2ライブラリを展開し、libxsltソフトウェアが必要です--with-gettext //gnuのgettextサポートを開き、コーディングライブラリを使用します--with-pear //PHP拡張用のpearコマンドのサポートを開きます--enable-calendar //カレンダー拡張機能を開く--enable-mbstring //マルチバイト、文字列のサポート--enable-bcmath //画像のサイズ変更をオンにする,このモジュールは、zabbixモニタリングが使用される場合に使用されます--enable-sockets //オープンソケットのサポート--enable-exif //画像メタデータのサポート--enable-magic-quotes //マジッククォートのサポート--disable-rpath //追加のランタイムファイルを閉じる--disable-debug //デバッグモードをオフにする--with-mime-magic=/usr/share/file/magic.mime //マジックヘッダーファイルの場所--enable-fastCGI //php5.2クリックして開きます--enable-opcache //
- - enable-fpm //PHPと入力します-このパラメーターは、CGIモードでインストールされたスタートアッププログラムphp5であるfpmパッチの後でのみ使用できます。.3回以上使用--enable-fastCGI //PHPを開始するfastcgiの方法をサポートする--enable-force-CGI-redirect //リダイレクトによってPHPを開始します--with-ncurses //ncurses画面描画とテキスト端末に基づくグラフィカルなインタラクティブ機能をサポートする動的ライブラリ--enable-pcntl //FreeTDSを使用する必要があり、mssqlをリンクする場合にのみ使用できます--with-mcrypt //mcryptアルゴリズムの拡張--with-mhash //mhashアルゴリズムの拡張//上記のライブラリをインストールする必要があります--with-gmp //規範をサポートする必要があります--enable-inline-optimization //スレッドを最適化する--with-openssl //暗号化された送信で使用されるOpenSSLサポート--enable-dbase //DBAを共有モジュールとして確立する--with-pcre-dir=/usr/local/bin/pcre-config //Perlの通常のライブラリインストール場所--disable-dmalloc
- - with-gdbm //dbaのgdbmサポート--enable-sigchild
- - enable-sysvsem
- - enable-sysvshm
- - enable-zend-multibyte //zendマルチバイトをサポート--enable-mbregex
- - enable-wddx
- - enable-shmop
- - enable-soap
--with-apxs2 = / usr / local / apache / bin / apxsを指定した後、-enable-fpmおよび--enable-fastCGIをアクティブにしないでください。apxsはPHPをphpモジュールモードでロードします。
MysqlがMysql開発ライブラリをコンパイルした後、mysqlパスを指定する必要はありません。
PHPのコンパイルには基本的な依存関係があります。php5コアはデフォルトでXMLサポートを開くため、PHPをコンパイルするには、最初にXML拡張機能をインストールする必要があります。他の基本的なライブラリの場合、対応するニーズ:GD-> zlib、Png、Jpg、他のサポートが必要な場合は、拡張ライブラリは実際の状況に応じてコンパイルする必要があり、ttfライブラリはfreetypeライブラリのサポートが必要です。
- enable-magic-quotesは非常に推奨されないパラメーターです。もちろん、基本的な作業を行うためにPHPが必要な場合、実際には問題を完全に解決するわけではありません。
- with-opensslにはopensslライブラリが必要です。 mysqliは、MySQLチームによって提供されるMySQLドライバーであり、多くの実用的な機能と典型的な機能を備えています。ただし、PHPプラットフォーム上のMySQLには最適な選択ではありません。PDOは、シンプルで高度な同時実行性を備え、標準インターフェイスの作成とリサイクルが容易であることが証明されています。ただし、PDOでも5.3より前にメモリオーバーフローの問題が発生しました。5.3以降、OracleのLOBリソースを読み取るときに、メモリが制限されていない場合、メモリはオーバーフローします。
詳細なオプションに関しては、上記のインストールの概要に加えて、コンパイル中に他のオプションを追加することもできます。
構文:-with-apache = DIR
説明:このオプションを使用して** PHPを作成します
** apacheモジュールモードで使用されるDIRの文字列は、/ usr / local / apacheまたはapacheがインストールされている他のディレクトリにすることができます。
例:-with-apache = / var / lib / apache
fhttpdサーバーモジュール
構文:-with-fhttpd = DIR
注:fttpdサーバーを使用している場合は、このコマンドを使用してPHPをコンパイルできます。モジュールを使用してfttpdサーバーと連携すると、効率が向上します。
構文:-with-adabas = DIR
注:データベースシステムがAdabas Dデータベースの場合、このオプションを追加する必要があります。 Adabas Dデータベースの詳細については、[http://www.adabas.com](http://www.adabas.com/)を参照してください。
例:-with-adabas = / usr / local / adabasd
dBaseデータシート
構文:-with-dbase
注:このオプションが追加されている限り、他のパラメーターや関数ライブラリは必要ありません。PHPを使用すると、システムはdBaseデータテーブルにアクセスできます。
構文:-with-filepro
注:データベースパスやその他の関数ライブラリを指定しなくても、fileProデータベース(読み取り専用)を読み取ることができます。
mSQLデータベース
構文:-with-msql = DIR
説明:mSQLデータベースへのアクセスを提供します。詳細については、mSQLのWebサイト[http://www.hughes.com.au](http://www.hughes.com.au/)を参照してください。
例:-with-msql = / usr / local / Hughes
構文:-with-mysql = DIR
説明:MySQLデータベースへのアクセスを提供します。詳細については、MySQLのWebサイト[http://www.tcx.se](http://www.tcx.se/)を参照してください。
例:-with-mysql = / usr / local / mysql
構文:-with-iodbc = DIR
説明:バックエンドデータベースにアクセスするためのODBCデータベースデバイスを提供します。詳細については、iODBCのWebサイト[http://www.iodbc.org](http://www.iodbc.org/)を参照してください。
例:-with-iodbc = / usr / local / iodbc
構文:-with-openlink = DIR
説明:OpenLink ODBCデータベースデバイスを使用して、バックエンドデータベースにアクセスします。詳細については、OpenLink ODBC Webサイト[http://www.openlinksw.com](http://www.openlinksw.com/)を参照してください。
例:-with-openlink = / usr / local / openlink
構文:-with-oracle = DIR
説明:Oracleデータベースを使用してください。 Oracleのバージョンは7.3以降である必要があります。 PHPプログラムで環境変数ORACLE_HOMEを使用して、Oracleのパスを指定することもできます。 Oracleの詳細については、OracleのWebサイト> [http://www.oracle.com](http://www.oracle.com/)を参照してください。
例:-with-oracle = / export / app / oracle / product / 7.3.2
構文:-with-pgsql = DIR
説明:PostgreSQLデータベースを使用してください。 PostgreSQLの詳細については、PostgreSQLのWebサイト[http://www.postgreSQL.org](http://www.postgresql.org/)または台湾のミラーWebサイト[http://postgresql.ccit.edu.tw](http://postgresql.ccit.edu.tw/)を参照してください。
例:-with-pgsql = / usr / local / pgsql
構文:-with-custom-odbc = DIR
説明:カスタマイズされたODBC関数ライブラリを使用します。もちろん、このメソッドを使用する場合は、CUSTOM_ODBC_LIBS変数とCFLAGS変数を指定する必要があります。たとえば、QNXマシンでSybase ** SQLを使用します
** どこにいても、システム環境変数CFLAGS = -DODBC_QNX、LDFLAGS = -lunix、およびCUSTOM_ODBC_LIBS = "-ldblib -lodbc"を構成し、PHP構成に--with-custom-odbc = / usr / lib / sqlany50を追加する必要がある場合があります。
例:-with-custom-odbc = / usr / local / odbc
構文:-disable-unified-odbc
説明:このオプションを使用すると、すべてのODBCデータベースドライバーが機能しなくなります。このオプションはパスを指定する必要はありません。このオプションの影響を受けるオプションは、-with-iodbc、-with-solid、-with-adabas、-with-velocis、および--with-custom-odbcです。
構文:-with-ldap = DIR
注:Lightweight Directory Access Protocol(LDAP)を使用する場合は、このオプションをオンにする必要があります。 LDAPの詳細については、RFCドキュメントのRFC1777およびRFC1778を参照してください。
例:-with-ldap = / usr / local / ldap。
構文:-with-mcrypt = DIR
注:mcrypt関数ライブラリをインストールした後、PHPのコンパイル時にこのオプションを追加して、プログラムがコーデック関数を使用できるようにすることができます。
例:-with-mcrypt = / usr / local / include
構文:-with-xml
注:このオプションをオンにすると、JamesClarkによって作成されたXMLパーサーライブラリがサポートされます。
構文:-enable-maintainer-mode
注:このオプションは、PHP開発者にとって有用でない限り、通常はオンになりません。
構文:-with-system-regex
注:追加の正規式関数が必要な場合は、このオプションを追加できます。
構文:-with-config-file-path = DIR
説明:PHP初期化用のphp3.iniまたはphp4.iniのパスを指定するために使用されます。
例:-with-config-file-path = / usr / local / lib
構文:-with-exec-dir = DIR
注:システムのセキュリティを考慮して、PHPプログラムをどのディレクトリで実行する必要がある場合があります。
例:-with-exec-dir = / usr / local / bin
構文:-enable-debug
注:このオプションは、PHPプログラムの開発時に役立つ場合を除いて、通常は使用されません。追加のエラーメッセージを表示できます。
構文:-enable-safe-mode
注:デフォルト値はオンです。これにより、システムセキュリティをさらに保護できます。
構文:-enable-track-vars
説明:PHPが、一般的に有効になっている3つの変数HTTP_GET_VARS、HTTP_POST_VARS、およびHTTP_COOKIE_VARSを追跡できるようにします。
構文:-enable-magic-quotes
説明:プログラムは、実行時にバックスラッシュのリードイン文字を自動的に追加できます。
構文:-enable-debugger
説明:組み込みのPHPデバッガーを開きます。現在、この機能はまだ実験段階にあり、まだ成熟していません。
パスを破棄
構文:-enable-discard-path
説明:このオプションをオンにします、**ユーザー
**.htaccessなどのシステムセキュリティに関連するファイルをブラウザから読み取ることはできません。
構文:-enable-bcmath
説明:高精度機能をオンにします。このオプションを有効にするには、最初にこの関数ライブラリをインストールする必要があります。
構文:-enable-force-cgi-redirect
例:CGI VERSIONモードを使用してPHP設定を実行する場合、このオプションをオンにするとセキュリティが向上します。たとえば、[http://my.host/cgi-bin/php/secret/doc.html](http://my.host/cgi-bin/php/secret/doc.html)を読んだユーザーは、PHPシステムに精通しているハッカーレベルのユーザーに遭遇する可能性があります。
関連情報を読み取るために、次のURL [http://my.host/secret/doc.html](http://my.host/secret/doc.html)が入力されています。 PHPとApacheを一緒にコンパイルしてPHPをApacheの一部にする場合は、このオプションを追加する必要はありません。
短いタグは使用しないでください
構文:-disable-short-tags
説明:このオプションを構成した後、PHPプログラムは短いタグを使用できず、長いタグを使用する必要があります。
pid = run/php-fpm.pid
# pid設定、インストールディレクトリのデフォルトvar/run/php-fpm.pid、開くことをお勧めします
error_log = log/php-fpm.log
# エラーログ、インストールディレクトリのデフォルト変数/log/php-fpm.ログがsyslogに設定されている場合、ログはファイルに書き込まれるのではなく、syslogdサービスに送信されます。
syslog.facility = daemon
# ログをシステムログに書き込みます。Linuxは十分な知識がないため、今は無視してください。
syslog.ident = php-fpm
# システムログは、実行中のfpmプロセスが複数ある場合、ログが誰に属しているかを区別するためにこれが必要であることを示しています。
log_level = notice
# エラーレベル.利用可能なレベルは:アラート(すぐに処理する必要があります),エラー(エラー状態),警告(警告条件),通知(一般的な重要な情報),デバッグ(デバッグ情報).デフォルト: notice.
emergency_restart_threshold =60
emergency_restart_interval = 60s
# 緊急時に表現_restart_間隔設定値にSIGSEGVまたはSIGBUSエラーがあるPHP-cgiプロセスの数が緊急事態を超えた場合_restart_しきい値、php-fpmは正常に再起動します。これらの2つのオプションは、通常、デフォルト値を保持します。
process_control_timeout =0
# 子プロセスがメインプロセスから多重化された信号を受信するためのタイムアウト期間を設定します.利用可能なユニット:s(2番目),m(分),h(時間),またはd(日)デフォルトの単位:s(2番目).デフォルト:0.
daemonize = yes
# バックグラウンドでfpmを実行します,デフォルト値はyesですが、デバッグのためにnoに変更できます。 FPMでは、さまざまな設定を使用して複数のプロセスプールを実行できます。これらの設定は、プロセスプールごとに個別に設定できます。
listen =127.0.0.1:9000
# nginxのphpによって処理されるアドレスであるfpmリスニングポートは、通常、デフォルト値です。利用可能なフォーマットは:'ip:port','port','/path/to/unix/socket'.各プロセスプールを設定する必要があります.
listen.backlog =-1
# 受け入れられなかったソケットキューサイズ、-FreeBSDおよびOpenBSDでは1、他のプラットフォームはデフォルトで65535に設定されます。これは、高い同時実行性にとって重要です。適切な設定では、キューに入れられた要求が時間内に処理されます。バックログが大きすぎると、処理が多すぎます。処理後、nginxはタイムアウトを待機してfpmとのソケット接続を切断します。ただのカップ。使用しないでください-1. 1024以上、できれば2の累乗にすることをお勧めします。
# プールはバックログキューを共有し、すべてのプールプロセスはこのキュー内の接続を受け入れます。
# 最大数はシステム構成によって制限されますcat/proc/sys/net/core/somaxconn、システム構成の変更:vim/etc/sysctl.conf、ネットを追加.core.somaxconn =2000、最大は2000であり、PHPの最大バックログは2000に達する可能性があります。
listen.allowed_clients =127.0.0.1
# FastCGIプロセスのIPへのアクセスを許可するには、anyを無制限IPとして設定します。他のホストのnginxもこのFPMプロセスにアクセスするように設定する場合は、ローカルでアクセスできるIPを設定します。デフォルト値はanyです。各アドレスはコンマで区切られます.設定されていないか空の場合、すべてのサーバーが接続を要求できます
listen.owner = www
listen.group = www
listen.mode =0666
# Unixソケット設定オプション、tcpを使用してアクセスする場合は、ここにコメントしてください。
user = www
group = www
# プロセスを開始したアカウントとグループ
pm = dynamic
# 専用サーバーの場合、pmを静的に設定できます。
# 子プロセスを制御する方法、オプションは静的および動的です。静的を選択した場合は、午後.max_子は、固定数の子プロセスを指定します。動的が選択されている場合、それは開いているパラメーターによって決定されます。
pm.max_children
# 、子プロセスの最大数
#- - BEGIN--
計算: min_spare_servers +(max_spare_servers - min_spare_servers)/2
pm.start_servers
# 、起動時のプロセス数
pm.min_spare_servers
# 、アイドルプロセスの最小数を確保するために、アイドルプロセスがこの値よりも少ない場合は、新しい子プロセスを作成します
pm.max_spare_servers
# 、アイドルプロセスの最大数を確保するために、アイドルプロセスがこの値より大きい場合、これはクリーンアップされます
#- - END--
pm.max_requests =1000
# 各子プロセスが生まれ変わる前に処理されるリクエストの数を設定します.メモリリークが発生する可能性のあるサードパーティモジュールに非常に役立ちます.に設定されている場合'0'リクエストを受け付け続けます.PHPと同等_FCGI_MAX_REQUESTS環境変数.デフォルト:0.
pm.status_path =/status
# FPMステータスページのURL.設定されていない場合,ステータスページにアクセスできません.デフォルト: none.muninモニタリングは使用します
ping.path =/ping
# FPM監視ページのpingURL.設定されていない場合,pingページにアクセスできません.このページは、FPMが動作しているかどうかを外部で検出し、要求に応答できるようにするために使用されます.スラッシュで始まる必要があることに注意してください(/)。
ping.response = pong
# ping要求の応答を定義するために使用されます.HTTP200として返されるテキスト/プレーンテキスト.デフォルト: pong.
request_terminate_timeout =0
# 単一のリクエストのタイムアウト中止時間を設定します.このオプションはphpに影響を与える可能性があります.ini設定'max_execution_time'いくつかの特別な理由により、実行中のスクリプトを停止することは役に立ちません.として設定され'0'手段'Off'.502エラーが頻繁に発生する場合は、このオプションを変更してみてください。
request_slowlog_timeout = 10s
# 設定されたタイムアウト期間の要求後、対応するPHP呼び出しスタック情報は完全に低速ログに書き込まれます.として設定され'0'手段'Off'
slowlog = log/$pool.log.slow
# 遅いリクエストのログ,リクエストに協力する_slowlog_タイムアウトの使用
rlimit_files =1024
# ファイルオープン記述子のrlimit制限を設定します.デフォルト:システム定義値のデフォルトのオープンハンドルは1024で、ulimitを使用できます-nビュー、ulimit-n2048が変更されました。
rlimit_core =0
# コアrlimitの最大制限値を設定します.利用可能な値:'unlimited'、0または正の整数.デフォルト:システム定義値.
chroot =
# 起動時のChrootディレクトリ.定義されたディレクトリは絶対パスである必要があります.設定されていない場合,Chrootは使用されません.
chdir =
# 起動ディレクトリを設定します。起動時に自動的にこのディレクトリにChdirされます.定義されたディレクトリは絶対パスである必要があります.デフォルト:現在のディレクトリ、または/ディレクトリ(chrootされた場合)
catch_workers_output = yes
# 操作中にstdoutとstderrをメインエラーログファイルにリダイレクトします.設定されていない場合,stdoutとstderrは、FastCGIルールに従ってリダイレクトされます/dev/null.デフォルト:空気
より詳細な構成リファレンス: [https://www.zybuluo.com/phper/note/89081](https://www.zybuluo.com/phper/note/89081)
# nginxをコンパイルしてインストールします
[ root@master ~]# wget https://mirrors.sohu.com/nginx/nginx-1.16.1.tar.gz
[ root@master ~]# tar xvf nginx-1.16.1.tar.gz && nginx-1.16.1[root@master nginx-1.16.1]# mkdir /etc/nginx
[ root@master nginx-1.16.1]# mkdir /var/log/nginx/[root@master nginx-1.16.1]# mkdir /var/lock/[root@master nginx-1.16.1]# touch /var/log/nginx/access.log
[ root@master nginx-1.16.1]# touch /var/log/nginx/error.log
[ root@master nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx --pid-path=/run/nginx.pid \
- - lock-path=/var/lock/nginx.lock --user=www --group=www --with-http_ssl_module --with-http_realip_module \
- - with-http_image_filter_module --with-http_sub_module --with-pcre --with-http_gzip_static_module \
- - with-http_random_index_module --with-http_degradation_module --with-http_gzip_static_module \
- - with-http_random_index_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log \
- - with-threads --with-stream --with-stream_ssl_module --with-file-aio --http-client-body-temp-path=/tmp/nginx/body \
- - http-proxy-temp-path=/tmp/nginx/proxy --http-fastcgi-temp-path=/tmp/nginx/fcgi
[ root@master nginx-1.16.1]# make -j8 && make install
# 構成ファイルを変更する
[ root@master sbin]# vim /etc/nginx/nginx.conf
user www www;
index index.php index.html;
root /html;
access_log /var/log/nginx/main.access.log main;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /html$fastcgi_script_name;
include fastcgi_params;}
[ root@master sbin]# elinks 127.0.0.1/echo.php
is pho!
# mysqlテスト
[ root@master sbin]# elinks 127.0.0.1/mysql_test.php
connect ok!
# phpinfo
[ root@master sbin]# elinks 127.0.0.1/info.php
PHP logo
PHP Version 7.0.9
System Linux master 3.10.0-1062.9.1.el7.x86_64 #1 SMP Fri Dec 615:49:49 UTC 2019 x86_64
Build Date Jan 4202020:08:36'./configure''--prefix=/usr/local/php7''--with-config-file-path=/etc/php''--enable-fpm''--with-fpm-user=www''--with-fpm-group=www''--enable-inline-optimization''--disable-debug''--disable-rpath''--enable-shared''--with-xmlrpc''--with-openssl''--with-mhash''--with-pcre-regex''--with-zlib''--with-iconv''--with-bz2''--with-curl''--enable-exif''--enable-fileinfo''--enable-filter''--with-pcre-dir''--enable-ftp''--with-gd'
Configure Command '--with-openssl-dir''--with-jpeg-dir''--with-png-dir''--with-freetype-dir''--enable-gd-jis-conv''--with-gettext''--with-gmp''--enable-json''--enable-mbstring''--enable-mbregex''--enable-mbregex-backtrack''--with-onig''--enable-pdo''--with-mysqli=mysqlnd''--with-pdo-mysql=mysqlnd''--with-zlib-dir''--with-readline''--enable-session''--enable-simplexml''--enable-sockets''--enable-sysvmsg''--enable-sysvsem''--enable-sysvshm''--enable-wddx''--with-libxml-dir''--with-xsl''--enable-zip''--with-pear''--enable-opcache''--with-mcrypt'
Server API FPM/FastCGI
Virtual Directory Support disabled
Configuration File(php.ini) Path /etc/php
Loaded Configuration File /etc/php/php.ini
Scan this dir for additional .ini(none)
files
Additional .ini files parsed(none)
PHP API 20151012
PHP Extension 20151012
Zend Extension 320151012
Zend Extension Build API320151012,NTS
PHP Extension Build API20151012,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling disabled
Zend Memory Manager enabled
Zend Multibyte Support provided by mbstring
IPv6 Support enabled
DTrace Support disabled
Registered PHP Streams https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2
# Apache構成php解析
[ root@master ~]# vim /etc/httpd/httpd.conf
# 実行中のユーザーを変更する
User www
Group www
# モジュールの電源を入れます
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule status_module modules/mod_status.so
LoadModule dir_module modules/mod_dir.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
# 注釈センターのホスト
# DocumentRoot "/usr/local/apache/htdocs" #複数の仮想ホストの競合を防ぐために、この行にコメントを付けてください
# ファイル解析を追加する
DirectoryIndex index.html index.php
# ドキュメントを開く
# Server-pool management(MPM specific)
Include /etc/httpd/extra/httpd-mpm.conf
# Various default settings
Include /etc/httpd/extra/httpd-default.conf
# Virtual hosts
Include /etc/httpd/extra/httpd-vhosts.conf
# phpファイルの解析を追加する
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# ホストプロファイルを追加する
IncludeOptional /etc/httpd/conf.d/*.conf
ServerLimit 400
# phpファイルを解析するように仮想ホストを構成する
[ root@master ~]# vim /etc/httpd/conf.d/www.test.com.conf
< VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/html"
ServerName 1.www.test.com
ServerAlias www.test.com
ErrorLog "/www/log/error.log"
CustomLog "/www/log/access.log" combined
< FilesMatch \.php$>
SetHandler "proxy:unix:/tmp/php-fpm.sock|fcgi://localhost"
# ProxyPassMatch "^/(.*\.php(/.*)?)$" "fcgi://127.0.0.1:9000/html/$1" #グローバルにphpに転送されることに注意してください-fpm,また、ポートモードのみを使用でき、unixsockモードは使用できません。
< /FilesMatch>
< Directory "/html">
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex index.php index.html
< /Directory>
< /virtualHost>
# mysql接続テストの結果
[ root@master html]# cat /html/mysql_test.php
<? php
$mysql =newmysqli("127.0.0.1","root","root");if(!$mysql){
echo "connect error!";
$mysql=null;}else{
echo "connect ok!";
$mysql->close();}?>[root@master html]# elinks 127.0.0.1/mysql_test.php
connect ok!
# phpinfoテスト結果
[ root@master php7]# elinks 127.0.0.1/info.php
PHP logo
PHP Version 7.0.9
System Linux master 3.10.0-1062.9.1.el7.x86_64 #1 SMP Fri Dec 615:49:49 UTC 2019 x86_64
Build Date Jan 4202020:08:36'./configure''--prefix=/usr/local/php7''--with-config-file-path=/etc/php''--enable-fpm''--with-fpm-user=www''--with-fpm-group=www''--enable-inline-optimization''--disable-debug''--disable-rpath''--enable-shared''--with-xmlrpc''--with-openssl''--with-mhash''--with-pcre-regex''--with-zlib''--with-iconv''--with-bz2''--with-curl''--enable-exif''--enable-fileinfo''--enable-filter''--with-pcre-dir''--enable-ftp''--with-gd''--with-openssl-dir''--with-jpeg-dir'
Configure Command '--with-png-dir''--with-freetype-dir''--enable-gd-jis-conv''--with-gettext''--with-gmp''--enable-json''--enable-mbstring''--enable-mbregex''--enable-mbregex-backtrack''--with-onig''--enable-pdo''--with-mysqli=mysqlnd''--with-pdo-mysql=mysqlnd''--with-zlib-dir''--with-readline''--enable-session''--enable-simplexml''--enable-sockets''--enable-sysvmsg''--enable-sysvsem''--enable-sysvshm''--enable-wddx''--with-libxml-dir''--with-xsl''--enable-zip''--with-pear''--enable-opcache''--with-mcrypt'
Server API FPM/FastCGI
Virtual Directory Support disabled
Configuration File(php.ini) Path /etc/php
Loaded Configuration File /etc/php/php.ini
Scan this dir for additional .ini(none)
files
Additional .ini files parsed(none)
PHP API 20151012
PHP Extension 20151012
Zend Extension 320151012
Zend Extension Build API320151012,NTS
PHP Extension Build API20151012,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling disabled
Zend Memory Manager enabled
Zend Multibyte Support provided by mbstring
IPv6 Support enabled
DTrace Support disabled
Registered PHP Streams https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filters zlib.*, bzip2.*, convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower,
string.strip_tags, convert.*, consumed, dechunk
Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v3.0.0,Copyright(c)1998-2016 Zend Technologies
著作権は以下に属します:Lord Long Zhijie
この記事へのリンク:[https://i7dom.cn/215/2020/05/make-lanmp.html](https://i7dom.cn/215/2020/05/make-lanmp.html)
このサイトのすべての元の記事は、[Creative Commons Attribution-Non-commercial Use-Same Method Sharing 4.0 International License Agreement](http://creativecommons.org/licenses/by-nc-sa/4.0/)の下でライセンスされています。自由に再印刷および変更できますが、記事の出典と著者の署名を必ず示し、記事はオリジナルではなく、商業目的で使用できないことを明記してください。
Recommended Posts