CentOS7.7にLAMP環境を構築する
ではLAMP環境の構築を行っています。
前提
- SELinuxがdisabledになっている
httpdのインストール
インストール
sudo yum install -y httpd
最初にsudoするときはパスワードを聞かれることがあるので入力します。
起動と永続化
sudo systemctl start httpd
sudo systemctl enable httpd
PHPのインストール
remiリポジトリの追加
sudo yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
PHP7.4のインストール
sudo yum install -y --enablerepo=remi,remi-php74 php php-devel php-mbstring php-mysqlnd
インストールされたPHPのバージョンを確認するには、
php -v
としてください(PHP7.4.xがインストールされているか確認します)。
httpdの再起動
sudo systemctl restart httpd
MySQLのインストール
MariaDBの掃除(念の為)
sudo yum remove mariadb-libs -y
sudo rm -rf /var/lib/mysql
MySQLリポジトリのインストール
sudo rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
MySQLのインストール
sudo yum install -y mysql-community-server
起動と永続化
sudo systemctl start mysqld
sudo systemctl enable mysqld
初期パスワードをログから取得する
sudo grep password /var/log/mysqld.log
表示されたパスワードをコピーしておきます。
mysql_secure_installation
mysql_secure_installation
ウィザードが開始される。まず(MySQLの)パスワードが求められるので上記でコピーしたパスワードを入力(ペースト)する。
新しいパスワードを求められるので設定します。
パスワードが弱いと再度変更するか聞いてきます。このままでいいので、"n"を入力(y以外)。
anonymous usersを消去するか?と聞いてくるので y を入力。
リモートからのroot接続を禁止するか?と聞かれるので y を入力。
テストデータベースを消去するか聞かれるので y を入力。
設定をロードするか(反映するか)聞かれるので y を入力。
以上でMySQLの初期設定は完了です。
MySQLへログイン
では、MySQLにログインしてみます。mysql -u [ログイン名] -p でEnterを押すとパスワードを聞かれるので入力します。
mysql>にプロンプトが変わればMySQLへのログインが完了です。
mysql -u root -p
Enter password:
mysql>
認証方法の変更
MySQL8ではデフォルトの認証方法が[caching_sha2_password]に変更されていますが、これを従来の[mysql_native_password]に戻します。
現在のユーザーの認証方式がどうなっているかはmysqlにおいて、下記のようにすることで確認できます。
mysql> SELECT user, host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)
全てのユーザーの認証方式が[caching_sha2_password]になっています。
ひとまずrootの認証方式を変更
ひとまずrootユーザーの認証方式を変更します。下記のを実行します。
passwordとなっているところは実際の(mysqlの)rootパスワードを入力します。
mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'password';
実行後、確認すると認証方式が変更されています。
mysql> SELECT user, host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)
なお、MySQLから抜けるには
mysql> exit
とします。
標準設定
恒常的に設定を変更するためにはMySQLの設定ファイルである/etc/my.cnfを編集します。
sudo vi /etc/my.cnf
[mysqld]セクションに下記の記述を追記します。
[mysqld]
default_authentication_plugin=mysql_native_password
MySQLの再起動
sudo systemctl restart mysqld
Firewallの設定
ここまでLAMPの設定を行ってきましたが、80番ポートがfirewallでブロックされているため外部からWebにアクセスことができないためポートを空けます。
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
削除する場合は firewall-cmd --permanent --remove-port=80/tcp とします。
確認は下記のコマンドでできます。
sudo firewall-cmd --list-all
portsに80番が追加されています。
動作確認
では動作確認してみます。
WWW
まずはWebサーバ(Apache)が正常に動作しているか。
下記にアクセスするとApacheの標準画面が見えるはずです。
http://localhost:8888 にアクセス。
PHP
次にPHPが動作しているか確認します。
確認用のファイルを/var/www/以下に作成します。
sudo vi /var/www/html/info.php
PHPの情報を出力するphpinfo();関数を実行してみます。
<?php
phpinfo();
http://localhost:8888/info.php にアクセスすると下記の画面が表示されます。
MySQL
最後にMySQLが動作しており、PHPから連携できるか確認してみます。
確認用のファイルを作成します。
sudo vi /var/www/html/mysql.php
ひとまずMySQLに既に書き込まれているデータ(上記で利用したユーザー情報)を表示してみます。
下記のように記述します。
passwordはMySQLのrootユーザーのパスワードを記述します。
<?php
ini_set('display_errors',true);
$dbh = new PDO('mysql:host=localhost;dbname=mysql','root','password');
$stmt = $dbh->prepare('select user,host,plugin from user');
$stmt->execute();
foreach($stmt as $row){
echo $row['user'].'<br>';
}
http://localhost:8888/mysql.php にアクセスすると下記のようにユーザー一覧が表示されるはずです。
ここまででL(inux),A(pache),M(ySQL),P(HP)の設定ができました。
アップデートをかけておこう
一通りのインストールが完了したのでシステム全体をUpdateしておきます。
sudo yum update -y
リブートしてみよう
sudo shutdown -r now
考えよう
- CentOSとは何か?CentOS以外の選択肢は何か?
- Apacheとは何か?Apache以外の選択肢は何か?
- MySQLは何か?MySQL以外の選択肢は何か?
- MariaDBとは何か?なぜ存在するのか?
- PHPは何か?PHP以外の選択肢は何か?
- yumとは何か?(dnfとは何か?)
Author And Source
この問題について(CentOS7.7にLAMP環境を構築する), 我々は、より多くの情報をここで見つけました https://qiita.com/zaburo/items/c1aafd0c9ab544055221著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .