Tag apacheを表示しています。
2019.11.4 月
何にもしてないのにこんな感じでつながらなくなるときがあります。 × Close Chromeではこのエラーなんだけど、Firefoxzではまた違ってexample.com への接続中にエラーが発生しました。Peer reports it experienced an internal error. エラーコード: SSL_ERROR_INTERNAL_ERROR_ALERTというエラーになっていました。ちょっと変だなと思って、Chromeのキャッシュを削除するとこのサイトは安全に接続できませんexample.com から無効な応答が送信されました。ERR_SSL_PROTOCOL_ERRORにかわったので、SSLのエラーなんだなと。 curlでステータスコードを確認すると、 $ ...
2018.11.8 木
Reverse Proxyがかんでいるwebサーバーでは以下のようなエラーになって正しいログイン情報を入れてもログインできません。 There is mismatch between HTTPS indicated on the server and client. This can lead to non working phpMyAdmin or a security risk. Please fix your server configuration to indicate HTTPS properly. mysqli_real_connect(): (HY000/1045): Access denied for user 'xxxxx'@'localhost' (using pass...
2018.11.6 火
リバースプロキシとかLBとかを挟むと当然アクセスIPアドレスがlocalhostになってしまうので、正しいアクセス元のグローバルIPアドレスを設定する必要があります。普通はX-Forwarded-ForというhttpヘッダにグローバルIPを渡して後方のwebサーバーでそれを拾うという段取りになります。 nginxの設定 nginxの方の設定ではserverのプロキシのヘッダに設定してあげます。$proxy_add_x_forwarded_forでグルーバルIPが拾えるのでそれをそのままX-Forwarded-Forにセットします。 server{ server_name example.com; return 301 https://$host$request_uri; proxy_set_...
2018.9.6 木
もうAPPサーバーみたいな使い方になってます。私個人の中では。 Apacheのインストール まずはインストール。SSLは今どき必須みたいなところがあるので入れておくけど、ポリシーによってAPPサーバーとしてlocalhostみたな感じで使うのだったら不要。 yum -y install httpd yum -y install mod_ssl 自動起動の設定 enableになっていればOK systemctl enable httpd.service systemctl list-unit-files 起動 systemctl start httpd.service 基本設定 バックアップとってから設定はじめよう。 cp -p /etc/httpd/conf/httpd.conf /etc/...
2018.8.1 水
時々しかやらないのでハマりました。要は普通の80のバーチャルホストとほとんど同じです。 NameVirtualHost *:443を設定するのを忘れないようにする。 Defaultはアスタリスクにする。(上記と共に) これで複数設定できるようになります。 最低限必要な設定は以下のような感じになります。 <VirtualHost *:443> DocumentRoot "/home/user/www" ServerName example.com:443 <Directory "/home/user/www"> AllowOverride All </Directory> RewriteEngine On RewriteOptions inherit Err...
2018.3.4 日
rsyncなどの実行をWEBページインターフェイスから実行しようと思うとそもそものユーザーではなくApacheがユーザーとして実行するので思うように実行できないことがります。更にSSHでリモート接続するときは実行ユーザーが全く違うので秘密鍵を読めないということになります。 しかし開発をしているとごく頻繁にいわゆるログインユーザーとApacheユーザーを併用したいという状況が訪れます。以下のユーザーを例にして説明します。 user: sampleuser Apache: apache PHPの実行ユーザーは以下で取得できます。 posix_getpwuid(posix_geteuid())['name'] cliでコマンドラインで実行すると想定通りのsampleuserとなりますが、webから...
2017.12.7 木
そのまま使えるRewite ホスト名を条件にするやつ ホスト名がexample.comの場合は、httpsにしてアクセスさせる RewriteEngine on RewriteCond %{HTTP_HOST} ^example\.com$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
2017.9.19 火
自動起動サービスのリスト表示 長年親しんできたchkconfigがいなくなってsystemctl list-unit-files -t serviceという長ったらしいコマンドになりました。 [CentOS6] chkconfig --list [CentOS7] systemctl list-unit-files -t service systemctl使うと長ったらしいので、 ls -al /usr/lib/systemd/system/ で一覧見た方が見やすいです。 表示の形式も変わっていわゆるランレベル的なものではなくて純粋に自動起動に関して「enabled | disabled | static」というふうにステータスを表示するようになってます。 .... httpd.servic...
2017.6.5 月
インストール リポジトリの調整しなくても2.4が入ってくれるっぽいです。 yum -y install httpd これで完了。 httpd -v Server version: Apache/2.4.6 (CentOS) Server built: Apr 12 2017 21:03:28 なるほど。 Firewallやiptablesを無効にしていればこの時点で80がListenされます。 IPなどでアクセスするとApacheのWelcomeページが表示される筈です。 httpd.confの設定 以下を例に設定します。基本的には/var/www/htmlは使いません。すべてバーチャルホストで設定します。 Domain port host1.example.com virtualhost ...
2017.5.10 水
SSLを使っても結局はVirtualhostであることは変わりがないので、以下のように設定します。 ちなみにApache2.2の設定です。 ホストは80のホストを同じようにどんどん追加してゆきます。NameVirtualhost *:443これを忘れがち。 #/etc/httpd/conf.d/ssl.conf Listen 443 NameVirtualhost *:443 <VirtualHost _default_:443> DocumentRoot "/home/foo/www" ServerName foo.com:443 SSLEngine on SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertif...
2017.4.5 水
「HTTP/2」がついに登場! 開発者が知っておきたい通信の仕組み・新機能・導入方法 概要としてはこんな感じで、この先数年後にはデフォルトスタンダードになってるんじゃないかと思います。 環境の下準備 CentOS7のインストール直後にやっておくとよいかと。yum upgradeでだいたい全部入ってしまうようで環境によっては蛇足かもしれません。 yum -y upgrade yum -y update yum groupinstall "Base" yum groupinstall "Development tools" yum groupinstall "Japanese Support" yum install bind-utils yum install nmap FirewallとかS...
2017.3.26 日
CentOS7 インストール後の初期設定 CentOS7の便利な設定をしておく CentOS7 ホスト名の設定(変更)方法 SSHの設定 無料SSLを取得する Let’s Encrypt
2017.3.16 木
SSLを使う際にいちいちmod_sslインストールしなくちゃいけない感じが時代遅れ感じがします。 ちなみにApacheはServer version: Apache/2.4.6 (CentOS)でやってます。 mod_sslのインストール yum -y install mod_ssl mod_ssl.x86_64 1:2.4.6-45.el7.centosが2017年3月現在では落ちてきます。 /etc/httpd/conf.d/ssl.confができてくるので設定。 vi /etc/httpd/conf.d/ssl.conf 基本設定としては DocumentRoot "/var/www/html" ServerName www.example.com:443 でこと足りるのだけど、Apa...
2016.11.15 火
WEBサーバーの負荷テストだったらApacheにデフォルトでついているabコマンドを使うのが最もいい感じです。例えばですが100人の同時アクセスを30回、指定のファイルに対して行うということができます。おそらくこの時代なのでもっとすごい負荷測定のWEBアプリみたいなものがあるんでしょうけど、とりあえずエンジニアの方々はこれで充分過ぎます。 abコマンドの使い方 500人の同時アクセスを5000回行う # ab -k -c 500 -n 5000 http://www.example.com/index.html Basic認証がかかっている場合 user: loginuser pass: xxxxx # ab -k -c 500 -n 5000 -A loginuser:xxxxx http...
2016.11.2 水
Apacheの設定を何年もやっているにも関わらず、PHPのいろんなアプリとかフレームワークの都合で見たこと無いエラーって出るもんですね。 PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 これに陥るとForbiddenになってアクセスできなくなります。 httpd.confのオーバーライドはするだけど、アクセス先ディレクトリより上位にある.htaccessの上書きはするのかしないのかといったら、本来しちゃいけないことになっているということです。 <Directory /> Options All AllowOverride None ←ココ </Direct...
2016.9.7 水
というこのタイトルはちょっと抽象度に欠けていて、本来は任意のプリケーションを任意の拡張子で実行するというものです。 index.aspxにアクセスするとこのファイルにかかれているphpが実行されるというものです。 .htaccessかhttpd.confみたいなファイルに以下を書きます。 AddHandler application/x-httpd-php .php .aspx 拡張子がhtmlの方が検索順位が有利になる的な話がそうとう昔にありましたが、そのときによくやっていた感じです。
2016.9.6 火
専用サーバーとか自宅サーバーとかでサーバー全体の設定を自分しかしない、つまりroot権限は自分しかもっていないという状態でApacheの設定とかどうするのかというのがいつもあって、都度都度用途によって変わるんですが、 <Directory /home/*/www> AllowOverride All Options All -Indexes <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </...
2016.8.9 火
こういう形式でURLをつくってあげると、ユーザー名、パスワードを入力しなくとも認証できます。 URL: http://example.com/hoge/huga/ username: USERNAME password: PASSOWRD の場合、 http://USERNAME:PASSOWRD@example.com/hoge/huga/ とはいえ、これ平文で流れるのでSSL配下でやった方がいいですね。ほんとうは。 いろいろ使いどころはあると思うのですが、認証のゆるい画像の直リン防止やそういうのかな。
2016.6.17 金
Satisfy AnyをつかってIPで許可されなかった場合だけBasic認証にする Order Deny,Allow Deny from all Allow from 192.168.1 Allow from 192.168.2 AuthUserFile /var/www/.htpasswd AuthGroupFile /dev/null AuthName StaffOnly AuthType Basic require valid-user Satisfy Any IPで許可されなかった人だけBasic認証がかかります。関係者はパスなしそれ以外はアイパスありみたいな感じになるのではないでしょうか。結構便利だけど、ネットワークから離れて外からアクセスするときに必ずログイン情報を忘れているとい...
2016.6.9 木
できるだけ最新に近い安定版を入れる。2016年現在でphp5.5とかphp5.6ぐらいです。php7 はまだBeta版(じゃないけど)それに近く資料が少ないので一応やめておく。 また、yum -y install phpを行うとLinuxでは現在php5.3がインストールされますが、これだと若干古いです。なのでリポジトリを調整して比較的新しいものを入れます。 既存の古いPHPをアンインストール # yum remove httpd php mysql-server 必要な場合はこれをやっておきます。 いずれにしろhttpd2.4じゃないとphp5.5は入らないので、ご注意ください。 # yum -y install php55 これでインストールできます。 # php -v PHP 5.5....
2016.6.9 木
古いhttpdをremoveしてから新しいものを再インストールすると Error: httpd24-tools conflicts with httpd-tools-2.2.31-1.7.amzn1.x86_64 というエラーがでることがあります。新しいhttp24-toolsが古いものとコンフリクト起こしているという話なんで、古い方を削除ということになります。 # rpm -qa | grep httpd httpd-tools-2.2.31-1.7.amzn1.x86_64 まだいることが確認できたら、 # yum remove httpd-tools-2.2.31-1.7.amzn1.x86_64 で削除。再度yumで新しいhttpdをインストールすればOKです。 # yum -y i...
2016.6.8 水
CentOS6でのApache2の設定ですが、基本httpd.confがあるApacheだったらだいたい同じ設定でいけるかと思います。Debian/Ubuntuだけちょっと違う感じになりますが、考え方は同じです。 AWSの「Amazon Linux AMI」でもだいたい同じような設定でなんとかなります。(ちなみにAWSのLinuxは、ec2-userでログインします。) Apacheのインストール httpdのインストールとかapacheのインストールとかいろいろ言い方がありますが、httpdはサーバー内のサービス名もしくはデーモン名ということになっていて、Apacheはミドルウェアそのものの名前ということになります。 前提としてセキュリティーグループやFWでポートの80はあけておきましょう...
2016.5.14 土
インストールと初期設定 ここらあたりからダウンロードしてインストール。WindowsとLinux、Macとわかれているので、ここではMac版を選びましょう。私は、Mac版の「7.0.9 / PHP 7.0.9」を選んでみました。 デフォルトだと、コンパネみたいなものがここにインストールされているので、起動します。 /Applications/XAMPP/manager-osx.app 起動した後にlocalhostにアクセスしてみて、xamppが起動していたらOKです。 http://localhost/dashboard/ MySQLも起動していたら、こちらにアクセスできます。(ローカル環境ということもあってログイン・ログイアウトがないんですね。) http://localhost/php...
2016.5.5 木
特定のホストのみ許可する <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> order deny,allow deny from all allow from 12.34.56.78 allow from saba.omnioo.com allow from localhost ここだとIP制限をジェネレートしてくれるので大変便利です。 http://www.htaccesseditor.com/#a_access httpd.confとかで設定する 余談ですが.htaccessを使わないで、httpd.confなどで設定する方法もあるというか.htacessはApacheの設定ファイルの拡張なので、...
2016.3.18 金
SSL証明書はなんであんなに高価なんですかね。仕事でつかっている限り10万円って全然高くないんですが、これ個人だと結構痛い金額です。SSL証明書取得の手続きも面倒です。 CentOS6でSSLの設定をする CentOS6ってmod_sslがデフォルトで入ってないんですかね。「yum list installed | grep mod_ssl」で確認。入ってないです。 # yum -y install mod_ssl インストールをすると/etc/httpd/conf.dにssl.confという新しいファイルが作成されていますので、これを編集します。 # vi /etc/httd/conf.d/ssl.conf SSL証明書などのパスとSSLを有効にするDocumentRootの設定をする D...
2016.3.2 水
Listenに別ポートを追加 Listen 80 Listen 8080 たいていバーチャルホスト使うかと思うんですが、そこにもポート追加。 NameVirtualHost *:80 NameVirtualHost *:8080 <VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /home/user/www ServerName example.jp </VirtualHost> <VirtualHost *:8080> ServerAdmin admin@example.com DocumentRoot /home/test/www ServerName test.example....