ランプ建築
ランプアーキテクチャ
ランプアーキテクチャは、apache+mysql/mariadb+php/perl/pythonのWebアーキテクチャからなるlinuxの動的Webサイトです。
ウェブサーバのワークフロー
Webサーバーのリソースには、静的なものと動的なものの2種類がある
- 静的リソースは静的なコンテンツで、クライアントはサーバーから元のファイルと同じ表現のリソースを取得します。静的リソースは、.htmlや.htmのように、バックエンドで処理することがない(処理するための開発言語がない)。
-
一方、ダイナミックリソースは、通常、リクエストを受け取った後にプログラムで処理し、クライアントに返す必要があるプログラムファイルです。例えば、.jps、.aspx、.net などです。
ワークフローです。
クライアントは http プロトコルを通じて Web サーバーにリクエストを送信します。Web サーバーはリクエストを受信し、クライアントが静的リソースと動的リソースのどちらを要求しているかを判断します。静的リソースの場合、ローカルファイルから直接取り出してクライアントに返し、動的リソースの場合、リクエストは FastCGI プロトコルを通じて php サーバーの CGI マスタープロセスに渡され、リクエストをワーカーのプロセスに割り振ります。 ワーカー プロセスはリクエストを実行してクライアントが要求する動的リソースを取得し、その実行結果を FastGCI プロトコルを通じて httpd サーバーに返します。httpd サーバーは php の実行結果を受け取り、クライアントへの応答として http メッセージにカプセル化します。動的リソースを取得するプログラムを実行する際、データベース内のリソースが必要な場合は、phpサーバーがMySQL/mariadbサーバーからリソースを取得する。 httpdサーバは、全プロセスにおいてmysql/mariadbと対話しません。
cgiとfastcgi
CGI(Common Gateway Interface)とは、外部アプリケーション(CGIプログラム)とWEBサーバーの間のインターフェース規格で、CGIプログラムとWEBサーバーの間で情報を受け渡すための処理。CGIの仕様では、WEBサーバーが外部プログラムを実行し、その出力をWEBブラウザに送信することができる。CGIの仕様により、Webサーバーは外部プログラムを実行し、その出力をWebブラウザに送ることができる。CGIは、Webの一連の単純な静的ハイパーメディア文書を、完全に新しい対話型メディアに変える。
FastCGI (Fast Common Gateway Interface) は CGI を改良したもので、各リクエストをインタプリタプロセスを有効にして処理するため、時間がかかり、リソースを消費します。一方 FastCGI はマスターワーカー形式でリクエストを処理します。つまりマスタープロセスを起動し、リクエストが来ると設定に応じてマスターがワーカープロセスの一つを選択してリクエストを処理するので、プロセスの生成と消滅が繰り返し起こることにより時間がかかり、CPU のコンテキストスイッチを頻繁に繰り返すことを避けられるのです。
httpdとphpの連携方法
httpdとphpの組み合わせは、3通りあります。
モジュール: php は httpd の拡張モジュールとして存在し、動的なリソースをロードする必要がある場合、 httpd は php モジュールを通して直接リソースを処理し、クライアントにそれを返します。
httpd prefork: libphp5.so (phpのマルチプロセスモデル)
httpd event or worker: libphp5-zts.so (PHPのスレッド化モデル)
CGIです。httpdが動的リソースを読み込む必要があるとき、phpの実行結果を得るためにCGI経由でphpインタプリタに問い合わせる、phpとの確立と切断をhttpdが担当する場合など。
FastCGI:php-fpmの仕組みを利用、サービスプロセスとして起動、phpはそれ自体でサービスとして動作、httpsはソケットを介してphpと通信する。
ランプのビルド
php は httpd が perforek MPM working model を使用する必要があります。
同一サーバーでの構築
apacheのインストール
コンパイラ、必要なツールなどのインストール。
[root@localhost ~]# dnf -y install gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel make expat-devel libtool
[root@localhost ~]# dnf -y groups mark install 'Development Tools'
rpmパッケージの解凍
[root@localhost ~]# tar xf apr-1.7.0.tar.bz2
[root@localhost ~]# tar xf apr-util-1.6.1.tar.bz2
[root@localhost ~]# tar xf httpd-2.4.43.tar.bz2
[root@localhost ~]# ls
anaconda-ks.cfg apr-util-1.6.1 httpd-2.4.43.tar.bz2
apr-1.7.0 apr-util-1.6.1.tar.bz2
apr-1.7.0.tar.bz2 httpd-2.4.43
コンパイルとインストール
httpd は apr-util-1.6.1 に依存し、apr-util-1.6.1 は apr-1.7.0 に依存しているので、インストール順序は apr-1.7.0, apr-util-1.6.1, httpd-2.4.43 となります。
pr-1.7.0 の configure で RM "$cfgfile" を削除またはコメントアウトする。
コンパイルして、apr-1.7.0をインストールするを押してください。
[root@localhost apr-1.7.0]# . /configure --prefix=/usr/local/apr
[root@localhost apr-1.7.0]# make
[root@localhost apr-1.7.0]# make install
apr-util-1.6.1のコンパイルとインストール
[root@localhost apr-util-1.6.1]# . /configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]# make
[root@localhost apr-util-1.6.1]# make install
apacheのビルド環境を確認し、必要な機能の設定とインストールを行う
[root@localhost httpd-2.4.43]# . /configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
[root@localhost httpd-2.4.43]# make
[root@localhost httpd-2.4.43]# make install
ユーザーとグループの作成、グループとホストの設定
[root@localhost httpd-2.4.43]# useradd -r -M -s /sbin/nologin -g apache apache
[root@localhost httpd-2.4.43]# chown -R apache.apache /usr/local/apache/
環境変数の設定 ヘルプファイルやヘッダー
[root@localhost ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@localhost ~]# source /etc/profile.d/httpd.sh
[root@localhost ~]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@localhost ~]# echo 'MANPATH /usr/local/apache/man' >> /etc/man.config
ServerNameのコメントを解除します。
[root@localhost ~]# sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf
apacheサービスファイルを書き込む
[root@localhost ~]# cat << EOF >> /etc/systemd/system/httpd.service
> Description=Start httpd
> [Service]
> Type=simple
> EnvironmentFile=/etc/httpd24/httpd.conf
> ExecStart=/usr/local/apache/bin/httpd -k start -DFOREGROUND
> ExecReload=/usr/local/apache/bin/httpd -k graceful
> ExecStop=/bin/kill -WINCH ${MAINPID}
> [Install]
> WantedBy=multi-user.target
> EOF
apacheの起動
[root@localhost system]# systemctl start httpd
[root@localhost system]# systemctl status httpd
httpd.service
Loaded: loaded (/etc/systemd/system/httpd.service; disabled;>
Active: active (running) since Tue 2021-04-20 20:34:47 CST; >
Main PID: 53212 (httpd)
Tasks: 6 (limit: 8756)
Memory: 4.9M
CGroup: /system.slice/httpd.service
├─53212 /usr/local/apache/bin/httpd -k start -DFOREG>
├─53213 /usr/local/apache/bin/httpd -k start -DFOREG>
├─53214 /usr/local/apache/bin/httpd -k start -DFOREG>
├─53215 /usr/local/apache/bin/httpd -k start -DFOREG>
├─53216 /usr/local/apache/bin/httpd -k start -DFOREG>
└─53217 /usr/local/apache/bin/httpd -k start -DFOREG>
Apr 20 20:34:47 localhost.localdomain systemd[1]: Started http>
Apr 20 20:34:47 localhost.localdomain httpd[53212]: AH00558: h>
ファイアウォールとselinuxをオフにする
[root@localhost ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
80番ポートが開いているかどうか確認する
[root@localhost system]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
mysqlのインストール
依存関係パッケージのインストール
[root@localhost ~]# dnf -y install ncurses-devel openssl-devel openssl cmake mariadb-devel
ユーザー作成
[root@localhost mysql]# useradd -r -M -s /sbin/nologin mysql
指定されたディレクトリに解凍する
[root@localhost mysql]# tar xf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /usr/local
ソフトリンクの作成、またはディレクトリ名の変更
[root@localhost local]# mv mysql-5.7.33-linux-glibc2.12-x86_64/ mysql
[root@localhost local]# ls
apache apr-util etc include lib64 mysql share
apr bin games libexec lib sbin src
ジェネリックとグループの変更
[root@localhost local]# chown -R mysql.mysql /usr/local/mysql/
[root@localhost local]# ll
drwxr-xr-x. 9 mysql mysql 129 May 4 20:40 mysql
環境変数の設定(yumでインストールされていないため、mysqlのプログラムが見つかりません。)
[root@localhost mysql]# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
[root@localhost mysql]# . /etc/profile.d/mysql.sh
[root@localhost mysql]# which mysql
/usr/local/mysql/bin/mysql
データが格納されるディレクトリを作成し、属性グループを変更する
容量の多いディレクトリが必要、またはディレクトリを作成し、そこにハードディスク装置をマウントする。
[root@localhost mysql]# mkdir /opt/mysql_data
[root@localhost mysql]# chown -R mysql.mysql /opt/mysql_data/
[root@localhost mysql]# ll /opt
drwxr-xr-x. 2 mysql mysql 6 May 4 20:58 mysql_data
パスワードの初期化・保存
[root@localhost mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/mysql_data/ //initialize control mysql user data storage directory
2021-05-04T13:01:07.403961Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-05-04T13:01:07.683107Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-05-04T13:01:07.739366Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-05-04T13:01:07.746720Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: caa21b8a-acd8-11eb-b7ab-000c294bb269.
2021-05-04T13:01:07.747895Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-05-04T13:01:09.096727Z 0 [Warning] CA certificate ca.pem is self signed.
2021-05-04T13:01:09.485357Z 1 [Note] A temporary password is generated for root@localhost: q_UG8?3sa/l%
[root@localhost mysql]# vim password
q_UG8?3sa/l%
設定ファイルの書き方
[root@localhost mysql]# vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql // program location
datadir = /opt/mysql_data //data storage location
socket = /tmp/mysql.sock //file socket location
port = 3306 //port
pid-file = /opt/mysql_data/mysql.pid //process file location
user = mysql //user
skip-name-resolve //skip domain name resolution, i.e., connect directly to the database using ip on the intranet
スタートアップスクリプトの設定と起動
[root@localhost ~]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# sed -ri 's#^(basedir=). *#\1/usr/local/mysql#g' /etc/init.d/mysqld
[root@localhost ~]# sed -ri 's#^(datadir=). *#\1/opt/mysql_data#g' /etc/init.d/mysqld
[root@localhost mysql]# head -47 /etc/init.d/mysqld |tail -2
basedir=/usr/local/mysql
datadir=/opt/mysql_data
[root@localhost mysql]# service mysqld start
Starting MySQL.Logging to '/opt/data/localhost.localdomain.err'.
SUCCESS!
[root@localhost mysql]# chkconfig mysqld on
[root@localhost mysql]# chkconfig --list
Note: This output shows SysV services only and does not include native
SysV configuration data might be overridden by native
SysV configuration data might be overridden by native systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost mysql]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 *:443 *:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
ヘッダーとライブラリファイルの設定
[root@localhost mysql]# ln -s /usr/local/mysql/include /usr/include/mysql
[root@localhost mysql]# vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@localhost mysql]# ldconfig //Reread the configuration file
起動とパスワードの設定
[root@localhost local]# mysql -uroot -p
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory // missing package
[root@localhost local]# dnf provides libncurses.so.5 //View the libraries that the package depends on
Warning: failed loading '/etc/yum.repos.d/mssql-server.repo', skipping.
ncurses-compat-libs-6.1-7.20180224.el8.i686 : Ncurses compatibility libraries
Repo : baseos
Matched from:
Provide : libncurses.so.5
[root@localhost local]# dnf -y install ncurses-compat-libs
[root@localhost local]# cat password
/sdjtceDy7F7
[root@localhost local]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.33
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.
Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
phpのインストール
phpのインストール
[root@localhost ~]# dnf -y install php*
php-fpmの起動
[root@localhost ~]# service php-fpm start
ポートをリッスンして、サービスを再起動する
[root@localhost ~]# vim /etc/php-fpm.d/www.conf
[root@localhost ~]# head -38 /etc/php-fpm.d/www.conf |tail -2
listen = /run/php-fpm/www.sock
listen = 0.0.0.0:9000
[root@localhost ~]# service php-fpm restart
[root@localhost ~]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:9000 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
apacheの設定
バーチャルホストの設定は、メインのapache設定ファイルの以下の部分をアンコメントすることで行います。
Include /etc/httpd24/extra/httpd-vhosts.conf
apache プロキシモジュールを有効にするために、メインの apache 設定ファイルで次の 2 行を取ります。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
メインのapache設定ファイルに、以下の2行を追加します。
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .phe //add this line
AddType application/x-httpd-php-source .phps //add this line
apacheのメイン設定ファイルで、次のコードを見つけ、index.htmlの前にindex.phpを追加して、apaacheサービスがphpの初期ページを最初に見つけることができるようにします。
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
初期phpページのルートを作成し、phpのテストページを書く
[root@localhost ~]# mkdir /usr/local/apache/htdocs/hanao
[root@localhost ~]# cd /usr/local/apache/htdocs/hanao
[root@localhost hanao]# vim index.php
<?php
phpinfo();
? >
バーチャルホスティングを設定する
<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs/hanao"
ServerName www.hanao.com
ProxyRequests Off
ProxyPassMatch ^/(. *\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/h
tdocs/hanao/$1
<Directory "/usr/local/apache/htdocs/hanao">
Options none
AllowOverride none
Require all granted
</Directory>
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
レンダリングです。
複数ホストでのビルド
apacheのホストの設定
コンパイラのインストール、必要なツールなど
[root@localhost ~]# dnf -y install gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel make expat-devel libtool
[root@localhost ~]# dnf -y groups mark install 'Development Tools'
rpmパッケージの解凍
[root@localhost ~]# tar xf apr-1.7.0.tar.bz2
[root@localhost ~]# tar xf apr-util-1.6.1.tar.bz2
[root@localhost ~]# tar xf httpd-2.4.43.tar.bz2
[root@localhost ~]# ls
anaconda-ks.cfg apr-util-1.6.1 httpd-2.4.43.tar.bz2
apr-1.7.0 apr-util-1.6.1.tar.bz2
apr-1.7.0.tar.bz2 httpd-2.4.43
コンパイルとインストール
httpd は apr-util-1.6.1 に依存し、apr-util-1.6.1 は apr-1.7.0 に依存しているので、インストール順序は apr-1.7.0, apr-util-1.6.1, httpd-2.4.43 となります。
pr-1.7.0 の configure で RM "$cfgfile" を削除またはコメントアウトする。
コンパイルして、apr-1.7.0をインストールするを押してください。
[root@localhost apr-1.7.0]# . /configure --prefix=/usr/local/apr
[root@localhost apr-1.7.0]# make
[root@localhost apr-1.7.0]# make install
apr-util-1.6.1のコンパイルとインストール
[root@localhost apr-util-1.6.1]# . /configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]# make
[root@localhost apr-util-1.6.1]# make install
apacheのビルド環境を確認し、必要な機能の設定とインストールを行う
[root@localhost httpd-2.4.43]# . /configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
[root@localhost httpd-2.4.43]# make
[root@localhost httpd-2.4.43]# make install
ユーザーとグループの作成、グループとホストの設定
[root@localhost httpd-2.4.43]# useradd -r -M -s /sbin/nologin -g apache apache
[root@localhost httpd-2.4.43]# chown -R apache.apache /usr/local/apache/
環境変数の設定 ヘルプファイルやヘッダー
[root@localhost ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@localhost ~]# source /etc/profile.d/httpd.sh
[root@localhost ~]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@localhost ~]# echo 'MANPATH /usr/local/apache/man' >> /etc/man.config
ServerNameのコメントを解除します。
[root@localhost ~]# sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf
apacheサービスファイルを書き込む
[root@localhost ~]# cat << EOF >> /etc/systemd/system/httpd.service
> Description=Start httpd
> [Service]
> Type=simple
> EnvironmentFile=/etc/httpd24/httpd.conf
> ExecStart=/usr/local/apache/bin/httpd -k start -DFOREGROUND
> ExecReload=/usr/local/apache/bin/httpd -k graceful
> ExecStop=/bin/kill -WINCH ${MAINPID}
> [Install]
> WantedBy=multi-user.target
> EOF
apacheの起動
[root@localhost system]# systemctl start httpd
[root@localhost system]# systemctl status httpd
httpd.service
Loaded: loaded (/etc/systemd/system/httpd.service; disabled;>
Active: active (running) since Tue 2021-04-20 20:34:47 CST; >
Main PID: 53212 (httpd)
Tasks: 6 (limit: 8756)
Memory: 4.9M
CGroup: /system.slice/httpd.service
├─53212 /usr/local/apache/bin/httpd -k start -DFOREG>
├─53213 /usr/local/apache/bin/httpd -k start -DFOREG>
├─53214 /usr/local/apache/bin/httpd -k start -DFOREG>
├─53215 /usr/local/apache/bin/httpd -k start -DFOREG>
├─53216 /usr/local/apache/bin/httpd -k start -DFOREG>
└─53217 /usr/local/apache/bin/httpd -k start -DFOREG>
Apr 20 20:34:47 localhost.localdomain systemd[1]: Started http>
Apr 20 20:34:47 localhost.localdomain httpd[53212]: AH00558: h>
ファイアウォールとselinuxをオフにする
[root@localhost ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
80番ポートが開いているかどうか確認する
[root@localhost system]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
メインの apache ホスト設定ファイルで以下のようにコメントアウトを解除して、バーチャルホスティングを設定します。
Include /etc/httpd24/extra/httpd-vhosts.conf
apacheのプロキシモジュールを有効にするために、apacheホストのメイン設定ファイルに以下の2行を記述してください。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
apacheのメイン設定ファイルに次のコードを見つけ、index.htmlの前にindex.phpを追加して、apaacheサービスがphpの初期ページを最初に見つけることができるようにします。
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
メインのapache設定ファイルに、以下の2行を追加します。
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .phe //add this line
AddType application/x-httpd-php-source .phps //add this line
バーチャルホストのルートディレクトリを作成し、属人グループをapacheに設定します
[root@localhost httpd-2.4.43]# mkdir /usr/local/php
[root@localhost httpd-2.4.43]# mkdir /usr/local/php/hanao
[root@localhost local]# chown -R apache.apache php
バーチャルホストの設定
<VirtualHost *:80>
DocumentRoot "/usr/local/php/hanao"
ServerName www.hanao.com
DirectoryIndex index.php
ProxyRequests Off
ProxyPassMatch ^/(. *\.php)$ fcgi://192.168.247.211:9000/usr/local
/php/hanao/$1
<Directory "/usr/local/php/hanao/">
Options none
AllowOverride none
Require all granted
</Directory>
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
phpホストの設定
phpのインストール
[root@localhost ~]# dnf -y install php*
php-fpmの起動
[root@localhost ~]# service php-fpm start
ポートをリッスンして、サービスを再起動する
[root@localhost ~]# vim /etc/php-fpm.d/www.conf
[root@localhost ~]# head -38 /etc/php-fpm.d/www.conf |tail -2
;listen = /run/php-fpm/www.sock //comment out this line with ;listen
listen = 0.0.0.0:9000
......
;listen.allowed_clients = 127.0.0.1 //use; comment out this line to allow all hosts to connect
[root@localhost ~]# service php-fpm restart
[root@localhost ~]# ss -anlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:9000 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
phpのホスト下に/usr/loca/php/hanao/index.phpのテストページを作成し、apacheをホストとグループにしてphpディレクトリをカスケードします。
[root@localhost ~]# mkdir /usr/local/php
[root@localhost ~]# mkdir /usr/local/php/hanao
[root@localhost ~]# vim /usr/local/php/hanao/index.php
<?php
phpinfo();
? >
テストページです。
関連
-
[解決済み】autoカラムは1つしか存在できない
-
[解決済み】#1273 - 不明な照合順序:'utf8mb4_unicode_520_ci'
-
[解決済み】MySQLユーザーDBにパスワードカラムがない - OSXへのMySQLインストール
-
[解決済み】MySQL エラー #1133 - ユーザー テーブルに一致する行が見つかりません。
-
[解決済み] エラー:テーブル '<table-name>' に対するユーザー '<userid>'@'<ip-address>' への select コマンドが拒否されました。
-
[解決済み] WindowsでMySQLの画面コンソールをクリアする方法は?
-
[解決済み] XAMPP - フェイタルエラー。未定義の関数mysql_connect()をコールしています。
-
[解決済み] SQL - 列数が行 1 の値数と一致しません。
-
[解決済み] どのようにクエリは、各行のMySQLの2つのセルを乗算することができますか?
-
[解決済み] UNIONとORDER BYの使い方が間違っている?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】mysql 外部キー制約が不正に形成されているエラー
-
[解決済み] SQLZOO - select from world チュートリアル #13
-
[解決済み] テーブル 'performance_schema.session_variables' は存在しません。
-
[解決済み] MySQLのエラーコードです。MySQL WorkbenchでUPDATE中に1175が発生する
-
[解決済み] 「他のデータベースへのクエリを無視する」コマンドライン
-
[解決済み] MongoDBのようにMySQLにもTTLがあるのでしょうか?
-
[解決済み] mysqlとphpmyadminの違い?
-
[解決済み] MySQLのgroup_concat_max_lenの最大許容値を教えてください。
-
mysql: 3、mysqlはパスワードを設定したエラー:mysqladmin:'localhost'でサーバーへの接続は、解決に失敗しました。
-
初期通信パケットの読み込み」でMySQLサーバーに接続できなくなり、システムエラーが発生しました。111