개발 꿀팁/PHP

mariadb 간단한 소개와 PHP 환경

Jammie 2022. 7. 15. 16:41
반응형

##nginx와 PHP의 관계

[root@web01 ~]# cat /etc/nginx/conf.d/02-blog.conf
server   {
    listen       80;
    server_name  blog.oldboy.com;
    access_log  /var/log/nginx/access_blog.log  main;
    root   /usr/share/nginx/html/blog; 
    location / {
    index  index.php index.html index.htm;
    }
   location ~* \.(php|php5)$ {
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
       include        fastcgi_params;
   }

}

fastcgi_pass 127.0.1: 9000; php(9000 포트) 정적 리소스를 통해 동적으로 fastcgi_pass를 통해 중개자(fastcgi)
fastcgi_index index.php; 사이트 디렉터리
fastcgi_param
SCRIPT_FILENAME 스크립트 이름
document_root 사이트 디렉터리
fastcgi_script_name 연결 요청 URI

## Mariadb 데이터베이스

1.MySQL 사전 설치, MySQL의 mariadb 서비스 재개
2.프로세스 번호 보기ss-lntup | grep mysql
3.프로세스 보기ps-ef | grep mysql
4.mysql 명령을 실행합니다.

시스템에 있는 모든 데이터베이스를 보는 명령어
쇼 databases;
끝에는 스코어를 붙여야 한다

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

MariaDB [(none)]>

데이터베이스 테이블 보기( 줄)

MariaDB [(none)]> show tables from mysql;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
24 rows in set (0.00 sec)

시스템의 모든 사용자 정보 보기
user 테이블에서 user 보기host 필드와

select user, host from mysql.user
user와 host 둘 다 표시mysql 데이터베이스에 있는 각 필드의 user 테이블에서 찾다

MariaDB [(none)]> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
|      | localhost |
| root | localhost |
|      | web01     |
| root | web01     |
+------+-----------+
6 rows in set (0.00 sec)

MariaDB [(none)]>
MariaDB [(none)]> #select * from wordpress.wp_posts\G   #모든 테이블 보기 내용 정렬하기
MariaDB [(none)]> #select * from wordpress.wp_posts limit 1 \G  #내용 정렬을 위해 한 줄만 보기
MariaDB [(none)]> #select user,host from mysql.user;    #user 테이블의 user 및 host 필드 보기 (시스템에서 모든 사용자 정보 보기)
MariaDB [(none)]> #use mysql;   #데이터베이스 테이블로 전환
MariaDB [mysql]> #select user,host from user;   #표에 들어가면 절대 경로 mysql을 추가하지 않고 상대 경로의 user와 host 필드를 봅니다

새 데이터베이스 만들기wordpress
create database wordpress
마지막으로 데이터베이스 이름

MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| wordpress          |
+--------------------+
5 rows in set (0.00 sec)

MariaDB [(none)]>

사용자 생성 권한, 비밀번호, 로그인 허용
grant all on wordpress.* to 'wordpress'@'172.16.1.%' identified by '123456';
grant all on wordpress.* to 'wordpress' @ 'localhost' identified by '123456';

>grant   사용자 생성 및 권한 부여
>all     소유권한도
>on      지정한 건
>wordpress.*    wordpress 데이터베이스의.모든 테이블
>
>'wordpress'@'localhost'     ‘아이디 '@'ip. 로그인' (%==*)
>identified by '123456';      비밀번호는 '123456';

삭제( 주의사항)
테이블 삭제: drop database lcx;
사용자 삭제: dropuser lcx@'172.16.1.%';
빈 사용자 삭제: drop user ''@'localhost';

### 권한 정보 새로 고침

flush privileges
사용자 정보 수정 후 필요권한 정보를 업데이트하려면 다음과 같이 하십시오.

###ctrlcmysql을 종료하고 새로 만든 데이터베이스 사용자로 다시 이동

mysql-uwordpress-p
-p 후 직접 비밀번호 입력할 수 있다
-u와 -p 이후에는 추가할 수 없습니다.공백

-u:MySQ 연결L 서버의 사용자 이름
-p:MySQ 연결L 서버의 암호

