OSインストールとか初期設定とかはこっち
Nginx で少しでも軽量に
Nginx のインストール
$ sudo apt update
$ sudo apt install nginx
インストールが終わったら、ブラウザでアクセスしてみて下記のように表示されればOK

ついでに PHP
いくらローカル用だとしても、html だけで Web サイトを作るのはちょっとね…
なので、せめて PHP は使えるようにしとこう。
$ sudo apt install php-fpm php-mysql
MariaDB を使う予定がなければ php-mysql は省いてもいいかも。
続いて Nginx の設定ファイルを編集するんだけど、その前に PHP のバージョン確認。
$ php -v
PHP 8.4.11 (cli) (built: Aug 3 2025 07:32:21) (NTS)
Copyright (c) The PHP Group
Built by Debian
Zend Engine v4.4.11, Copyright (c) Zend Technologies
with Zend OPcache v8.4.11, Copyright (c), by Zend Technologies
ということで、PHP のバージョンは 8.4.11 と確認できたところで、Nginxの設定ファイル編集。
$ sudo vi /etc/nginx/sites-available/default
やることは3つ。
・先頭行の「#」(コメントアウト)を削除
・fastcgi_pass の数字部分を、インストールされているPHPのバージョンに合わせる。
・172.0.0.1となっているところはコメントアウト
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
# With php-cgi (or other tcp sockets):
#fastcgi_pass 127.0.0.1:9000;
}
編集が終わったら、Nginx の設定ファイルを再読み込みして、サービスのリスタート。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl restart nginx
$sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: en>
Active: active (running) since Sat 2025-11-15 17:13:25 JST; 16s ago
最後、Nginx のステータスを表示した際に、Active: active (running) になっていればOK
Nginx が正常に起動したら、/var/www/html/ 下に確認用 PHP ファイルを置いてみよう。
例えば test.php みたいなベタベタなので良い。(テスト終わったら消すから)
<?php
phpinfo();
?>
昔は <? の後に php を書かなくても動いたんだけど、今はセキュリティ上、php と続けなければならない。
ついうっかり php 書き忘れて「動かねぇぞ…」「エラーログも残ってねぇ…」となりがちw
で、ブラウザで http://[IP Address]/test.php とアクセスすると以下のような表示がずらずら出てくる。

Nginx と PHP が正常に動作していることが確認出来たら、今作った test.php は削除しておこう。
どこまでできる!?
NanoPi NEO の CPU は、Allwinner H3 で、Cortex-A7 1.2GHz が4つ乗ってる。
なので、Webサーバとしてもそこそこ動くらしい。
が、Wordpress ともなると厳しい。
まぁ、まずメモリが 512MB なので、デフォルトテーマでもカツカツで、良さげなテーマを入れようものならメモリ不足に陥るのは必至。
そこにプラグインモリモリだなんて恐ろしい…
ということで、Wordpress は諦めた方が良さげ。
軽量 CMS か、コツコツ自分でPHP書いていくのがいいのかな、と。
ただし、ローカルで同時アクセス数が少なければあり。
当然快適とは言えないけど、ちょっとした情報発信用には使える。
…ってことは、ウチのサイトも大丈夫なのでは!?(同時アクセスなんてほとんどされないからw)
WordPressでアップロードに失敗するんだけど!?
まず、あるあるな「アップロードサイズの上限設定が低すぎる」ということ。
下記の各ファイルの内容を確認&修正
/etc/nginx/sites-available/default
server {
listen 80 default_server;
listen [::]:80 default_server;
client_max_body_size 1024M; # この1行を追加
/etc/php/8.4/fpm/php.ini ※8.4 の部分は fpm のバージョンに適宜変更で
post_max_size = 1024M
upload_max_filesize = 1024M
ここでは 1024M としたけど、512M とかでも問題ないんじゃないかな。
一部動画をアップロードするテストをしたときに、1GB 近いファイルサイズだったので、1024M にした。
2つのファイルを書き換えたので、それらに関連するサービスを忘れずに再起動。
$ sudo systemctl restart php8.4-fpm
$ sudo systemctl restart nginx
実はこれだけではアップロードできないので追加作業
Ubuntu を使ってると上記2ファイルの変更でアップロードファイルのサイズ上限を決められるけど、Armbian だとそうはいかない。
WordPress のメディアにファイルをアップロードするとき、直接 WordPress の保存先にはアップロードされない。
(wordpress/wp-content/uploads)
いったん、テンポラリディレクトリで受ける。
そして、armbian の場合、そのテンポラリディレクトリが超小さい。
以下のようにして確認すると…
$ df -h /tmp
tmpfs 242M 0 242M 0% /tmp
242MB しかない。
つまり 242MB を超えるようなファイルはアップロードに失敗する。
(tmpfs等は「いっぱいになったらスワップする」という挙動もあるけど、Armbianではそれがない)
「ディスクの書き込みに失敗しました」
のようなエラーが出てしまう。
では、ということで、Wordpress が使用するテンポラリディレクトリを変更してあげればよい。
/var/www/html/neoPress/wp-config.php
/* That's all, stop editing! Happy publishing. */
define('WP_TEMP_DIR', '/var/www/html/neoPress/wp-content/tmp'); # この行を追加
これでOK
尚、「/tmpを大きくしてやればいいじゃない!」ということもできるにはできる。
が、その場合、armbian-zram-config.service を停止させて、/tmp を ファイルシステム上のどこかに作る必要が出てくる。
/etc/fstab を編集して起動時にマウントさせることになるのだけれど…
テンポラリなのでいろいろと読み書き削除が行われる。
そうなると、ファイルシステム上のどこか、ということはSDカードになっていることが多いと思うので、SDカードの寿命を縮めることとなる…
なので、/tmp の設定はそのままに、目的の WordPress の設定変更で対処するのがベスト。
LLM な AI に聞くと「では、/tmpを広げましょう!」的な回答をしてくることもあるのでホント注意が必要。

この記事にコメントしてみる