Ubuntu17.10とapache2、MySQL、PHP5.6のインストール

NetCommons2からNetCommons3への移行の実験のため、PCにLinuxをインストールした。これはその覚え書き。

USBメモリー4GBにLinuxのubuntu17.10日本語Remix入れてUSBメモリからUSB-SSDにインストールした。PC内蔵のHDDは外して、MBR/UEFIはレガシーモードにした。

その後、NetCommons2と3のWebサーバーとして利用するため、apache2.4.29 とPHP5.6、MySQL5.7、phpMyAdmin4.7.7をインストールした。

(1)アパッチのインストール

sudo apt-get install apache2

(2)PHPのインストール

phpがインストールされていたら削除
sudo apt autoremove php
sudo apt purge php
php7.0ではNetCommons2が動作しないため、php7.0ではなく、php5.6をインストール
sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/apache2
sudo apt update
sudo apt-get update

ondrej関連サイトは下記
https://deb.sury.org
https://launchpad.net/~ondrej/+archive/ubuntu/php/

sudo apt install php5.6
sudo apt install libapache2-mod-php5.6     apache2とphpの統合
sudo apt install php5.6-mcrypt          暗号化モジュール

sudo apt-get install imagemagick
imagemagickはすでにインストールされていたが実行させても害はない

sudo service apache2 restart       phpを追加したので再スタートが必要

(3)データベースMySQLのインストール

sudo apt-get install mysql-server

sudo mysql –version mysql Ver 14.14 Distrib 5.7.20

sudo apt-get install libapache2-mod-auth-mysql
このセットは見つからず、インストール不要

sudo apt-get install php5.6-mysql
php5.6-mysqlをインストールしていないとphpmyadminをインストールしても、その動作が不完全になるという

(4)phpMyAdminのインストール

★sudo apt-get install phpmyadmin  これを実行するとphp7.0もインストールされてしまうので手動インストールが必要

sudo su
cd /var/www/html
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.7/phpMyAdmin-4.7.7-all-languages.zip

unzip phpMyAdmin-4.7.7-all-languages.zip
mv phpMyAdmin-4.7.7-all-languages phpmyadmin
chmod -R 0755 phpmyadmin

http://localhost/phpmyadmin/
ブラウザで上記urlを開くと、mysqli拡張がみつかりませんというエラーになるので

sudo apt install php5.6-mysql
★sudo apt install php-mysql ではphp7版になってしまう

次にphp5.6 mbstring packageをインストール
sudo apt-get install php5.6-mbstring

(5)その他の設定

php.iniの場所は、
/etc/php/5.6/cli/php.ini
/ete/php/5.6/apache2/php.ini

/etc/php/5.6/apche2のphp.iniを修正

extension=php_mbstring.dll
extension=php_mysqli.dll
post_max_size=8M ⇒ 100M
upload_max_filesize=2M ⇒ 80M
mbstring.internal_encoding=UTF-8
mbstring.http_input=pass
mbstring.http_output=pass
mbstring.encoding_translation=OFF
mbstring.func_overload=0
extension=php5.6-mbstring

MySQLとphpMyAdminを使うには、
phpmyadminにあるconfig.sample.inc.phpをコピーしてconfig.inc.phpを
つくり、その中のblowfish_secretに任意の32文字を入れる。

また、phpMyAdminの環境保管領域をデータベースの中に追加する
その方法は、下記を参照させてもらった
https://www.dbonline.jp/phpmyadmin/install/index3.html

アパッチのリスタートが必要
sudo service apache2 restart

ubuntuでCakePHPを動かそうとしたら、apacheのmod_rewriteが有効になっていないことが判明。

apache2そのまま入れただけだとoff
sudo a2enmod rewrite          mode_rewriteを有効化
sudo service apache2 restart
sudo apache2ctl -M   mode_rewriteが有効になっているか確認
rewrite_module (shared) が有ればOK

参考にさせてもらったのは、https://qiita.com/zanzan/items/fd8f750e02e8c17000eb

Overrideを許可するには000-default.confに追加が必要⇒nanoエディタで開く
sudo nano /etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>の下に3行追加

<Directory /var/www/html>
AllowOverride All
</Directory>

</VirtualHost>

sudo service apache2 restart     apache再起動

NetCommons3を /var/www/html/nc3 にインストールしようとしたが、cake_core_cacheがフェイタルエラー

/var/www/html/nc3/app/tmp     tmpのパーミッションが0755だったが、tmpのパーミッションを0777にする
chmod -R 0777 tmp

 しかし、これだけではNC3のインストールが次のページに進まない
chmod -R 0777 nc3     この処置を追加してOK

NetCommons2のインストールでも パーミッションを変える
NetCommons2は /var/www/html/nc2 にインストールした

chmod -R 0777 nc2
インストール後 /var/www/html/nc2/webapp/install.inc.phpを書き込み禁止に変えることが必要
chmod -R 0444 /var/www/html/nc2/webapp/install.inc.php

nc3のインストールでdomが見つからないとの警告
apt-get install php5.6-xml

imagickがみつからない
apt-get install php-imagick
php5.6-imagickを指定したが、php-imagickが選択された
service apache2 restart

NetCommons3のインストールで内部エラー
/var/www/html/app/tmp/logs/error.log を確認

Invalid datetime format:が出ていた。
sql_mode の設定が MySQL5.6 ではデフォルトで STRICT_TRANS_TABLES になっているため

/etc/mysql/mysql.conf.d にある mysqld.cnf に下記を追加
[mysqld]の下に
sql_mode=””   これでsql_modeの値をノーバリューにする

設定したらMySQLを再起動
service mysql restart

sql_mode=NO_ENGINE_SUBSTITUTION,NO_STRICT_TRANS_TABLES ではエラーになった
phpmyadminにログインしたときエラーが発生
mysqli_real_connect():(HY000/2002):No such file or directory