実践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)へ

目 次

特別企画
Raspberry Piで遊ぶ

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

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
  EC-CUBEショッピングサイト構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ストリーミングサーバーRed5
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
audit2allowを使い問題の解決
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く