php chmodでファイルのパーミッションを設定する

  • 作成日 2021.08.05
  • php
php chmodでファイルのパーミッションを設定する

phpで、chmodを使用して、ファイルのパーミッションを設定するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Stream release 8
  • php 8.0.0
  • nginx 1.14.1

chmod使い方

chmodを使用すれば、ファイルのパーミッションを設定することが可能です。

chmod('ファイル名', パーミッション値);

以下は、「hoge.txt」を作成してパーミッションを「0640」に設定するサンプルコードとなります。
PHPでは先頭に0をつけることで8進数となります

<?php

$filename = 'hoge.txt';

// ファイル作成
touch($filename);

// パーミッション設定
chmod($filename, 0640);

// パーミッションを8進数で確認
echo substr( sprintf( '%o', fileperms($filename)), -4);
// 0640

// パーミッション設定
chmod($filename, 0755);

// パーミッションを8進数で確認
echo substr( sprintf( '%o', fileperms($filename)), -4);
// 0755

chmodは、設定が設定した場合は trueを、失敗した場合は falseを返します。

<?php

$filename = 'hoge.txt';

// ファイル作成
touch($filename);

// パーミッション設定
echo chmod($filename, 0755) ? '成功' : '失敗';
// 成功

また、存在しない値を指定するとエラーとなります。

<?php

$filename = 'hoge.txt';

// ファイル作成
touch($filename);

// パーミッション設定
echo chmod($filename, 0999) ? '成功' : '失敗';
// PHP Parse error:  Invalid numeric literal in