実践Linux
CentOS5/6.5        CentOS5/6.5 目次へ  TOP(HOME)へ


Webサーバー(CentOS 6.5)  2014年9月更新





●Webサーバー(httpd)
メインのmy-dom.xxxドメインのホームページは/var/www/htmlに設置。http://www.my-dom.xxxでアクセス。
さらに新しい別のドメインnew-dom.xxxを取得したとする。ドメインの追加を参照。http://www.new-dom.xxxでアクセスする。
サブドメインmyhome.my-dom.xxxも設定する。DNSサーバーの/var/named/my-dom.zone参照。http://myhome.my-dom.xxxでアクセスできるようになる。
それぞれのユーザーは作成しておくこと。(グループapache、/sbin/nologin、ホーム作成。)
ここではWeb用に、new-dom、myhome、fooを作成。fooは、http://www.my-dom.xxx/~fooでアクセス。
Web公開する /home/**** はアクセス権を755にしておく。

SElinux
 /var/www/htmlはそのままで見ることができるが、ユーザーホームで作成したpublic_html以下はそのままでは見ることはできない。
 booleanのポリシーを、 # getsebool -a | grep httpで調べておく。
 ポリシーhttpd_enable_homedirsをONにして、ホ−ムにアクセスできるようにする。
 # setsebool -P httpd_enable_homedirs 1


設定ファイル /etc/httpd/conf/httpd.conf
 SerberName ns1.my-dom.xxx:80
 DirectoryIndex index.html index.html.var
  アクセスに対して自動的に開きたいファイル名

 <IfModule mod_userdir.c>
  #UserDir disabled
  コメントアウト
  UserDir public_html
  有効にする。http://www.my-dom.xxx/~foo等でホームのpublic_htmlにアクセスできるようになる。
 </IfModule>

 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
  CGIを使用する
 <Directory "/var/www/cgi-bin">
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
 </Directory>
 LanguagePriority ja ……
   jaを先頭に持ってくる。

 AddDefaultCharset Off
  これがUTF-8などだと、これに初期画面が固定されて文字化けを起こす。

 最後にバーチャルホスト設定を記入する場合、下のように /var/www/html の設定も書いておかないと http://333.333.333.210等でアクセスしたとき /home/foo/public_html 等が開いてしまうので注意。
 ###############################最後に追加##################################
 AddType application/x-httpd-php .php .html
 SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(xbm)|(js)|(css)$" nolog
 NameVirtualHost 333.333.333.210

 <VirtualHost 333.333.333.210>
  my-dom.xxxのWeb設定。http://www.my-dom.xxxでアクセス。
  ServerAdmin root@localhost
  DocumentRoot /var/www/html
  ServerName www.my-dom.xxx
  ErrorLog logs/www_error_log
  CustomLog logs/www_access_log combined env=!nolog
 </VirtualHost>

 <VirtualHost 333.333.333.210>
  新しいドメインnew-dom.xxxの設定。ドメインの追加を参照。http://www.new-dom.xxxでアクセス。
  ScriptAlias /cgi-bin/ /home/new-dom/cgi-bin/
  ServerAdmin root@localhost
  DocumentRoot /home/new-dom.xxx/public_html
  ServerName www.new-dom.xxx
  ErrorLog logs/new-dom_error_log
  CustomLog logs/new-dom_access_log combined env=!nolog
 </VirtualHost>

 <VirtualHost 333.333.333.210>
  サブドメインの設定。DNSサーバーの/var/named/my-dom.zone参照。http://myhome.my-dom.xxxでアクセス。
  ScriptAlias /cgi-bin/ /home/myhome/cgi-bin/
  ServerAdmin root@localhost
  DocumentRoot /home/myhome/public_html
  ServerName myhome.my-dom.xxx
  ErrorLog logs/myhome_error_log
  CustomLog logs/myhome_access_log combined env=!nolog
 </VirtualHost>


説明
AddType application/x-httpd-php .php .html
  .phpや .htmlをphpプログラムが動作できるファイルとして認識させる。
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(xbm)|(js)|(css)$" nolog
  アクセスログをとりたくない対象ファイルを環境変数「nolog」に設定。
CustomLog logs/www_access_log combined env=!nolog
  combinedは書き出すログの書式。デフォルトでcombined、commonなど4種類用意されている。
  env=!nologは、環境変数「nolog」に設定されたものはログをとらない。
以上で基本設定は終わり。

/var/www/htmlを使用する場合は、まずftpアクセス用のユーザーを作成する。
ユーザーホームには/var/wwwを指定、グループはapache、ログインシャエルは/sbin/nologin等。
/var/www以下の所有をこのユーザー、グループapacheに変えておく。
 # chown -R ユーザー:グループ /var/www


●CGIを使えるようにする
FTPサーバーの設定 /etc/vsftpd/vsftpd.conf
 asciiモードでのアップロードができるようにする。(デフォルトでは不可)
 ascii_download_enable = YES  アクティブに
 ascii_upload_enable = YES

属性の設定
 ファイルの所有者やアクセス権が適切か確認しておく。
 cgiファイルは755(実行)、読み書き用ファイルは664(apacheグループに読み書き)に設定。

SElinuxの設定(/home/***/cgi-binでCGIを使うとき。/var/www/cgi-binの場合は、ママでOK。)
 httpd_sys_script_tドメインがアクセスできるように、httpd_sys_script_exec_tタイプを付与する。
 # semanage fcontext -a -t httpd_sys_script_exec_t "/home/***/cgi-bin(/.*)?"
 # restorecon -RF /home/***/cgi-bin
 CGIの読み書き用ファイルにはhttpd_sys_script_rw_tタイプを付与する。
 # semanage fcontext -a -t httpd_sys_script_rw_t "/home/***/cgi-bin/data/data.txt"
 # restorecon -F /home/***/cgi-bin/data/data.txt

