Apache Mysql php インストール

php7.2 は初なので、うまく動くのかは、不明。これまでのものから、とりあえずやってみる。Apache、php、mysql を一気にインストールできます。PRADOに必要なsqlite、pukiwiki advのインストール環境である、curl mecab モジュールや、xdebug もここで一気にいれてみる

$ sudo apt-get install php7.2 libapache2-mod-php7.2 mysql-server php7.2-sqlite3 php7.2-cli php7.2-dev php7.2-curl g++ mecab mecab-jumandic-utf8 libmecab-dev php-pear php-xdebug



つづいて、php-mecab のインストールいいかな・・・

$ sudo pear channel-discover pecl.opendogs.org
$ sudo pear remote-list -c opendogs
$ sudo pear install opendogs/mecab-beta

最後のコマンドで途中 specify pathname to mecab-config [no] : がでるけどここは Enter でいいかな・・・。macab.so を設置しろとでるね

$ sudo vi /etc/php/7.2/apache2/conf.d/mecab.ini

新しいファイルができるので、

extension=mecab.so

Apache 設定変更

Default のルートの位置を変更。
$ cd /home/felix
$ mkdir www
$ mkdir ./www/default
$ cd /etc/apache2/sites-enabled/
$ sudo vi ./000-default
$ sudo vi /etc/apache2/sites-enabled/000-default
ここで、9行目あたりから変更
       ServerName felix-labo.local
       ServerAdmin webmaster@localhost
       DocumentRoot /home/felix/www/default
       <Directory /home/felix/www/default/>
               Options FollowSymLinks MultiViews
               AllowOverride None
               Require all granted
       </Directory>

いいかな・・・ つづいて....

sudo vi /etc/apache2/envvars

で 17行目あたり

export APACHE_RUN_USER=felix
export APACHE_RUN_GROUP=felix

開発環境なので自パソコン以外からはアクセスできないようにしておきます。

$ sudo vi /etc/apache2/ports.conf

で5行目あたりを   

Listen 127.0.0.1:80

に変更します。

ホストに明示的にホスト名を記入

$ sudo vi /etc/hosts

で、

127.0.0.1       localhost
127.0.1.1       felix-labo.local felix-ubuntu

こんな風にしとくとOK

再起動はおきまり

$ sudo /etc/init.d/apache2 restart

テスト表示

$ vi /home/felix/www/default/index.php

<?php
  phpinfo();
?>

これで localhost でphpinfo みえるかな? curl mecab 有効なら大成功

php.ini の設定

php.iniの内容を書き換え。

$ sudo vi /etc/php/7.2/apache2/php.ini

書き換える内容は以下。コメント化をはずすだけのものもあります。

(404行目付近)
memory_limit = -1  マイナス1 メモリリミットなし
(940行目付近)
date.timezone ="Asia/Tokyo"   timezone指定しないとエラーがでるときあり。
(1631行目付近)
mbstring.language = Japanese
(1638行目付近)
mbstring.internal_encoding = UTF-8

ここまでの内容を /etc/php5/cli/php.ini の方も書き換える必要があります。以下でコピー

$ cd /etc/php/7.2/apache2/
$ sudo cp -a ./php.ini ../cli/php.ini

Mysql の設定

いちばん変わってるかな・・・ ほとんど、ココに教えてもらいました。まずは、rootのパスワード設定です。

$ sudo apt install mysql-server mysql-client

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
(なにやらとっても安全なプラグインだからいれるか?と聞いている様です)
Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
(8文字以上で、どの程度強度があるパスワードにするか みたいな感じです。細かいですなぁ・・・)
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0

Please set the password for root here.
New password: ***************

Re-enter new password: ***************

Estimated strength of the password: 50
(強度50のパスワードがつくられたと)
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
(テスト用の無名ユーザー設定があるそうで、それを消すか?という感じ)

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
(rootユーザーのリモートログイン禁止するか?と)

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
 (テスト用のtestというDBを消すか?)

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
(すぐに権限テーブルをリロードするか?と ほんと細かすぎ)
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

文字コードと、パスワードの有効期限無効化

$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]の文末に追加します。

character-set-server = utf8
default_password_lifetime = 0

[mysql]にも追加

$ sudo vi /etc/mysql/conf.d/mysql.cnf

default-character-set=utf8

[mysqldump]にも追加

$ sudo vi /etc/mysql/conf.d/mysqldump

default-character-set=utf8

mysqlをリスタートします。

$ sudo /etc/init.d/mysql restart

mysql のログインが、sudo になっています。

$ sudo mysql -u root -p

パスワードを入力して、ログインできたら、Webコンテンツ用のデータベース実行ユーザーを設定をします。

mysql> create database webkintai;
mysql> create user felix@localhost identified by 'pppppppq';
mysql> grant usage on *.* to felix@localhost;
mysql> grant all on webkintai.* to felix@localhost;

簡単に解説をすると一行目でウェブページ用のデータベースを作成し、二行目で実行ユーザーを作ります。三行目で作ったユーザーに対するすべての権限を剥奪(usage)します。その後、Webkintai に対してだけすべての権限を付与します。終わったらログアウトします。

mysql>quit

PhpMyAdmin のインストール

apt-get その他もいろいろやりやすくしてある

$ sudo apt-get install phpmyadmin

リンクテーブルを処理するための追加機能を有効化

困ってないけど、sqlブックマークできたりするらしいやつ

$ sudo mysql -uroot -p <  /usr/share/phpmyadmin/sql/create_tables.sql
$ sudo mysql -uroot -p

mysqlにはいったら、phpmyadmin の権限を変更

grant all on phpmyadmin.* to felix@localhost;
quit

続いて、config.inc.php を編集

$ sudo vi /etc/phpmyadmin/config.inc.php

以下のように編集 127行目あたりから、ユーザー情報更新

/* Optional: User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'felix';
$cfg['Servers'][$i]['controlpass'] = '**********';

blowfish_secret は外部ファイル化されていて、権限変更のみみたい

sudo chmod 755 /var/lib/phpmyadmin
sudo chmod 664 /var/lib/phpmyadmin/blowfish_secret.inc.php

PostgreSQL phpPgAdmin のインストール

こっちもかんたんになってる感じ

$ sudo apt-get install postgresql php5-pgsql

PostgreSQLはサーバーユーザーではなくデータベースユーザを管理していて、デフォルトではpostgresというユーザのみが登録されています。このユーザーのパスワードを設定してログインし、その後、一般的に使用するユーザーを一人登録します。

$ sudo passwd postgres
(ここでパスワードを設定します。)
$ su - postgres
(以下で一般的に使用するユーザーを作ります。username を任意の名前にしてください)
postgres@mv1c3e:~$ createuser -P username
(ここでパスワード設定)
postgres@mv1c3e:~$ logout

ログインは、上記で作った ユーザー名とパスワードで行います。

JDK のインストール

PDT(Eclpse)を動かすにはJavaが必要です。Oracle がSunを買収した影響がでてますね。。 JRE もしくは、JDKを入れます。
$ sudo apt-get install openjdk-7-jdk

Eclipse は Ubuntuソフトウェア から