Apache
Apacheの動作確認
まずインストールしたてのapacheでサーバーは動いているのか
http://localhost/
を開いてみなさいとのことなので、すかさず開くとなにかしらかのページが表示される。
apacheは大丈夫そう。
設定ファイル
設定ファイル(/etc/apache2/apache2.conf)を確認しておく
sudo gedit /etc/apache2/apache2.conf
PHPファイルをアプリケーションファイルであることを認識させる。
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
インデックスファイルを認識させる。
DirectoryIndex index.html index.html.var index.php
変更を反映させる
おもむろに再起動
~$ sudo service apache2 restart
参考
apache2の設定ファイル
http://d.hatena.ne.jp/lllocity/20110104/1294150449
PHP
phpは
php -v
と打ち込むとバージョンが表示されているので、とりあえず問題なし。
apache2との連携にあたり、php-cgiが足らないらしい。
~$ sudo apt install php-cgi パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: php7.2-cgi 提案パッケージ: php-pear 以下のパッケージが新たにインストールされます: php-cgi php7.2-cgi アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。 1,369 kB のアーカイブを取得する必要があります。 この操作後に追加で 9,633 kB のディスク容量が消費されます。 続行しますか? [Y/n] y 取得:1 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 php7.2-cgi amd64 7.2.10-0ubuntu0.18.04.1 [1,366 kB] 取得:2 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 php-cgi all 1:7.2+60ubuntu1 [3,256 B] 1,369 kB を 1秒 で取得しました (2,445 kB/s) 以前に未選択のパッケージ php7.2-cgi を選択しています。 (データベースを読み込んでいます ... 現在 183705 個のファイルとディレクトリがインストールされています。) .../php7.2-cgi_7.2.10-0ubuntu0.18.04.1_amd64.deb を展開する準備をしています ... php7.2-cgi (7.2.10-0ubuntu0.18.04.1) を展開しています... 以前に未選択のパッケージ php-cgi を選択しています。 .../php-cgi_1%3a7.2+60ubuntu1_all.deb を展開する準備をしています ... php-cgi (1:7.2+60ubuntu1) を展開しています... man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ... php7.2-cgi (7.2.10-0ubuntu0.18.04.1) を設定しています ... update-alternatives: /usr/bin/php-cgi (php-cgi) を提供するために自動モードで /usr/bin/php-cgi7.2 を使います update-alternatives: /usr/lib/cgi-bin/php (php-cgi-bin) を提供するために自動モードで /usr/lib/cgi-bin/php7.2 を使います Creating config file /etc/php/7.2/cgi/php.ini with new version php_invoke: Enabled module ftp for cgi sapi php_invoke: Enabled module calendar for cgi sapi php_invoke: Enabled module sysvmsg for cgi sapi php_invoke: Enabled module sysvshm for cgi sapi php_invoke: Enabled module fileinfo for cgi sapi php_invoke: Enabled module readline for cgi sapi php_invoke: Enabled module sysvsem for cgi sapi php_invoke: Enabled module opcache for cgi sapi php_invoke: Enabled module shmop for cgi sapi php_invoke: Enabled module sockets for cgi sapi php_invoke: Enabled module exif for cgi sapi php_invoke: Enabled module posix for cgi sapi php_invoke: Enabled module json for cgi sapi php_invoke: Enabled module pdo for cgi sapi php_invoke: Enabled module phar for cgi sapi php_invoke: Enabled module ctype for cgi sapi php_invoke: Enabled module tokenizer for cgi sapi php_invoke: Enabled module gettext for cgi sapi php_invoke: Enabled module iconv for cgi sapi php-cgi (1:7.2+60ubuntu1) を設定しています ...
結局、他のパッケージもインストールしたほうが良いらしく、
~$ sudo apt install libapache2-mod-php php-common php-pear php-mbstring パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 php-common はすでに最新バージョン (1:60ubuntu1) です。 php-common は手動でインストールしたと設定されました。 以下の追加パッケージがインストールされます: libapache2-mod-php7.2 php-xml php7.2-mbstring php7.2-xml 以下のパッケージが新たにインストールされます: libapache2-mod-php libapache2-mod-php7.2 php-mbstring php-pear php-xml php7.2-mbstring php7.2-xml アップグレード: 0 個、新規インストール: 7 個、削除: 0 個、保留: 0 個。 2,231 kB のアーカイブを取得する必要があります。 この操作後に追加で 9,103 kB のディスク容量が消費されます。 続行しますか? [Y/n] y 取得:1 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libapache2-mod-php7.2 amd64 7.2.10-0ubuntu0.18.04.1 [1,349 kB] 取得:2 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libapache2-mod-php all 1:7.2+60ubuntu1 [3,212 B] 取得:3 http://jp.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 php7.2-mbstring amd64 7.2.10-0ubuntu0.18.04.1 [483 kB] 取得:4 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 php-mbstring all 1:7.2+60ubuntu1 [2,008 B] 取得:5 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 php7.2-xml amd64 7.2.10-0ubuntu0.18.04.1 [107 kB] 取得:6 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 php-xml all 1:7.2+60ubuntu1 [2,024 B] 取得:7 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 php-pear all 1:1.10.5+submodules+notgz-1ubuntu1 [284 kB] 2,231 kB を 1秒 で取得しました (4,158 kB/s) 以前に未選択のパッケージ libapache2-mod-php7.2 を選択しています。 (データベースを読み込んでいます ... 現在 183720 個のファイルとディレクトリがインストールされています。) .../0-libapache2-mod-php7.2_7.2.10-0ubuntu0.18.04.1_amd64.deb を展開する準備をしています ... libapache2-mod-php7.2 (7.2.10-0ubuntu0.18.04.1) を展開しています... 以前に未選択のパッケージ libapache2-mod-php を選択しています。 .../1-libapache2-mod-php_1%3a7.2+60ubuntu1_all.deb を展開する準備をしています ... libapache2-mod-php (1:7.2+60ubuntu1) を展開しています... 以前に未選択のパッケージ php7.2-mbstring を選択しています。 .../2-php7.2-mbstring_7.2.10-0ubuntu0.18.04.1_amd64.deb を展開する準備をしています ... php7.2-mbstring (7.2.10-0ubuntu0.18.04.1) を展開しています... 以前に未選択のパッケージ php-mbstring を選択しています。 .../3-php-mbstring_1%3a7.2+60ubuntu1_all.deb を展開する準備をしています ... php-mbstring (1:7.2+60ubuntu1) を展開しています... 以前に未選択のパッケージ php7.2-xml を選択しています。 .../4-php7.2-xml_7.2.10-0ubuntu0.18.04.1_amd64.deb を展開する準備をしています ... php7.2-xml (7.2.10-0ubuntu0.18.04.1) を展開しています... 以前に未選択のパッケージ php-xml を選択しています。 .../5-php-xml_1%3a7.2+60ubuntu1_all.deb を展開する準備をしています ... php-xml (1:7.2+60ubuntu1) を展開しています... 以前に未選択のパッケージ php-pear を選択しています。 .../6-php-pear_1%3a1.10.5+submodules+notgz-1ubuntu1_all.deb を展開する準備をしています ... php-pear (1:1.10.5+submodules+notgz-1ubuntu1) を展開しています... php7.2-xml (7.2.10-0ubuntu0.18.04.1) を設定しています ... Creating config file /etc/php/7.2/mods-available/dom.ini with new version Creating config file /etc/php/7.2/mods-available/simplexml.ini with new version Creating config file /etc/php/7.2/mods-available/wddx.ini with new version Creating config file /etc/php/7.2/mods-available/xml.ini with new version Creating config file /etc/php/7.2/mods-available/xmlreader.ini with new version Creating config file /etc/php/7.2/mods-available/xmlwriter.ini with new version Creating config file /etc/php/7.2/mods-available/xsl.ini with new version php7.2-mbstring (7.2.10-0ubuntu0.18.04.1) を設定しています ... Creating config file /etc/php/7.2/mods-available/mbstring.ini with new version php-xml (1:7.2+60ubuntu1) を設定しています ... php-mbstring (1:7.2+60ubuntu1) を設定しています ... php-pear (1:1.10.5+submodules+notgz-1ubuntu1) を設定しています ... man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ... libapache2-mod-php7.2 (7.2.10-0ubuntu0.18.04.1) を設定しています ... Creating config file /etc/php/7.2/apache2/php.ini with new version php_invoke: Enabled module ftp for apache2 sapi php_invoke: Enabled module calendar for apache2 sapi php_invoke: Enabled module sysvmsg for apache2 sapi php_invoke: Enabled module sysvshm for apache2 sapi php_invoke: Enabled module fileinfo for apache2 sapi php_invoke: Enabled module readline for apache2 sapi php_invoke: Enabled module sysvsem for apache2 sapi php_invoke: Enabled module opcache for apache2 sapi php_invoke: Enabled module shmop for apache2 sapi php_invoke: Enabled module sockets for apache2 sapi php_invoke: Enabled module exif for apache2 sapi php_invoke: Enabled module posix for apache2 sapi php_invoke: Enabled module json for apache2 sapi php_invoke: Enabled module pdo for apache2 sapi php_invoke: Enabled module phar for apache2 sapi php_invoke: Enabled module ctype for apache2 sapi php_invoke: Enabled module tokenizer for apache2 sapi php_invoke: Enabled module gettext for apache2 sapi php_invoke: Enabled module iconv for apache2 sapi Module mpm_event disabled. Enabling module mpm_prefork. apache2_switch_mpm Switch to prefork apache2_invoke: Enable module php7.2 libapache2-mod-php (1:7.2+60ubuntu1) を設定しています ...
PHP<->MYSQLの連携
WordPressを /wp-admin/install.php を実行すると、「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」と表示されてしまうのでここ(https://blog.kujira-station.com/201501261644)を参考にしてphp-mysqlをインストールすることにした。
$ php -m | grep mysql (何も表示されない)
$ sudo apt search php-mysql ソート中... 完了 全文検索... 完了 php-mysql/bionic,bionic 1:7.2+60ubuntu1 all MySQL module for PHP [default] $ sudo apt install php-mysql パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: php7.2-mysql 以下のパッケージが新たにインストールされます: php-mysql php7.2-mysql アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。 120 kB のアーカイブを取得する必要があります。 この操作後に追加で 461 kB のディスク容量が消費されます。 続行しますか? [Y/n] y 取得:1 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 php7.2-mysql amd64 7.2.10-0ubuntu0.18.04.1 [118 kB] 取得:2 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 php-mysql all 1:7.2+60ubuntu1 [2,004 B] 120 kB を 0秒 で取得しました (600 kB/s) 以前に未選択のパッケージ php7.2-mysql を選択しています。 (データベースを読み込んでいます ... 現在 183948 個のファイルとディレクトリがインストールされています。) .../php7.2-mysql_7.2.10-0ubuntu0.18.04.1_amd64.deb を展開する準備をしています ... php7.2-mysql (7.2.10-0ubuntu0.18.04.1) を展開しています... 以前に未選択のパッケージ php-mysql を選択しています。 .../php-mysql_1%3a7.2+60ubuntu1_all.deb を展開する準備をしています ... php-mysql (1:7.2+60ubuntu1) を展開しています... php7.2-mysql (7.2.10-0ubuntu0.18.04.1) を設定しています ... Creating config file /etc/php/7.2/mods-available/mysqlnd.ini with new version Creating config file /etc/php/7.2/mods-available/mysqli.ini with new version Creating config file /etc/php/7.2/mods-available/pdo_mysql.ini with new version libapache2-mod-php7.2 (7.2.10-0ubuntu0.18.04.1) のトリガを処理しています ... php-mysql (1:7.2+60ubuntu1) を設定しています ...
php.iniの編集
ここを参照して
https://www.server-world.info/query?os=Ubuntu_16.04&p=httpd&f=3
以下の通り実行
/etc/php/7.2/apache2$ pwd
/etc/php/7.2/apache2
上記のディレクトリに移動してphp.iniを書き換え
sudo gedit php.ini
「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」事件発生
wp-admin/install.phpにアクセスしたときに
php <-> mysqlで連携が取れないときに出てくるエラーのよう。
php-mysqlパッケージをインストールしてapache2を再起動するも変わらず。
http://infra.salmon0852.com/2017/09/
https://money-affairs.com/error-extension-mysqli/
を参考にしつつ
php.ini を
;extension=mysqli
;extension=pdo_mysql
↓コメントアウト
extension=mysqli
extension=pdo_mysql
したり、
追加
extension_dir = “/var/lib/php/modules/7.2/registry”
にするなど懸命に努力したが、改善せず。
結局、php.iniに対して行った編集は元に戻して、パソコンの再起動をしたら、
wp-admin/install.phpが正常に機能するようになった。
MYSQL
mysqlの設定だが、
mysql_secure_installation
と打ち込むと初期設定画面になるらしい。
$ mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
Error: Access denied for user ‘root’@’localhost’
$ sudo mysql_secure_installation
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
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: n
Please set the password for root here.
New password:
Re-enter new password:
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.
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.
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!
MYSQLバージョンの確認
/etc/mysql$ mysql --version mysql Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using EditLine wrapper
cnfファイルの設定
MYSQLの設定ファイルである*.cnfは以下のとおりに格納されている。
/etc/mysql$ ls -al 合計 40 drwxr-xr-x 4 root root 4096 10月 27 13:39 . drwxr-xr-x 133 root root 12288 10月 27 13:40 .. drwxr-xr-x 2 root root 4096 10月 28 00:28 conf.d -rwxr-xr-x 1 root root 120 10月 23 04:33 debian-start -rw------- 1 root root 317 10月 27 13:39 debian.cnf lrwxrwxrwx 1 root root 24 10月 27 13:39 my.cnf -> /etc/alternatives/my.cnf -rw-r--r-- 1 root root 839 8月 3 2016 my.cnf.fallback -rw-r--r-- 1 root root 682 1月 12 2018 mysql.cnf drwxr-xr-x 2 root root 4096 10月 27 13:39 mysql.conf.d
/etc/mysql$ pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g' /etc/mysql |--conf.d | |--character_set.cnf | |--mysql.cnf | |--mysqldump.cnf |--debian-start |--debian.cnf |--my.cnf |--my.cnf.fallback |--mysql.cnf |--mysql.conf.d | |--mysqld.cnf | |--mysqld_safe_syslog.cnf
最小限の設定をするために、文字コードの指定をすることにした。
conf.d配下にcharacter_set.cnfを配置してdefault-character-setで文字コードを指定したが、エラーが出てmysqlがstartできない、というトラブルに遭遇した。
ここを参考すると、文字コードの設定方法が以前とは違うらしい。
https://teratail.com/questions/74235
よって、以下のように書き直したところ、うまく起動に成功した。
[mysqld] character-set-server = utf8 skip-character-set-client-handshake [mysql] default-character-set = utf8
デフォルトでの各ディレクトリにおけるcnfファイルの内容
/etc/mysql/mysql.cnf <インクルート対象のディレクトリを指定> !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ /etc/mysql/my.cnf </etc/alternatives/my.cnfへのリンク> 内容は上記mysql.cnfと同じ !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ /etc/mysql/debian.cnf <自動生成されたファイル> # Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = {削除} socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = {削除} socket = /var/run/mysqld/mysqld.sock /etc/mysql/conf.d/mysql.cnf <ユーザ定義?> [mysql] /etc/mysql/conf.d/mysqldump.cnf <?> [mysqldump] quick quote-names max_allowed_packet = 16M /etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf <?> [mysqld_safe] syslog /etc/mysql/mysql.conf.d/mysqld.cnf <[mysqld]について定義> # # The MySQL database server configuration file. # # You can copy this to one of: # - "/etc/mysql/my.cnf" to set global options, # - "~/.my.cnf" to set user-specific options. # # One can use all long options that the program supports. # Run program with --help to get a list of available options and with # --print-defaults to see which it would actually understand and use. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html # This will be passed to all mysql clients # It has been reported that passwords should be enclosed with ticks/quotes # escpecially if they contain "#" chars... # Remember to edit /etc/mysql/debian.cnf when changing the socket location. # Here is entries for some specific programs # The following values assume you have at least 32M ram [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1 # # * Fine Tuning # key_buffer_size = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 # This replaces the startup script and checks MyISAM tables if needed # the first time they are touched myisam-recover-options = BACKUP #max_connections = 100 #table_open_cache = 64 #thread_concurrency = 10 # # * Query Cache Configuration # query_cache_limit = 1M query_cache_size = 16M # # * Logging and Replication # # Both location gets rotated by the cronjob. # Be aware that this log type is a performance killer. # As of 5.1 you can enable the log at runtime! #general_log_file = /var/log/mysql/mysql.log #general_log = 1 # # Error log - should be very few entries. # log_error = /var/log/mysql/error.log # # Here you can see queries with especially long duration #slow_query_log = 1 #slow_query_log_file = /var/log/mysql/mysql-slow.log #long_query_time = 2 #log-queries-not-using-indexes # # The following can be used as easy to replay backup logs or for replication. # note: if you are setting up a replication slave, see README.Debian about # other settings you may need to change. #server-id = 1 #log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M #binlog_do_db = include_database_name #binlog_ignore_db = include_database_name # # * InnoDB # # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. # Read the manual for more InnoDB related options. There are many! # # * Security Features # # Read the manual, too, if you want chroot! # chroot = /var/lib/mysql/ # # For generating SSL certificates I recommend the OpenSSL GUI "tinyca". # # ssl-ca=/etc/mysql/cacert.pem # ssl-cert=/etc/mysql/server-cert.pem # ssl-key=/etc/mysql/server-key.pem
MYSQL起動コマンドメモ
Ubuntu上のMySQLを起動、停止、再起動する方法。
$ sudo/etc/init.d/mysql start 起動 $ sudo/etc/init.d/mysql stop 停止 $ sudo/etc/init.d/mysql restart 再起動