2021年4月10日土曜日

Apacheエラー: No matching DirectoryIndex found

MauticというMarketing Automationツールをインストールしてみたのですが、インストールできた!という直後で、404 Not Foundエラーになってしまい何も表示されません。

https://www.exmaple.co.jp/mautic/s/dashboard

↑これが404エラー

Apacheのエラーログ /var/log/httpd/error_log を調べてみると以下のようになっていました。

AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html,index.php,index.php) found, and server-generated directory index forbidden by Options directive


CMSなどが生成するURLが禁止されているということですね。

DocumentRootの /var/www/html/.httaccess に

Options -Indexes

を追加記述して、とりあえず解決しました。


2021年3月20日土曜日

PHP: ログアウト後にブラウザ戻るボタンで以前のページが表示されてしまう

PHPでログアウト後にブラウザ戻るボタンで、ログインしていたときの以前ページが表示されるのを回避するには、以下のようにキャッシュを残さない設定にすればよい。


if(!isset($_SESSION)) //ログインしていな場合、以下を実行する。
{
    session_cache_limiter('nocache'); //ログアウト後にブラウザ戻るボタンで以前のページが表示されるのを回避
    session_name('MY_SESSION_NAME');
    session_start();
}

2021年3月17日水曜日

Windows10: ウインドウ移動のショートカットキー

 マルチディスプレイを使用していて、時々ウインドウが画面領域からはみ出てしまい、どうにも移動できない場合は、以下のようにキーボードで解決できます。


キーボードによるウィンドウの移動
  1. 移動させたいウィンドウをアクティブな状態にします。
  2. キーボードの[Alt]キー[Space]キーを同時に押します。
  3. キーボードの[M]キーを押します。

2021年2月28日日曜日

CSS: Chromeで画像がぼやける

Chromeの場合、レスポンシブ対応にしていると画像がなんとなくぼやけてしまいます。

CSSで以下のようにすれば解決します。

 img {

    -webkit-backface-visibility: hidden;

}


2021年2月24日水曜日

Linux: ディレクトリ内を再帰的にgrepする

grep -lr 検索文字列 /var/www/html

-r は再帰的に実行するためのオプション
-l はファイルだけを探索するオプション

ファイル名を指定したい場合は --include= オプションを使用します。

grep -lr 検索文字列 --include="*.html" /var/www/html


2021年2月17日水曜日

Django 文字数制限した要約文の作成 Truncator()

from django.db import models

from django.utils.text import Truncator


class Board(models.Model):

    # ...

    def __str__(self):

        return self.name


class Topic(models.Model):

    # ...

    def __str__(self):

        return self.subject


class Post(models.Model):

    # ...

    def __str__(self):

        truncated_message = Truncator(self.message)

        return truncated_message.chars(30)

2021年2月14日日曜日

PythonをCGIとして実行する - CentOS7の場合

プロバイダ: さくらインターネットVPS
OS: CentOS7
Python3.6を手動でインストール済み

まず、Pythonがインストールされているパスを調べておきます。
通常は /usr/bin/python3.6
ですが、各自環境に合わせてください。

◆cgi-binディレクトリ内でPythonを実行させる場合

1./etc/httpd/conf/httpd.conf 内の以下赤文字部分を追記

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>

<Directory "/var/www/cgi-bin">
    AllowOverride None
    #Options None #無効化
    Options ExecCGI #追記
    Require all granted
    AddHandler cgi-script .py .pyc #追記
</Directory>

※httpd.conf編集後、Apacheを再起動($ systemctl restart httpd)すること。

2./var/www/cgi-bin 内に以下の内容の hello.py を保存する。

#!/usr/bin/python3.6
import ioimport sys# 日本語を使用する場合、出力ストリームの文字エンコーディングを指定sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
# HTTP ヘッダprint('Content-Type: text/html; charset=utf-8')print() # blank line, end of headers
# HTML 本文print('<html><body>')print('Hello, world.<br>')print('こんにちは、世界。<br>')print('</body></html>')

※hello.pyファイルは、改行コード:LF、パーミッション:755にすること。

3.http://ホスト名/cgi-bin/hello.py にアクセスすると実行される。


◆ドキュメントルート以下で実行する場合

ドキュメントルート例:/var/www/html/python

1.以下の内容で /var/www/html/python/.htaccessファイルを保存する。

Options +ExecCGI
AddHandler cgi-script .py .pyc

2.前述と同じ内容の /var/www/html/python/hello.py を保存する。

3.http://ホスト名/python/hello.py にアクセスすると実行される。


参考
CentOS7上でPython3をCGIとして動かすまで
https://qiita.com/kusyami_p/items/7ca4fd774c12fc6324a2

pythonファイルをCGIとしてレンタルサーバー上でphp経由でCorn実行することで「500 Internal Server Error」を回避する方法 - なろう分析記録
https://karupoimou.hatenablog.com/entry/2019/05/21/184126