PHP-8.1 on Ubuntu-22 で composer をインストールしようとした時の事。
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" PHP Warning: copy(https://getcomposer.org/installer): Failed to open stream: Connection timed out in Command line code on line 1
PHP での copy() でタイムアウトしてる?
curl とか wget なら問題ないから、
allow_url_fopen とか allow_url_include とか、PHP 関連かと思って色々試しても全然解決できない。
なんかクラウドの環境の依存かなとかホスティングかなとか、散々困った挙句、結局以下で解決。
# echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
なんでこれで解決するの
Ubuntu 16.04LTS はデフォルトが php7 で、時に php5 が必要なことがあるので、そんなときにどうするかのメモ。
ubuntu 以外でも可能かもしれないが、とりあえずここでの前提としては ubuntu-12.04 で LVM が搭載されていないケース。
また、クラウドなどを使っていて、ドライブの増量をしたはいいけど、 ext4 ファイルシステムはどうすればいいか、というもの。
調査した結果、 partd は現時点で ext4 をサポートしていないので、少し怖いのだが、パーティションを削除して、データを上書きせずに再作成するという方法。ちなみに、ディスクはその間アンマウントしてないといけない。あまり実用的ではないが、設定中などのケースではそれでも有効なのでメモ。
本当にうまくいくか保証しないので、データのバックアップは取った方が無難です。
まずは、該当のパーティションを削除。 cfdisk を使う。
sudo cfdisk /dev/xvdb
対象のパーティション(ドライブに1つと仮定)を削除して、完全にフリーな状態へする。
そうしたら、後は fdisk でパーティションを全サイズ使って作成する。
sudo fdisk /dev/xvdb
そして、次にファイルチェック
sudo e2fsck -f /dev/xvdb1
最後にファイルシステムを再構築
sudo resize2fs /dev/xvdb1
これで一応成功した。
例えば Web コンテンツがハッキングなどによって書き換えられてしまった際にそれを検知できると助かります。
Tripwire などの商用ツールも有りますが、 Linux には auditd というデーモンがあります。これが割りと便利なので簡単な使い方をメモ。
例えば /var/www ディレクトリ内で発生する書き込み、属性の変更を監視したい場合、以下の様なルールを作る。
# vi /etc/audit/audit.rules
# First rule - delete all -D # Increase the buffers to survive stress events. # Make this bigger for busy systems -b 320 # Feel free to add below this line. See auditctl man page -w /var/www/ -p wa -k web-wa
-w は監視対象ディレクトリ
-p は監視の種類、 w: 書き込み a: 属性 r: 読み込み など
-k はログを見る際などのキーになる
更に特定のディレクトリだけは関しから外したいような場合は
-a exit,never -F dir=/var/www/tmp -k exclude -a exit,never -F dir=/var/www/cache -k exclude -a exit,always -F dir=/var/www -F perm=wa -k web-wa
などとやるとできる。
新しいホスティングに移動するにあたって、せっかくなので HTTP サービスを整理してみた。その時に HAProxy をフロントの Proxy に使ってみたのでメモ。
環境は以下のとおり
公開しているサービスは色々あり、これを整理したかった。
これを一台でやってるので、 haproxy は別にロードバランサー的な役割は特にしていない。ただのプロキシ、兼SSL。
普段 rsyc を使ってよくバックアップを行うが、ふとバックアップサーバーのセキュリティが意外と甘かったりすることがある。
バックアップサーバーだからといっても、データベースのダンプやファイルなど、結構重要なものがあって、そのまま置いておくのはもちろん危険。
そこで duplicity と GnuPG を使って、バックアップファイルを暗号化しながら(比較的)安全にバックアップを取って保存することにしたので、その時のメモ。
duplicity は rsync と同様なお手軽にフルバックアップ、差分バックアップが行える上、リモート接続の選択肢も豊富(s3 などもサポート)で、バックアップファイルは gpg で暗号化されサインもされる。
かなりいい感じのツールだと思う。
今回の環境は、
sysv-rc-conf というのがある。
コマンドがみつからない場合は、以下をを実行してインストールする。
$ sudo apt-get install sysv-rc-conf
FLV や MP4 ファイルを Web で配信した際に、Apache では基本的にストリーミング配信はできません。
ようするに、配信中に動画の閲覧はできますが、動画の初めから見ることしかできず、
ダウンロードが完了するまで任意の場所へのシークなどができないわけです。
Flowplayer や JW Player などの Flash ベースのプレーヤーは、もちろんストリーミングに対応していますが、
サーバー側が対応していないとどうしようもありません。
Lighttpd を利用すれば、簡単にストリーミングサーバーが構築できますが、
実は apache でも PHP などのスクリプトで実行する事もできますし、
探すといくつかモジュールも存在します。
今回は mod_flvx と mod_H264_streaming を使用して、
Pseudo-streaming を実装してみたので、そのメモを残しておこうと思います。
環境は Ubuntu 10.04 LTS 。
exim4 は ubuntu の標準 MTA の様で、設定ファイルは /etc/exim4/ 配下にあるんだけど、基本的にまた一から新しい MTA の設定を覚えたいとは思わない。
そんな時調べていたら、というか検索したら便利なコマンドがみつかったのでメモ。
基本的には以下のコマンドを叩いて後はインタラクティブな質問に答えていけば良い。
$ sudo dpkg-reconfigure exim4-config
以前 centos で構築したサーバが壊れ、新しく ubuntu サーバを導入したので、これに subversion をセットアップした。その時のメモ。
以前構築したときよりいくから良くなってると思う。前回の記事は
CentOS に Subversion を導入する
と
CentOS で svn+ssh 環境の構築
環境は以下の通り。