UbuntuをノートPCにインストールして、最低限LAMP開発環境を構築するまでの忘備録です。
真っ先にやること
まずはアップデート
sudo apt update -y sudo apt dist-upgrade -y sudo apt autoremove -y
1行版
sudo apt update -y && sudo apt dist-upgrade -y && sudo apt autoremove -y
ノートPCのカバーを閉じてもサスペンドさせない
sudo vi /etc/systemd/logind.conf
#HandleLidSwitch=suspend
↓
HandleLidSwitch=ignore
設定を反映
sudo systemctl restart systemd-logind
ネットワークツールをインストール
IPアドレス確認に使い慣れたifconfigなどが使えないと不便なので
sudo apt install net-tools -y
単にIPアドレスを確認したいだけなら以下のコマンドで良い
ip -4 a
無線Lanを使えるようにする
Ubuntu Serverなどをインストールすると自動でWiFiの設定がされないので、ネットワークユーティリティをインストールする必要があります。
ネットワークツールをインストールします。
sudo apt install network-manager -y
アクセスポイントを表示
ハードウェアレベルでWiFiが認識されている場合、以下のコマンドでSSIDが表示されます。
nmcli device wifi
アクセスポイントへ接続
以下のコマンドで接続できます。
SSID、パスワードは接続したい機器に合わせてください。
sudo device wifi connect SSID password パスワード
IPアドレスを確認
ip -4 a
LAMP構築
Linux + Apache + MySQL(MariaDB) + PHP(Perl,Python)構築
(L)に該当するLinuxはすでにインストール済みなので、AMPの部分をインストールしていきます。
Apache
Webサーバーをインストールする。
sudo apt install apache2 -y
インストールが終わるとすでにWebサーバーが動いているので、ブラウザからアクセスするとデフォルトのWebページが表示されます。
MySQL(MariaDB)
インストールできるパッケージを確認
apt-cache -n search "^mariadb-"
最新のMariaDBをインストール
sudo apt install mariadb-server mariadb-client -y
MariaDBにログインできるか確認
最近のMariaDBはセキュリティの強化でrootにならないとログインできないので注意。
このあたりの問題や解決法はここが参考になります。
公式のドキュメントはこちら
sudo mysql -u root -p
mariadbへのrootログインをシステムのroot権限なしに手っ取り早くパスワード認証にするには
use mysql; update user set plugin='' where user='root'; flush privileges;
rootのパスワードを(強制的に)セット
use mysql; ALTER USER 'root'@'localhost' IDENTIFIED BY "hogehoge";
外部ホストからmariadbへ接続させるにはもう少し設定が必要になります。
この記事の少し下のほうに書いてあります。
PHP(perl、Python)
PHP
インストールできるパッケージを確認
apt-cache -n search "^php-"
PHP7.4系をインストール
sudo apt install php7.4 libapache2-mod-php7.4 -y sudo apt install php7.4-curl php7.4-gd php7.4-gmp -y sudo apt install php7.4-json php7.4-ldap -y sudo apt install php7.4-mysql php7.4-xml php7.4-xmlrpc -y
perlをインストール
インストールできるパッケージを確認
apt-cache -n search "^perl"
perlはUbuntu Serverをインストールした状態でデフォルトで使えるようになってる。
インストールされているperlのバージョンを確認する。
perl -v
特にアップデートする必要もなさそう。
念のためapt installしても特に何かがインストールされた様子もない。
sudo apt install perl -y
Reading package lists… Done
Building dependency tree
Reading state information… Done
perl is already the newest version (5.30.0-9build1).
perl set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Pythonをインストール
Ubuntu ServerのデフォルトインストールでPythonはインストールされている様です。
バージョンは3系
pcm@versapro:~$ python Command 'python' not found, did you mean: command 'python3' from deb python3 command 'python' from deb python-is-python3 pcm@versapro:~$ python3 Python 3.8.2 (default, Apr 27 2020, 15:53:34) [GCC 9.3.0] on linux Type "help", "copyright", "credits" or "license" for more information.
Apache再起動
sudo service apache2 restart
phpMySQLAdminをインストール
sudo apt install phpmyadmin -y
インストール後
http://ipアドレス/phpmyadmin/
でアクセスできる。
UserDirを有効にする
sudo a2enmod userdir
sudo vi /etc/apache2/mods-enabled/php7.4.conf
以下のように <IfModule mod_userdir.c> のブロックをコメントアウトする。
設定を反映するためApacheを再起動
sudo /etc/init.d/apache2 restart
もしかしたらこのあたりの作業も必要になるかもしれない。
sudo apt install apache2-suexec-custom sudo a2enmod userdir sudo a2enmod include sudo a2enmod cgid sudo a2enmod suexec sudo vi /etc/apache2/suexec/www-data 2行目を、public_html にする。 chmod o+rx ~/public_html
動作確認
mkdir ~/public_html
cd ~/public_html
vi test.php
<?php phpinfo();
外部ホストからmariaDBへ接続できるようにする
configファイル
sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 127.0.0.1
となっているところを、
#bind-address = 127.0.0.1
などとしてコメントアウトする。
MariadDB再起動
sudo systemctl restart mariadb
データベース側
mysql -u root -p SELECT user,host,plugin from mysql.user;
+------------+-----------+--------+ | user | host | plugin | +------------+-----------+--------+ | root | localhost | | +------------+-----------+--------+
CREATE USER 'root'@'%' IDENTIFIED VIA mysql_native_password USING '任意のパスワード'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' REQUIRE NONE WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
こうなっていれば外部から接続できる
SELECT user,host,plugin from mysql.user; +------------+-----------+--------+ | user | host | plugin | +------------+-----------+--------+ | root | localhost | | | root | % | | +------------+-----------+--------+
ValueDomainのDDNSをwgetとcronで自動更新させる
とりあえず公式のドキュメントをみてwgetで使用するURLを組み立てる。
sudo cp /etc/crontab /etc/cron.d/cron_ddns
sudo vi /etc/cron.d/cron_ddns
以下の行を追加
10分に1回更新
*/10 * * * * root wget -O – 'https://dyn.value-domain.com/cgi-bin/dyn.fcg?d=hogehoge.com&p=hogehoge&h=ddnstest' /dev/null 2>&1
毎事0分に1回更新(60分間隔)
0 * * * * root wget -O – 'https://dyn.value-domain.com/cgi-bin/dyn.fcg?d=hogehoge.com&p=hogehoge&h=ddnstest' /dev/null 2>&1
設定反映
sudo service cron restart
コメント