#author("2021-10-11T08:09:02+00:00","","") #author("2021-10-11T10:51:48+00:00","","") PukiWikiをインストールして新規記事を書いたものの、写真を添付できず。 何度やってもエラーメッセージが出るわけでなく、 しかし、添付一覧を見てもアップロードされておらず。 色々調べて下記にたどり着く。 http://www.rivhiro-weather.com/knowledge/?p=163 より引用。 pukiwiki(&php)でアップロードできる容量を増やす pukiwikiでは、データを添付(アップロード)できる容量が制限されている。 下記の作業を行うことで、この制限を解除することができる。ここでは上限を50Mにするときの例を示す。 (1) pukiwiki側の設定 (i) (pukiwikiディレクトリ)/plugin/attach.inc.phpを書き換える。 書き換える場所は2箇所。 // max file size for upload on PHP(PHP default 2MB) ini_set(“upload_max_filesize”,”2M”); –> // max file size for upload on PHP(PHP default 2MB) ini_set(“upload_max_filesize”,”50M“); // Max file size for upload on script of PukiWikiX_FILESIZE define(‘PLUGIN_ATTACH_MAX_FILESIZE’, (1024 * 1024)); // default: 1MB –> // Max file size for upload on script of PukiWikiX_FILESIZE define(‘PLUGIN_ATTACH_MAX_FILESIZE’, (51200 * 1024)); // default: 50MB のように書き換える。 (ii) (pukiwikiディレクトリ)/plugin/dump.inc.php // 最大アップロードサイズ define(‘PLUGIN_DUMP_MAX_FILESIZE’, 1024); // Kbyte –> // 最大アップロードサイズ define(‘PLUGIN_DUMP_MAX_FILESIZE’, 51200); // Kbyte と書き換える。 これで、pukiwiki側の書き換えは終わり。 ただし、この変更だけだと、2Mまでのファイルしかアップロードすることができない。 2Mの制限を作っているのは、pukiwikiではなく、さーばーのphp本体。 なので、レンタルサーバーを使用してる場合は、レンタルサーバーの設定に依存する。 ※2Mというのはデフォルトのphpの設定 もし個人でサーバーを管理してる場合あれば、下記の作業を行うことで、さらに上限を上げることができる。 2. サーバーのPHPの設定 /etc/php.iniのファイルを変更する。 ・・・ ※/etc/php.ini.defaultしかない場合は、php.ini.defaultをphp.iniとしてコピーした上で、php.iniを編集する。 これをしたものの、「2Mの制限を作っているのは、pukiwikiではなく、さーばーのphp本体。なので、レンタルサーバーを使用してる場合は、レンタルサーバーの設定に依存する。 ※2Mというのはデフォルトのphpの設定」 とある通り、サーバーの問題らしい。 改訂場所は下記の3箇所 そこで、なお調べたら以下を発見。 memory_limit = 8M ; Maximum amount of memory a script may consume (8MB) –> memory_limit = 80M ; Maximum amount of memory a script may consume (80MB) ※PHPが使用できる最大メモリサイズのようですので、添付ファイルサイズよりも大きく設定 お名前.comの共用サーバーSDで2MB以上のファイルをアップロードする方法 https://keikanri.com/archives/23572 ; Maximum allowed size for uploaded files. upload_max_filesize = 2M –> ; Maximum allowed size for uploaded files. upload_max_filesize = 50M 他のレンタルサーバーではアップロード容量を設定で変更できたりするのですが、お名前.comの共用サーバーSDだとアップロード容量を気軽に変更することができません。困ったものです。 ; Maximum size of POST data that PHP will accept. post_max_size = 8M –> ; Maximum size of POST data that PHP will accept. post_max_size = 80M 私も仕事上、WordPressの記事インポートをしていて、インポート用のXMLファイルが100MB以上でした。しかしお名前.comの共用サーバーSDだとアップロード容量は基本は2MBです。とてもじゃないですがアップロードできません。 またテーマをアップデートする際に、以下のようなエラーメッセージを経験することもあるでしょう。 Sorry, there has been an error. アップロードしようとしたファイルは php.ini の upload_max_filesize で指定されているサイズを超えています。 これをしたものの、「2Mの制限を作っているのは、pukiwikiではなく、さーばーのphp本体。なので、レンタルサーバーを使用してる場合は、レンタルサーバーの設定に依存する。 ※2Mというのはデフォルトのphpの設定」 とある通り、サーバーの問題らしい。 これも理由は一緒でアップロードするファイルの容量が、php.iniというPHPの設定を司るファイル上で、アップロードファイルの上限を定めているパラメータ「upload_max_filesize」の値を超えてっぞ。という意味ですね。 そこで、なお調べたら以下を発見。 どうやって変更するんだろう?と思って調べてみると、お名前.comのヘルプにphp.iniをFTPで設置してね。とあります。 php.iniは設定項目が大量にあるファイルなので、「うわーめんどくせー」と思ったのですが、どうやらアップロードの部分だけ記述して設置すれば大丈夫みたいです。ということでお名前.comの共用サーバーSDで2MB以上のファイルをアップロードする方法をご紹介します。 お名前.comの共用サーバーSDで2MB以上のファイルをアップロードする方法 5秒で現状の容量を確認する この手順は飛ばしてもいいのですが、一応現状のアップロード容量の上限を5秒で確認する方法があります。 WordPressのダッシュボードから、「メディア」⇒「新規追加」を開きます。するとその画面に、「最大アップロードサイズ」の記述があります。ちなみにお名前.comの共用サーバーSDの場合は添付のように2MBのはずです。 これを変更していきましょう。 php.iniでアップロード容量を変更する まずは「php.ini」というファイル名でファイルを作り、以下のコードをコピぺします。100MBとかにしたい場合は、随時パラメータの設定を変更してください。 [PHP] memory_limit = 50M post_max_size = 50M upload_max_filesize = 50M [/PHP] その後、作成したphp.iniをFTPでアップロードしますが、場所はドメインのフォルダ直下で問題ありません。一応お名前.comのマニュアルにphp.iniの設置場所の優先度が記述してあります。 ホームディレクトリに設置の「php.ini」 PHPスクリプトを実行するディレクトリに設置の「php.ini」 共用サーバー共通の「php.ini」 参考:【共用サーバーSD】「php.ini」の変更が反映されない 基本は多分「hogehoge.com」みたいなドメインと同じ名称のフォルダがあると思うので、その直下に作成したphp.iniを設置します。その後、WordPressのダッシュボードから、「メディア」⇒「新規追加」を開いて、最大アップロード容量が変わっていれば完了です。 「php.ini」というファイルは、こうつくればいいのか、これでアップできる容量を変更できる。 でも、表示されない。 https://pukiwiki.osdn.jp/?Q%EF%BC%86A/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3/attach%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3#l8a3fc5f 添付/ダウンロードができない † ↑ Q. 添付(attach)でファイルをアップロードできない † A.attachディレクトリの中を確認し、ファイルの有無を確認してください。 •ファイルが有る場合 ◦呼び出し時にファイル名を間違えていませんか? ◦#ref(添付ファイル名)が有効なのはアップロードしたページのみです。別ページからファイルを参照する場合には、#ref(ページ名/添付ファイル名)あるいは#ref(添付ファイル名,ページ名)のように添付したページへのパスを加えてください。 ようやく、これで表示もできました。