Serversman@VPS with Ubuntu14.04をマトモに動かすまでの道程（2019年06月01日）

がんばるめう！
（筆者はサーバー管理の職業経験がいっさいありません。）
また、どうでもいいウェブサイトだからハッキングされても構わないという前提で、root権限だけ使って作業しています。本来は作業用userを作ったり、phpmyadminやwebminにアクセスできるIPを特定するべきだと思います。

＜上から実行推奨＞

##何もしないとUnicodeDecodeError: で何もできません。
https://exlair.net/entry/php-fpm-unicodedecodeerror/
http://thr3a.hatenablog.com/entry/20150110/1420849488
##必須ライブラリをインストール&UPG
 パッケージライブラリ更新とアップグレード
sudo apt-get update
sudo apt-get upgrade

 アップグレードの自動化
sudo apt-get -y install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libpq-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev fonts-ipafont language-pack-ja
https://spangled-shalalala.hatenablog.com/entry/2017/09/07/003248
apt-get dist-upgrade
apt-get autoremove

##add-apt-repositoryはデフォルトでは使えません。
https://kazuhira-r.hatenablog.com/entry/20160116/1452933387
##PHP■Apache■MySQL
https://yamahide.biz/archives_162.html
https://www.server-world.info/query?os=Ubuntu_14.04&p=httpd&f=1
##FTP
http://tomoprog.hatenablog.com/entry/2016/03/02/010729
vi :set number
userlist問題
http://everythingofneet.com/2017/08/28/vsftpd-root/
chroot許可とallow_writeable_chroot=YESが不可欠
http://tomoprog.hatenablog.com/entry/2016/03/02/010729
chroot_listにはrootを入れておくこともできる。
危険だが入れた方がよさそう。さもないと、PCのエディタで編集できるものもviで見たり編集したりすることになる。
initctl restart vsftpd
わからんなったら！
dpkg-reconfigure vsftpd
めう！

##apt-getによるphpmyAdmin
https://www.server-world.info/query?os=Ubuntu_14.04&p=mysql&f=2
★インスコ　apt install phpmyadmin
★再設定　　dpkg-reconfigure phpmyadmin
/etc/apache2/conf-enabled/phpmyadmin.conf
のLine2がconfファイルの循環参照になっているようで、エラーでapatchが墜落したらviで削除しよう。
■ダメ人間のためのphpmyAdmin
https://www.phpmyadmin.net
##webmin（かつてはServersMan公認）
https://www.server-world.info/query?os=Ubuntu_14.04&p=webmin
##phpのアップロード上限
vi /etc/php5/apache2/php.ini
memory_limit = 512M #406
post_max_size = 256M #672
upload_max_filesize = 128M
https://is.gd/V9Damm
##SSL化
https://qiita.com/nanbuwks/items/39cde1d9f309c2c476fe
 apt-get install software-properties-common
 add-apt-repository ppa:certbot/certbot
 apt-get update
 apt-get install python-certbot-apache
 letsencrypt --apache
 letsencrypt renew　←三ヶ月更新
####複数形
certbot certonly --webroot -w /var/www/example/ -d www.example.com -d example.com 
##ようやくコンテンツを入れる。
はまったポイント。
・投入するあらゆるファイルが、なぜかchmod 644になる。一切実行できず403になる。個別に修正しよう。

ゼエゼエ……ハアハア……
ここまでやって、はじめて、PHP5.5.9+APACHEな環境が手に入ります。

##＜参考＞
・SSL
https://qiita.com/wynnkengeofu/items/10b5f96b838cbda2f014
・apacheログ
/var/log/apache2/access.log
/var/log/apache2/error.log
・apt-getの使い方
https://qiita.com/SUZUKI_Masaya/items/1fd9489e631c78e5b007
・権原
https://qiita.com/shisama/items/5f4c4fa768642aad9e06
・ファイルリスト
ls
chrome://net-internals/#dns
・deb のインストール
http://mickey-happygolucky.hatenablog.com/entry/2017/08/05/062959

##＜あきらめたこと＞
・16.04にアップグレード(php5.5.9overを希望なら必須）
 LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 sudo do-release-upgrade
https://server.etutsplus.com/how-to-upgrade-to-the-latest-version-of-ubuntu-with-do-release-upgrade/
恐ろしい程はまってあきらめました。sytemdが反乱を起こす（configure中にfchownatとかシンボリックリンクとかのエラーを起こし、アップグレードが失敗します）ので無理です。一応config途中の状態で16.04になりますが、再起動することはできません。
・PHP7
<7.0は、Ubuntuが古すぎるという理由でリポジトリが出してくれません！=https://codeday.me/jp/qa/20190429/730519.html＞
php公式からtar.gzを取ってきて、コンパイルしましょう。
・手順
https://qiita.com/kure/items/7e05d5dc1af9bf5c5b0a
・Makeとかの意味
https://qiita.com/chihiro/items/f270744d7e09c58a50a5
・後学のために
apt-add-repository ppa:ptn107/apache
↑上記でphp -vは7になりますが、Apacheが噛んでくれず5.5.9動作になるので無意味です。

＜番外編＞
##MySQLのアップグレード
・DPKGがダメな子になっているので……
https://askubuntu.com/questions/1065231/dpkg-deb-error-archive-has-premature-member-control-tar-xz-before-contr?noredirect=1&lq=1
の手順
apt-get clean
apt-get update
apt-get install dpkg
を実行してから、
・公式のMySQLを入れよう
https://support.plesk.com/hc/ja/articles/213403429--MySQL-をバージョン-5-5-から-5-6-にアップグレードするにはどうすればよいですか-
https://qiita.com/ABCompany1/items/2855cb9a99baf8b8d099
 * MySQL Community Server 5.7.26 is started
Setting up mysql-server (5.7.26-1ubuntu14.04) ...
#1146 - Table 'data_dictionary.CHARACTER_SETS' doesn't exist 
in ssh:

sudo mysql_upgrade -u root -p --force

sudo service mysql restart