CentOS,Apache,PHP,PostgreSQLの環境作成メモ 21/3/23更新
apache | ||||
インストールされているか確認 | --名称はhttpです yum list httpd | grep httpd |
|||
実行例 | [root@cent7php ~]# yum list httpd | grep httpd ~~~ httpd.x86_64 2.4.6-93.el7.centos @base |
|||
削除 | sudo yum remove httpd* | |||
インストール | ||||
インストール | yum -y install httpd | |||
バージョン確認 | httpd -v | |||
自動起動を有効にする | systemctl enable httpd.service | |||
apacheでdb接続許可確認する | getsebool -a | grep httpd_can_network_connect_db | |||
実行例 | offだと接続不可 [root@cent7php ~]# getsebool -a | grep httpd_can_network_connect_db httpd_can_network_connect_db --> off |
|||
apacheでdb接続を許可する | setsebool -P httpd_can_network_connect_db 1 | |||
実行例 | onだと接続可能 [root@cent7php ~]# getsebool -a | grep httpd_can_network_connect_db httpd_can_network_connect_db --> on |
|||
起動する | systemctl start httpd.service | |||
接続確認 | ブラウザで http://127.0.0.1/ に接続する | |||
PHP | ||||
インストールされているか確認 | yum list installed | grep php | |||
実行例 PHPある場合 | [root@cent7php ~]# yum list installed | grep php oniguruma5php.x86_64 6.9.6-1.el7.remi @remi php.x86_64 7.2.34-2.el7.remi @remi-php72 ~~ |
|||
phpの削除 | yum remove php php-* | |||
インストール | ||||
remiリポジトリ設定 | yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm | |||
インストール | yum -y install --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-pdo_pgsql php-pdo_pgsql | |||
apache再起動 | systemctl restart httpd.service | |||
テストファイルを作成し確認 | ver/www/html 配下に以下ファイルを作成する。 ファイル名:version.php 内容 <?php phpinfo(); ?> |
|||
ブラウザでアクセス | http://127.0.0.1/version.php | |||
postgresql | ||||
インストールされているか確認 | yum list installed | grep postgresql | |||
実行例 | [root@cent7php ~]# yum list installed | grep postgresql postgresql12.x86_64 12.2-2PGDG.rhel7 @pgdg12 postgresql12-libs.x86_64 12.2-2PGDG.rhel7 @pgdg12 postgresql12-server.x86_64 12.2-2PGDG.rhel7 @pgdg12 |
|||
削除 | yum remove postgresql | |||
インストール | ||||
リポジトリ設定 | yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm | |||
インストール | yum -y install postgresql12-server | |||
DB初期化 | PGSETUP_INITDB_OPTIONS="-E UTF8 --locale=C" /usr/pgsql-12/bin/postgresql-12-setup initdb | |||
DB起動 | systemctl start postgresql-12.service | |||
自動起動の設定 | systemctl enable postgresql-12.service | |||
環境設定 | ||||
pg_hba.confの設定 | /var/lib/pgsql/12/data/pg_hba.conf | |||
他のPCからパスワード認証許可 ※範囲指定可能 |
# IPv4 local connections: host all all 192.168.0.0/16 password |
|||
自端末はパスワード無しでログイン許可 | host all all 127.0.0.1/32 trust | |||
postgresql.confの設定 | /var/lib/pgsql/12/data/postgresql.conf | |||
他のPCから接続可能にする ※範囲指定不可 |
listen_addresses = '*' | |||
DB、テストテーブル作成 | ||||
postgresユーザにスイッチ | su - postgres | |||
データベース接続 | psql postgres | |||
データベース作成 | CREATE DATABASE testdb; | |||
ユーザ作成 | CREATE ROLE testuser WITH LOGIN PASSWORD 'password'; | |||
作成したユーザ確認 | select usename from pg_user; | |||
作成したdbに接続 | psql testdb | |||
作成したユーザにDBの全権限付与 | GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA testdb To testuser; | |||
rootユーザに戻る | exit | |||
作成したユーザでDBに接続 | psql -h 127.0.0.1 -p 5432 -U testuser -d testdb | |||
サンプルテーブル作成 | CREATE TABLE T_user ( ID nchar(6), Namae nchar(5) ); | |||
サンプルデータのインサート | INSERT INTO T_user(id,namae) VALUES (1,'織田信長'); INSERT INTO T_user(id,namae) VALUES (2,'豊臣秀吉'); |
|||
セレクトで確認する | SELECT * FROM T_user; | |||
PHPとposgre接続テスト | ||||
サンプルファイル作成 PHP_PostgreSQL_test.php |
<html> <head><title>DB_conect_sample</title></head> <body> DB_conect_sample<BR> <br> <?php $DBHOST = "127.0.0.1"; $DBPORT = "5432"; $DBNAME = "testdb"; $DBUSER = "testuser"; $DBPASS = "password"; try{ //DB接続 $dbh = new PDO("pgsql:host=$DBHOST;port=$DBPORT;dbname=$DBNAME;user=$DBUSER;password=$DBPASS"); print("接続成功".'<br>'); //SQL例 $sql = 'select id,namae from t_user'; //$sql = 'SELECT 1 AS id, 2 AS namae'; //SQL実行 foreach ($dbh->query($sql) as $row) { //指定Columnを一覧表示 print($row['id'].' '); print($row['namae'].'<br>'); } }catch(PDOException $e){ print("接続失敗".'<br>'); print($e.'<br>'); die(); } //データベースへの接続を閉じる $dbh = null; ?> </body> </html> |
|||
起動テスト | http://127.0.0.1/PHP_PostgreSQL_test.php | |||
よく間違えるとこ | apacheネットワーク設定 | http://sixwish.jp/Technote/Centos5/php/ | ||
postgresql設定ファイル記述ミス | ||||