데이터베이스 백업
패키지 + 시간 지정 작업 + rsync
백업:
전체 테이블 백업:
mysqldump-uroot-p-A >/root/all.sql
wordpress 테이블 백업:
mysqldump-uwordpress-p123456-A >/root/wordpress.sql
백업 및 압축
mysqldump-uroot-p-A|gzip >/root/all-gzip.sql.gz
백업된 데이터베이스 복원: mysql-uroot -p </root/all.sql
PHP 환경을 구축하다
1.수정/etc/php-fpm.d/wwconf에서 user와group은 nginx

2.사용자와 사용자 그룹이 nginx인지 확인

egrep-n'user | group'/etc/php-fpm.d/ www.conf

3. php-fpm.service 서비스를 다시 시작합니다.

systemctl restart php-fpm.service

4.포트 번호와 프로세스 보기 (9000)

ss-lntup|grep 9000
ps-ef | grep php

[12:45 root@web01 /etc/nginx/conf.d]# egrep -n '^user|^group' /etc/php-fpm.d/www.conf
8:user = nginx
10:group = nginx
[12:45 root@web01 /etc/nginx/conf.d]#  systemctl restart php-fpm.service 
[12:45 root@web01 /etc/nginx/conf.d]# ss -lntup|grep 9000
tcp    LISTEN     0      128    127.0.0.1:9000                  *:*                   users:(("php-fpm",pid=9013,fd=9),("php-fpm",pid=9012,fd=9),("php-fpm",pid=9011,fd=9),("php-fpm",pid=9010,fd=9),("php-fpm",pid=9009,fd=9),("php-fpm",pid=9008,fd=7))
[12:45 root@web01 /etc/nginx/conf.d]# ps -ef |grep php 
root       9008      1  1 12:45 ?        00:00:00 php-fpm: master process (/etc/php-fpm.conf)
nginx      9009   9008  0 12:45 ?        00:00:00 php-fpm: pool www
nginx      9010   9008  0 12:45 ?        00:00:00 php-fpm: pool www
nginx      9011   9008  0 12:45 ?        00:00:00 php-fpm: pool www
nginx      9012   9008  0 12:45 ?        00:00:00 php-fpm: pool www
nginx      9013   9008  0 12:45 ?        00:00:00 php-fpm: pool www
root       9017   7472  0 12:45 pts/1    00:00:00 grep --color=auto php

Nginx와 PHP 사이

5. blog 사이트 디렉터리로 전환하여 php로 끝나는 파일을 추가합니다.
vim info.php
php의 구문 형식 주의

[12:50 root@web01 /etc/nginx/conf.d]# cd /usr/share/nginx/html/blog/
[12:50 root@web01 /usr/share/nginx/html/blog]# vim info.php
<?php
phpinfo();
?>

브라우저 http://10.0.0.7/info.php

액세스가 표시되지 않으면, Nginx가 PHP에 요청을 던지지 않고 nginx의 구성을 주로 보기 때문입니다.

먼저 02-blog.conf 구성 파일이 첫 번째가 되도록 하고 다른 구성 모듈을 압축하거나 주석을 달도록 한다

두 번째는 배치한 내용에 오류가 있는지 여부, 효력이 발생하는지 여부이다

PHP와 MySQL 사이:

6.blog 사이트 디렉터리에 두 번째 파일 mysqli.php

[root@web01 /blog]# vim mysqli.php 
<?php
$servername = "localhost";
$username = "wordpress";
$password = "123456";

// 연결 만들기
$conn = mysqli_connect($servername, $username, $password);

// 연결 감지
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "php가 MySQL 데이터베이스에 연결되었습니다";
?>

웹 브라우저로 웹 사이트를 방문하십시오.
HTTP: //10.0.0.7/mysqli.php

워드프레스 블로그를 만들다
홈페이지: https://cn.wordpress.org/
워드프레스 오픈소스 블로그 압력축소판 링크:
https://pan.baidu.com/s/1KOI3FZV8VY22rxD731pp0g 추출 코드: 7naq

압축을 푼 후 wordpress의 모든 내용을 블로그 사이트 디렉터리로 이동합니다

권한 blog 사이트 디렉터리의 호스트 그룹은 nginx입니다

[root@web01 ~]#  chown  -R nginx.nginx /usr/share/nginx/html/blog/
[root@web01 ~]# ll -d /usr/share/nginx/html/blog/
drwxr-xr-x 5 nginx nginx 4096 Jun  6 21:03 /usr/share/nginx/html/blog/

브라우저 http://10.0.0.7 입력

 

반응형