投稿

ラベル(Apache2)が付いた投稿を表示しています

Proxmoxでサーバ構築

イメージ
これまでテスト用にi5第8世代の廃棄PCを使用してきた。 とはいえ今の所何も問題は起きていないが、入れ替えも視野に入れ予備サーバを用意することに。 - メモリ:16GB - SSD:500GB - DDNS+Let's Encrypt - Ubuntu24.04 この環境なので、すぐに構築し直すことは可能だが、とりあえずこのまま置いておいて別のサーバを立てることにする。 最初はRaspberryPiで構築しようと思ったけれど、本体電源+外付けHDD電源+ディスプレイ電源と考えると、邪魔なので廃案。 そこで廃棄しようと思っていた「Lavie NS300/N」が手元にあったので、これを利用することに。 一応バッテリーは正常に動作するので、UPS代わりにそのまま。 - Core™ i3-8145U(やや非力) - メモリ:8GB(少ないが…) - HDD:1TB なので、これまで使用しているものより、若干スペックダウン。 ただ用途は、非常勤で教えに行っている専門学校生用の練習マシンとする予定なので、まぁ問題なさそう。 Proxmox導入 直接、Linuxを導入してもよいのだけれど、今回は Proxmox を導入し、その上でUbuntu Serverを動作させる計画。 USBにProxmoxのイメージを焼いて、インストールすれば問題なく完了。 ただ、現在のバージョンはdebian - trixieがベースになっているので、若干参考になるサイトが少なめ。とはいえ旧版のは参考になるので調べつつ… HDDなだけあって、最初の起動は少し遅いものの、立ち上がってしまえば問題ない。 さぁ、VMにするかCTにするか…。 GUI使うのであれば、VMかなぁ。サーバだしCTでいいかぁ。 という程度の選定で、CT(コンテナ)で進めることに。 - メモリ:4GB - CPU:2 - HDD:20GB(root disk) - HDD:400GB(home用) - Ubuntu24.04 という構成で進めることにした。 テンプレートを用意して、初期設定を行い起動。 まぁすんなりと入った。 液晶を閉じたら、Suspendになってしまったので、若干設定変更。 $ sudo nano /etc/systemd/logind.conf HandleLidSwitch=ignore $ sudo sy...

PHP でなぜかjsonエラー

イメージ
外部サーバ上では動作  サーバに設置されているコードをテストしていて、おかしなエラーが出ることに気づいた。 Message: Call to undefined function json_encode() って、何で?って感じ…。 今回、新たに立てたVPSでは、Ubuntu20.04 + Apache2 + PHPで問題なく動作している。 その前のサーバも、同様な構成で動作している。 いつも使っているLocalマシン上で動作しない。 気持ち悪いし、テストできないので、原因追及をする。 このマシンだけは、2年前ほどに新規に調達したマシンで、当初よりUbuntu18.04で運用。 昨年20.04にdist upgradeしたマシン。 Cleanに入れてはいないので、その影響かも…。 phpinfo()を実行すると、jsonの項目がない。 そりゃ、動かないよね。 そこで、端末から念の為、入れてみる。 $ sudo apt install php7.4-json パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています                状態情報を読み取っています... 完了 php7.4-json はすでに最新バージョン (7.4.27-1+ubuntu20.04.1+deb.sury.org+1) です。 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。 おや?入っているという。 $  sudo apt list | grep json php-json-schema/focal,focal,now 5.2.9-1 all [インストール済み、自動] php-json/focal,focal,now 2:8.0+91+ubuntu20.04.1+deb.sury.org+1 all [インストール済み] php-services-json/focal,focal,now 1.0.3-1build1 all [インストール済み] php5.6-json/focal 5.6.40-57+ubuntu20.04.1+deb.sury.org+1 amd64 php7.0-json/focal 7.0.33-...

apacheでSSL利用時の再起動

SSLを利用している場合 自前でサーバを立てて、SSLの認証取って、利用できるようにしている。 標準的な設定方法に従って作業すれば、設定は難しくない。 例えば、以下のような方法で簡単に設定できる。 (読んで分からない人には、簡単ではないと思うけど・・・) https://jp.globalsign.com/support/server/03.html ところが、この方法だと、apacheを再起動する際に、 秘密鍵のパスフレーズを要求される。(上記サイトにもうっすら書いてあるww) まあ、起動しっぱなしで運用することがほとんどだとは思うけれど、パスフレーズを忘れると、起動できなくなる。 また、スクリプトを通して、再起動やらが実行できない。 コンソールで作業しても、パスフレーズを入力する時間(5秒程度だとは思うけれど)は、apacheが完全に停止した状態になってしまう。 ということで、SSLを有効にしたまま、再起動を自動で行いたい。 設定していない場合 環境はcentOS6.5+apache2です。 例えば、再起動を行うとこんなようなメッセージが表示され、パスフレーズの入力を促されます。 正しく入力すれば、無事起動。 # service httpd restart httpd を停止中:                                            [  OK  ] httpd を起動中: Apache/2.2.15 mod_ssl/2.2.15 (Pass Phrase Dialog) Some of your private key files are encrypted for security reasons. In order to read them you have to provide the pass phrases. Server myservername:443 (RSA) Enter pass p...

apacheのSSL設定(マルチドメイン時)

