hello foo bar Saba noteyumがlockされた場合の解消方法
Tag centos7を表示しています。
2019.11.4 月
# yum list installed | grep postgresql Existing lock /var/run/yum.pid: another copy is running as pid 29910. Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 74 M RSS (396 MB VSZ) Started: Mon Nov 4 13:18:30 2019 - 00:02 ago State : Sleeping, pid: 29910 pidを削除してあげると、Lockが解除されます。 # rm -f...
2019.10.28 月
SSHの接続はいろいろセキュリティー上面倒な部分なので、そこらの部分含めると結構テクニカルなことになってしまうので割愛。 ポートの変更 既存のsshd_configのバックアップとっておきます。 # cd /etc/ssh # cp -p sshd_config sshd_config.org ポートを変更します。コメントアウトしてある場合は、外してください。 #Port 22 ↓ Port 2222 保存してからsshd -tで構文チェックしてください。 再起動。既存ポートでは接続できなくなるので十分注意してください。 # systemctl restart sshd.service
2019.10.20 日
GCPのVMインスタンスはIAMで登録したユーザーが自動的にVMインスタンスのユーザーとして登録されるようになっているのだけど、デフォルトでは誰でもsodo suできるようになっている。sudo suできるユーザーを限定するには、/etc/sudoers.d/google_sudoersを修正します。修正間違えるとログインできなくなるので注意。 #%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL username ALL=(ALL) NOPASSWD: ALL 既存のgoogle-sudoersの行をコメントアウトして、許可するユーザーを個別に書いてあげればOKです。これでsudo suとsudo自体が使えなくなります。
2019.10.8 火
今どきこんな作業することになるとは。 # yum list | grep cvs cvs.x86_64 1.11.23-35.el7 @base なんかあるっぽい。安定版の最新が1.11.23。 # yum -y install cvs バージョン確認 # cvs --version Concurrent Versions System (CVS) 1.11.23 (client/server) 場所 # which cvs /usr/bin/cvs なるほど。 /home/cvsrootを使いたいので、対象ディレクトリで初期化。 私の場合は既存のcvsのファイルを別サーバーから移動してきて行いました。とくに問題なくinitできたようです。 # cvs -d /home/cvsroot in...
2019.10.2 水
CentOS7にAnsibleをインストールする例です。 # yum install epel-release # cd ~ # yum -y install ansible バージョン確認。ansible 2.8.5が入りました。 # ansible --version ansible 2.8.5 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/s...
2019.9.16 月
php artisan tinkerを実行すると以下のようなエラーで実行できないことがあります。 In Configuration.php line 363: [ErrorException] mkdir(): Permission denied -vvvvをつけて、デバックモードでコマンドを実行してみます。 $ php artisan tinker -vvvv In Configuration.php line 363: [ErrorException] mkdir(): Permission denied Exception trace: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at n/a:n...
2019.9.16 月
CentOS7でapacheを動かしている環境です。PHPは7.2.17で動いています。 laravel5でtinkerを実行すると以下のようなエラー(Warning) $ php artisan tinker PHP Warning: Module 'ssh2' already loaded in Unknown on line 0 ssh2が二重に読み込まれているっぽいので、エクステンションの部分を検索してみる。/etcあたりを検索。 $ find ./etc -type f | xargs grep "ssh2.so" ./php.d/ssh2.ini:extension=ssh2.so ./php.d/20-ssh2.ini:extension=ssh2.so どっちかが無駄っぽい気...
2019.8.28 水
人物 × Close ルネサンス期を代表する芸術家であり、「飽くなき探究心」と「尽きることのない独創性」を兼ね備えた人物といい、日本の美術史では「万能の天才」といわれている[1]。史上最高の呼び声高い画家の一人であるとともに、人類史上もっとも多才の呼び声も高い人物である[2]。アメリカ人美術史家ヘレン・ガードナー(英語版)は、レオナルドが関心を持っていた領域分野の広さと深さは空前のもので「レオナルドの知性と性格は超人的、神秘的かつ隔絶的なものである」とした[1]。しかしながらマルコ・ロッシは、レオナルドに関して様々な考察がなされているが、レオナルドのものの見方は神秘的などではなく極めて論理的であり、その実証的手法が時代を遥かに先取りしていたのであるとしている[3]。 1452年4...
2019.5.23 木
実行環境の確認 python2で動くAnsibleですが、python3でもサポートしているようです。何かとアップデートが早い時代なので、新しいものにしておいた方がよいかもしれません。 Python 3 Support Ansibleの基本概念 インベントリ(inventory) インベントリは構成管理をする対象ノードへの接続情報を記載したもの。 デフォルトでは /etc/ansible/hosts だが、環境変数 ANSIBLE_HOSTS を設定したり、-i オプションでhostsファイルへのパスを指定可能です。 モジュール(module) モジュールはユーザーを作成したり、ファイルをコピーしたりするもので、多くは冪等性が保たれたものとなります。基本モジュールをそのまま利用するだけで大抵...
2019.4.1 月
CentOS7でDockerを起動してアプリケーションを管理する方法です。 dockerとdocker-composeをインストールする docker すでにDockerがインストールされていた、一度削除して最新のものにします。 yum remove docker docker-common docker-selinux docker-engine 必要なパッケージのインストールをしておきます。 yum install -y yum-utils device-mapper-persistent-data lvm2 dockerのリポジトリの追加 yum-config-manager --add-repo https://download.docker.com/linux/centos/doc...
2018.11.14 水
Python3.6.5をインストールします。現時点の最新は3.7ぐらいになっているはずなんですが、3.6はまあまあ安定版だと思うのでよいでしょう。 ここではPython3.6をpythonコマンドで使えるようにしてデフォルトで入っているPython2.7.5を(一応とっておいて)python2で叩けるようにしておきます。 Python 3.6.5インストール まずはリポジトリをインストールします。 # yum install -y https://centos7.iuscommunity.org/ius-release.rpm Pythonをインストール # yum install -y python36u python36u-devel python36u-libs これで終わりなので、バ...
2018.11.13 火
設定ファイルのデフォルトの状態のバックアップは必ずとっておく。 # cp -p /etc/php.ini /etc/php.ini.org Error表示関連 画面にエラー表示をする display_errors = Off ↓ display_errors = On たぶんデフォルトのままでよし。 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT /var/log/httpd/errorあたりのログに出力するやつ。たぶんデフォルトのままでよし。 log_errors = On php関連のエラーログを有効にする ;error_log = php_errors.log ↓ error_log = php_errors.lo...
2018.11.12 月
CGP(GCE VMインスタンス)のSSH接続方法です。インスタンス作成が成功したらブラウザーウィンドウからSSH接続できるようになっています。これは結構便利は便利なんだけど、LOCAL PCの普通のSSHクライアントとかで鍵認証でアクセスした方が長い開発の中では便利なので、ブラウザーウィンドウでのコマンド操作は初期構築の場面やクライアントからSSHアクセスできなくなったとき(FWの設定などを失敗した場合)ってことになるかと思います。 Google Cloud SDKのインストール Google Cloud SDK ドキュメント 「Cloud SDKのインストーラ」をダウンロードします。GoogleCloudSDKInstaller.exeというファイルが落ちてくるのでダブルクリックしてイン...
2018.11.12 月
The zone 'projects/PROJECT_NAME/zones/asia-northeast1-c' does not have enough resources available to fulfill the request. Try a different zone, or try again later. 東京リージョンの「asia-northeast1-a、asia-northeast1-b、asia-northeast1-c」が比較的不安定なようです。VMインスタンス作成時に失敗し上記エラーが出ることがあります。タイミングが悪いと比較的頻繁に多発します。しばらく時間をおくとたいていはインスタンスの作成が可能になります。VMインスタンスは作成成功時は30秒程度で完了する...
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.10.26 金
バージョン確認 $ psql —-version (ログインしてから、"# select version();") ログイン/ログアウト ログイン $ su - postgres $ psql (または psql -d postgres / psql -U postgres) postgres=# ログアウト postgres=# \q データベース (Database) postgres-# psql DATABASE_NAME ユーザーを指定してデータベースに入る postgres-# psql -U USER_NAME DATABASE_NAME データベースの一覧 =# \l (または $ psql -l) データベース切り替え(というか接続) postgres-# \c DATAB...
2018.10.26 金
Postgresqlの最新をインストールします。 基本はここから最新を探してくる。 PostgreSQL RPM Building Project – Repository Packages リポジトリの登録 CentOS 7 – x86_64をインストールします。 # yum -y install https://yum.postgresql.org/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm インストール # yum -y install postgresql11-server postgresql11-devel postgresql11-contrib バージョン確認 # psql --versi...
2018.10.24 水
PHP7でOracleに接続するでPHP7からの接続はできるようになりました。 LaravelでOracleを使うときの具体的な手順を解説します。 パッケージのインストール 必要なパッケージはこれ。 – Packagist: yajra/laravel-oci8 – Github: yajra/laravel-oci8 $ php composer.phar require yajra/laravel-oci8:v5.7.2 どうやらこれだけで動くっぽいです。 Databese接続パラメータの設定 例によってconfig/database.phpに設定します。Oracleはデフォルトで設定項目がない(配列に入っていない)ので自分で追加してあげる必要があります。 'co...
2018.10.23 火
oci_connect()はデフォルトのPHPには含まれていない関数なのでoci8とpdo_ociのインストールが必要です。 Instant Client18.3 oci8 pdo_oci オラクルクライアント(Instant Client)のインストール まずは普通にコマンドラインからつながるようにしておきます。どっちにしろ開発で使うので。 Oracle Instant Client mysqlとかだったら特にクライアントとか意識せずにClientとRemoteの両方のマシンにmysqlをインストールしてしまえばいいんですが、Oracleは面倒です。まずはOracle Instant Clientでsqlplusでもってコマンド上でログインして操作できるようにしてみます。 Instant ...
2018.10.8 月
HDDがいつの間にかいっぱいになっちゃったという原意の100%はログといっても過言ではありません。 なのでlogrotateサービスを設定しておく必要ありです。 # rpm -qa | grep logrotate logrotate-3.8.6-15.el7.x86_64 ファイルは以下のようになっています。 – /etc/logrotate.conf ログローテーション全体の管理ファイル – /etc/logrotate.d/* ログファイル個々の設定ファイル – /var/lib/logrotate/logrotate/status 「最後にローテーションした日時」を管理するファイル 基本的な設定 /etc/logrotate.confのデフォルト。...
2018.10.6 土
リポジトリの作成 yumのリポジトリにデフォルトで入っていないのでリポジトリを作成 # touch /etc/yum.repos.d/nginx.repo 以下記述 [nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=0 enabled=1 これでリポジトリの設定完了。 インストール # yum -y install nginx バージョン確認 # nginx -v nginx version: nginx/1.15.5 これでインストール完了。 自動起動の設定をしておきます。 # systemctl enable nginx nginxを起動します。 ...
2018.5.9 水
できるだけプロダクト環境というか実践に耐えうるnodeサーバーの構築方法です。バージョンアップと開発がやたらにスピーディーなのでプロダクトって何のことやらという話でもあるのですが。ちなみに2018-05-09現在のものになります。 version Node.js 8.11.1を選びます。 リリース一覧ではLTSの最新になっているからです。どこからダウンロードすればいいのか探してみたら、 http://nodejs.org/dist/ ここらでダウンロードできそうです。 ソースの入手とインストール (最新版をバイナリからインストール) もう、どれとってくればいいんだかわからんです。 https://nodejs.org/download/release/v8.11.1/ よくわからんので、 n...
2018.3.4 日
rsyncなどの実行をWEBページインターフェイスから実行しようと思うとそもそものユーザーではなくApacheがユーザーとして実行するので思うように実行できないことがります。更にSSHでリモート接続するときは実行ユーザーが全く違うので秘密鍵を読めないということになります。 しかし開発をしているとごく頻繁にいわゆるログインユーザーとApacheユーザーを併用したいという状況が訪れます。以下のユーザーを例にして説明します。 user: sampleuser Apache: apache PHPの実行ユーザーは以下で取得できます。 posix_getpwuid(posix_geteuid())['name'] cliでコマンドラインで実行すると想定通りのsampleuserとなりますが、webから...
2017.12.25 月
Gitでリモートリポジトリにプッシュしたときにリモートリポジトリの内容を開発環境に反映させるというやつを作ります。 正確にいうと開発者がpushしたタイミングで開発環境(として設定しているホスト)が自分でpullをするという仕組みです。 hook (post-receive) リモートリポジトリの中にhooksというディレクトリがあって、その中にフックのサンプルが幾つか入っています。pushしたときに発動してくれるのが REMOTE_REPOSITORY/hooks/post-receive というやつになります。post-receive.sampleとなっているので、post-receiveにリネームして使います。中身見てみるとわかるのですが、ただのbashの実行ファイルです。pushした...
2017.12.5 火
インストール 改ざん検知の有名なソフトclamAVをインストールします。 yum -y install --enablerepo=epel clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd デフォルトでこのまま使えるかと思うのでまずはウィルススキャンを手動で実行してみましょう。 テスト ダミーのテスト用ウィルスファイルを準備します。Nortonとかが敏感に反応するのでPC上でやる場合はウィルス検知系のソフトをいったん切ります。 cd /root w...
2017.12.5 火
セキュリティー的にもまたはサーバー設定時にもポートスキャンは何だかんだで使うのでコマンドラインで確認しましょう! (全然他人のIPを無限にポートスキャンするとあまり気持ちよくないのでやめましょう!) nmap 普通はデフォルトでインストールされているものではないのでyumからインストール yum -y install nmap これで使えるようになります。 普通に使う nmap localhost UDPで利用しているポート nmap -sUV localhost TCPで利用しているポート確認 nmap -sTV localhost netstat nmapが使えない場合はnetstatでやるといいかも。 UDPで利用しているポート netstat -lp --udp TCPで利用している...
2017.10.26 木
WEBやシステムの開発で複数のユーザーが同じコンテンツを制作する場合があります。そのような場合はユーザーにグループを紐付けて権限の調整を行います。(ってそんな必要あるんですかね。仕事ではやたらにやりますが。) user01は/home/user01/のファイルの読み書き実行のパーミッションがあります。その中の/home/user01/foo/だけuser02が読み書き実行の権限があり、その他のディレクトリは読みのみというような設定をしてみます。 user: user01 (/home/user01/*の読み書き実行権限(デフォルト)) user: user02 (/home/user01/foo/*のみ読み書き実行権限) group: group01 (共有箇所の権限を設定するグループ) ユ...
2017.9.29 金
AIDEをインストールする yum install -y aide 設定 設定ファイル確認 vi /etc/aide.conf ## 改ざん検知の対象から外すもの !/tmp !/proc aideのスキャニング自体は典型的なLinuxサーバーでは(サイズによりますが)10分から60分ぐらいはかかりました。少なくともサーバー立ち上げ時でも10分弱かかりました。なので、テスト中は殆どのディレクトリを対象外にして開発した方がよいです。 また修正した後はこの後の初期化コマンド(aide –init)でDB作成をしないとダメです。 初期化(というかDBの生成) ものすごい時間がかかるので、topコマンドで見守る。 aide --init AIDE, version 0.15.1 ### ...
2017.9.27 水
.bashrcに以下追加 export PS1="[\u@HOSTNAME]\\$ " 保存したら source .bashrc
2017.9.25 月
Postfixの設定 インストール yum -y install postfix 2017-09-25時点では最新のpostfix-2.10.1-6.el7.x86_64がイントールされると思う。(あるいは最近のサービスだったらすでにされているかも) /etc/postfix/main.cfを設定します。 cd /etc/postfix/ cp -p main.cf main.cf.org vi main.cf 実際ここでmain.cfに何も設定しなくてもlocalhostであれば、メールが送信できるようになっている筈です。テストサーバーとか開発サーバーとかでPHPのmb_sendmail()あたりをつかうのであれば充分かと思います。 systemctl start postfix.serv...