Tips
nginxとMySQLを利用したサンプルです。
MySQLを設定した後に、PHP用nginxを設定します。そのあとにPHPアプリでMySQLに接続します。
MySQL
MYSQL8の設定です。
MySQLのインストール
# apt update # apt upgrade # apt install mysql-server
初期設定
# mysql_secure_installation
rootのパスワード設定 {PASSWORD}は任意
# echo "default_authentication_plugin=mysql_native_password" >> /etc/mysql/mysql.conf.d/mysqld.cnf # sed -i -e "s/^bind-address\t\t= 127.0.0.1/bind-address\t\t= 0.0.0.0/g" /etc/mysql/mysql.conf.d/mysqld.cnf # systemctl restart mysql # mysql -uroot
パスワード設定のポリシーを変更(上記で設定しても反映されない)
mysql> set global validate_password.policy=0;
{PASSWORD}は任意、リモートでの接続許可
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{PASSWORD}'; mysql> RENAME USER 'root'@'localhost' TO 'root'@'%';
サンプルデータの入力
mysql> create database sample; mysql> CREATE TABLE sample.list ( id INT AUTO_INCREMENT, content VARCHAR(255), PRIMARY KEY(id) ); mysql> INSERT INTO sample.list (content) VALUES ("サンプルデータ1");
PHP用nginx
PHPが動くnginxを設定します。
# apt update # apt upgrade # apt install nginx php-fpm php-mysql # vi /etc/nginx/sites-available/default
赤部分を追加
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
nginxの再起動
# systemctl restart nginx
サンプルプログラムを追加
# vi /var/www/html/sample.php
サンプル
<!--?php $hostname = "172.17.0.5"; $user = "root"; $password = "{PASSWORD}"; $database = "sample"; $table = "list"; try { $db = new PDO("mysql:host=$hostname;dbname=$database", $user, $password); echo "</p> <h2>サンプルデータ</h2> <ol>"; foreach($db->query("SELECT content FROM $table") as $row) { echo "</p> <li>" . $row['content'] . "</li> <p>"; } echo "</ol> <p>"; } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br?-->"; die(); }
アクセスして対象のデータは表意されればOK
参考
-
Linux、Nginx、MySQL、PHP(LEMP)スタックをUbuntu 20.04にインストールする方法 | DigitalOcean
LEMPソフトウェアスタックは、PHPで記述された動的WebページとWebアプリケーションの提供に使用できるソフトウェアのグループです。これは、Nginx(「 Engine-X」と発音)Webサーバー ...
www.digitalocean.com