Cygwin を使って Apache を速攻セットアップする手順です。
設定環境
CYGWIN_NT-10.0 PC 3.1.4(0.340/5/3) 2020-02-19 08:49 x86_64 Cygwin
Apache/2.4.39 (Unix) May 1 2019 19:37:31
PHP 7.3.7 (cli) (built: Jul 21 2019 18:10:35) ( NTS )
本ページはこんな方におすすめ
- Windows 上で httpd を動かしたい
- Windows 上で WordPress のテストをしたい
- Windows 上で PHP のテストをしたい
このページでは、Windows の Cygwin を使って、Apache をインストールして httpd が動かすところまでの手順です。
他のページも同時に参照していただければ、最終的には、PHP と MySQL(MariaDB) をインストールして、Apache で WordPress を動かすことが可能です。
単純に掲示板のようなスクリプトを運用したいのであれば、Windows ネイティブの httpd の方が安定します。しかし、一般のレンタルサーバー(X server など)は、ほとんどが Linux 系の OS に PHP+MySQL という組み合わせなので、手元にほぼ同等のシステムを作ってシュミレートする意味は大きく、Windows 系(Cygwin を通さない)ネイティブの httpd を構築するよりも、容易にサーバー込みのシミュレーションが可能です。
Apache を Cygwin でセットアップする手順
Apache と PHP はまとめて選択してインストールして問題ありません。別々にコンパイルしながらインストールするときは、PHP をインストーヘルしてから Apache をインストールするのが普通です。
ここでは、バイナリをそのままインストールするので、Apache と PHP を一気にインストールします。
まず httpd (Apache)をしっかり選択
セットアップからインストールするのが簡単です。setup-x86_64.exe を起動してインストールする場合、上の赤枠のパッケージが必須になります。橙色のモジュールもインストールしておくのがおすすめです。
次に PHP をしっかり選択
Apache に続いて、インストールすべき PHP をしっかり選択します。マル1で「Full」ビューにして Search 欄に「PHP」と入れると候補が出てきます。必要なのはマル3の「php」(Categories:Interpreters, PHP)です。その他、マル3、4、5の「httpd-mod_php7」、「php-mysqli」、「php-pdo_mysqli」、「php-pgsql」、「php-pdo_pgsql」、「php-pdo_sqlite」などもインストールしておくと、手間が省けます。「php」以外は、後に必要になったときに別途インストールしても問題ありませんので、マル3の PHP だけは忘れずにインストールよるようにします。ちなみに、すべての「php-***」を一気にインストールしても問題ありません。
Apache を Cygwin で起動する手順
設定ファイル "httpd.conf" を編集する
"/etc/httpd/conf/httpd.conf
"をエディタで開きます。vi や emacs を使わない人は、Windows のメモ帳、秀丸エディタ、EmEditor などで、"C:\Cygwin64\etc\httpd\conf\httpd.conf
" を開いて編集します。
書き換える場所は、
#ServerName www.example.com:80
の箇所を
ServerName localhost:80
に書き換えます。他のノードからアクセスさせたり、外部公開を前提としている場合は、ネットワークアダプタ(LANカードやWi-Fiアダプタ)に割り当てたIPアドレス(192.168.0.4など)をlocalhost の代わりに書きます(192.168.0.4:80など)。ただし、この場合は固定アドレスにするかDHCPの場合も固定的にIPアドレスを割り当てるように設定しておくのが無難です(この例では常に 192.168.0.4 を割り当てるように設定)。
LoadModule cgid_module modules/mod_cgid.so LoadModule cgi_module modules/mod_cgi.so
164行目あたりの cgi モジュールを有効にするため、コメント(#
)を消しておきます。
もし、これから後の作業で apache を起動する際に "is mod_slotmem_shm loaded??" とエラーが出る場合は、147行目あたりの
#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
を
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
として、コメント(#
)を消しておきます。
さらに、今後 WordPress をインストールする予定のある方は、WordPress 用の設定を行っておきます。
デフォルトのドキュメントルートは "/srv/www/htdocs" になっています。実際は"C:\Cygwin64\srv\www\htdocs
" になります。このディレクトリ(フォルダ)に置いた html ドキュメント(index.html)がデフォルトで表示されます。
ここでは、WordPress のスクリプトファイルを "C:\Cygwin64\srv\www\wordpress
" に置くことを前提にします。
"httpd.conf" の最後尾に、以下の記述を追加します。
<Directory "/srv/www/wordpress">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
WordPress をテストすることを前提にしているので、セキュリティを緩く、徹底的にテストできるようにユーザー許可を広く許しています。
設定ファイル "php.ini" を編集する
PHP の設定ファイルはデフォルトでは /etc/php.ini
になります。Windows エディタで直接編集するときは、C:\Cygwin64\etc\php.ini
を直接触ることになります。
編集は必ずしも必要ありませんが、今後 WordPress のテストなどで使うつもりなら、以下のパラメーターを書き変えておくと楽にコトが進みます。
385 行目あたり、最大実行時間のデフォルトの 30 は少なすぎますので、
max_execution_time = 300
と 10 倍増しておきます。
402, 403 行目あたり、デフォルトの 1000 では少々少ないので、
max_input_vars = 1620
として、最大入力数を増やしておきます。
Apache の起動と停止コマンド
"/usr/sbin/" にはパスが通っていないことが多いので、プルパスで指定します。
cygwin
$ /usr/sbin/httpd -k start #Apacheの起動
$ /usr/sbin/httpd -k stop #Apacheの停止
あるいは
cygwin
$ /usr/sbin/apachectl start #Apacheの起動
$ /usr/sbin/apachectl stop #Apacheの停止
Apache を Windowsのサービスとして登録する
安定度はともかく、Windows の httpd サービスとして登録してしまえば、簡易 http サーバーとしても利用可能です。
cygwin
$ cygrunsrv -I apache2 -d "Cygwin Apache2" -p /usr/sbin/httpd -a -DFOREGROUND -e "CYGWIN=server"
$ cygrunsrv -S apache2 #Apacheサービスの起動
$ cygrunsrv -E apache2 #Apacheサービスの終了:サービス終了
$ cygrunsrv -R apache2 #Apacheサービスの削除
Cygserver の起動はコマンドプロンプトから次のように行います。
windows
$ net start cygserver
[st_af name="mo-alltext-techac-wp-php"]
Cygwin に MySQL(MariaDB) をセットアップして実行する手順です。 MySQL を Cygwin でセ ... 続きを見る Cygwin は Windows 上で Linux ディストリビューションと同様の機能が使えるようにする、オープンソース ... 続きを見る
Cygwin で MySQL を速攻セットアップする
Windows に Cygwin をセットアップする入門編