本来の目的は… 仕事の関係でteamで作業を行う予定があり、グループウェアを入れようか、どうしようかと迷っていた時に、ownCloudが良さそうに感じた。 そこで、apt-getでちょろっと入れてみたら、結構いい感じなのでいくつかテストして、実運用にと思ったけれど、仕事で使うんだし、暗号化しておく必要はあるわなぁと…いうことで、SSLの設定をしようとしてハマったのでメモメモ…。 現在の環境 vpsを借りていて、ディスクには余裕があるし、常時動いているので共有場所には最適なのですよ。 WEB関係としては、apache2+BINDで運用。 ドメイン1:aaa.info(主ドメイン) ドメイン2:bbb.jp(別ドメイン) ここまでは、問題なく動作している。 ownCloudをapt-getで入れたら5.0系だったので、本家の6.0系を入れることに。 PC用のクライアントは無料だけど、モバイルのクライアントアプリは100円なのよね〜。実際使ってみると、Dropboxより融通が効いて、とってもいい感じですなぁ。 容量は自分で決められるし…。WebDAVでもアクセスできるし、カレンダーもあったりして…。 設定作業1 apacheのモジュールを調べると、ssl関連がちゃんとあるので、簡単じゃんと思ってやってみる。 # a2enmod ssl これで、mods-avaiableにあるssl関連が、mods-enable配下にリンクされ、機能するようになる…はずだった。 # service apache2 restart エラーは出ないが、httpsでaaa.infoに接続してみると、エラーが返ってくる。 アクセスログを見ると www.abc.info:443 xxx.yyy.zzz.aaa - - [06/Jun/2014:10:22:03 +0900] "\x16\x03\x01" 501 297 "-" "-" いままでに、見たことのないエラーが出ている…。 httpでのアクセスは問題ないことから、SSL関係の設定ということは分かる。 エラーログを見ると [Fri Jun 06 10:22:0...

PHP+sqliteでcoud not find driver

イメージ
前回からの検討内容… DBを使ったアプリを作成する依頼があったので、内容を検討。 ターゲットとなる環境が厳しいので、いろいろと検討し、そろそろ決めることにした。 クライアントが古めで、アプリを入れて動かすのは故障時のリスクが高すぎる。 何せ外部に接続していないXPマシンが1台含まれており、メモリが512MBと超遅め。 壊れるまで使いたいという希望。 3台のクライアントで利用するのだけれども、扱うデータは担当者別で同時に同じデータを触ることはない。 要はアプリは1種類で、データは3種類になるという縛りがある。 そのうちの1台が古いXPということなので、最低のマシンで動作するようにしないといけない。 そこで、当初LibreOffice上のBASE+マクロ(BASIC)で構築しようと思ったけれど、XPマシンに入れて快適に動きそうにない。 VB or VC# or etc.+SQLiteも検討したが、Microsoftに縛られたくない。 ということで、Linuxサーバ(内部向け)の上で、SQL+PHPで構築して、ブラウザで利用という事で進めることにした。 テスト環境を準備 通常なら、Virtualboxでサーバを構築して、その上で作業をするのだけれど、今回は14.04が出たばかりなので、検証を兼ねて14.04にUpgradeしたノートPC上を作業環境にしてみる。 まずは、apacheのインストール。 $ sudo apt-get install apache2 動作確認で、開いてみると「お!ぉぉ!!!」今までの殺風景な it worksではなく、洒落た画面になっていた。 ついでに、Firefoxも最新のものに更新したので、chromeみたいなタブになっていて、何だか違和感ww 一応スクリーンショットを撮ってみた。 ぱっと見た感じはchromeのようだけど…。確かにFirefoxなんだよね〜。 検索窓が別に用意されているけれど、アドレスバーの欄に入力しても検索してくれて変な感じ。 続いてphpのインストール $ sudo apt-get install php5  本当に、楽になったもんだ。依存する必要なモジュールは勝手に入れてくれるし…...

BINDの設定

イメージ
ネームサーバが無くては話にならない ということで、bindをインストール。 # apt-get install bind9 インストールは簡単だけど、設定は慎重に行う必要がある。 /etc/bind/ に設定ファイルがあるので、追加変更を行う。 /etc/bind/named.confに自分のドメインの設定を追加する。 include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; include "/etc/bind/named.conf.mydomain"; ←追加 でもって、named.conf.mydomainにzoneを記述。 zone "xxx.jp" {   type master;   file "/etc/bind/db.xxx.jp";   allow-query{ any; };   allow-transfer {     210.172.129.81;   }; }; zone "196.7.157.in-addr.arpa" {   type master;   file "/etc/bind/db.196.7.157";   allow-query{any;}; };  xxx.jpは自分の取得したドメインを記述。fileは単なるファイル名なので、同じでなくてもいいのだけれど、あとで訳がわからなくなるので統一しておく。 セカンダリdnsはお名前.comのを利用する。 マニュアル(Q&A)によると、2nd.dnsv.jp(210.172.129.81)を使えということなので、transferの許可を与えておく。 あとは、db.xxx.jpと逆引き用のdb.196.7.157を書いてやればOK。 今回は、IPが1つだけだし、サーバも全部共用させるので、wwwもmailもnsも同じマシンを指すように設定。 再起動をかけて、ロ...