●php関係の設定(Apache+phpでMySQLデータベースにアクセスできるようにする)
php、php-common、php-pdo、php-cli等本体はインストール済み。
php-mysqlのインストール(CentOS6.5の場合、最初はインストールされていない。)
 # yum install php-mysql
 httpdの再起動が必要。

/etc/httpd/conf.d/php.confの確認
 AddHandler php5-script .php
 AddType text/html .php
 DirectoryIndex index.php
 (AddType application/x-httpd-php-source .phps  .phps名で保存すると、ソースを表示するようにできる。)

/etc/php.iniの編集(phpでアップロードできるファイルのサイズを設定する場合。)
 file_uploads = On  ←確認
 post_max_size = 200M
 upload_max_filesize = 200M
編集したらhttpdの再起動。

/etc/php.ini(mbstring関係 1539行以下)
 これまでは以下の項目の「;」をとって有効にしていたが、今回はなにもしない。そのままでも、いまのところ問題ない。
 ;mbstring.language = Japanese
 ;mbstring.internal_encoding = EUC-JP
 ;mbstring.http_input = auto
 ;mbstring.http_output = SJIS
 ;mbstring.encoding_translation = Off
 ;mbstring.detect_order = auto
 ;mbstring.substitute_character = none
 ;mbstring.func_overload = 0
 ;mbstring.strict_encoding = Off
これを変更した場合は、httpdを再起動しておくこと。

言語は、UTF-8で統一しておくとよい。
<head>
<meta http-equiv="Content-Language" content="ja">
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>テスト</title>
</head>



●SSL/TLSを利用した暗号化通信については、SSL/TLSのページを参照してください。



TOP(HOME)へ

目 次
HOME
 全体のシステム構成&目次


RockyLinux

RockyLinux8.4のインストール

旧サーバーからのデータ移行

ネットワークの設定ほか
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
DHCPサーバー
FTPサーバー
FTPS(FTP over SSL/TLS)
Webサーバー
  アクセス解析ツールAwstats
Mail(Dovecot&Postfix)サーバー
MariaDB(MySQL)サーバー
SSHサーバー
SSHトンネル
SSH+MariaDB+Exel
Sambaサーバー
openVPNサーバー
VNCサーバー(リモートディスクトップ)

systemdとfirewalldについて


CentOS8
CentOS7
CentOS5〜6

SELinux

Cプログラミング


●その他
クラウド Amazon EC2
Raspberry Piで遊ぶ
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く


●趣味の世界
相対性理論
量子力学
群論
熱力学・統計力学
解析力学
物理でつかう数学
超弦理論(ノート作成中)