개발 꿀팁/PHP

centos8-분리형 lamp 아키텍처

Jammie 2022. 7. 7. 15:05
반응형

스탠드 아론 배치 lamp
실험 환경
방화벽 닫기
호스트 세 대 모두 종료해야 합니다.(여기에는 한 줄만)

[root@cloud1 ~]# setenforce 0
[root@cloud1 ~]# systemctl stop firewalld

실험 흐름
apache 설치
실험적인 사고 방식.
gcc를 먼저 설치, gcc++ 환경
openssl-deve 설치l pcre-devel expat-dev엘립툴
apr과 apr-uti 설치ls
apache 설치
환경 변수 편집
서비스를 개시하다
방화벽 닫기
실험 흐름
1단계: gcc, gcc 설치-c++

[root@cloud1 ~]# yum install -y gcc gcc-c++

2단계: openssl-devel pcre-devel expat-devel libtools 설치

[root@cloud1 ~]# yum install -y openssl-devel pcre-devel expat-devel libtool

3단계: APR 및 APR-utils 설치
다운로드 주소: http://archive.apache.org/dist/apr/

 

#xftp로 보내기/opt
[root@cloud1 opt]# ls
apr-1.6.3.tar.gz  apr-util-1.6.1.tar.gz
[root@cloud1 opt]# tar -xf apr-1.6.3.tar.gz 
[root@cloud1 opt]# tar -xf apr-util-1.6.1.tar.gz
[root@cloud1 opt]# cd apr-1.6.3/
[root@cloud1 apr-1.6.3]# vim configure
30976    #$RM "$cfgfile"  #在30976줄 주석 추가
[root@cloud1 apr-1.6.3]# ./configure --prefix=/usr/local/apr
[root@cloud1 apr-1.6.3]# make && make install
[root@cloud1 apr-1.6.3]# cd /opt/apr-util-1.6.1/
[root@cloud1 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@cloud1 apr-util-1.6.1]# make & make install
4단계: 아파치 설치
다운로드 주소: http://httpd.apache.org/download.cgi

sadangye apachi solchi daunnodeu juso eichititipieichititipidi apasyudad

#xftp전해지다/opt
[root@cloud1 opt]# tar xf httpd-2.4.46.tar.gz 
[root@cloud1 opt]# cd httpd-2.4.46/
[root@cloud1 httpd-2.4.46]# ./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
[root@cloud1 httpd-2.4.46]# make && make install

환경 변수 편집

[root@z1 yum.repos.d]# echo 'export PATH=/usr/local/apache/bin/:$PATH' > /etc/profile.d/apache.sh
[root@z1 yum.repos.d]# source /etc/profile.d/apache.sh

서비스를 개시하다

[root@z1 httpd-2.4.46]# apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fec4:1136. Set the 'ServerName' directive globally to suppress this message

6단계: 방화벽과 selinux 끄기

[root@cloud1 ~]# setenforce 0
[root@cloud1 ~]# systemctl stop firewalld

mysql 설치
실험적인 사고 방식.
홈페이지에 가서 설치 패키지를 다운로드하다
xftp로 전달무기상(약)
사용자 만들기
이진 파일을 압축 풀기
권한 수정
환경 변수 추가
저장 데이터 디렉터리 만들기
데이터베이스 초기화
프로필 생성
헤더 파일 및 라이브러리 파일
server시동 방식
비밀번호 수정
로그인 방식 수정,
실험 흐름
설치 패키지 다운로드

서버에 xftp( 약)
사용자 만들기

[root@cloud1 ~]# useradd -rMs /sbin/nologin mysql

지정한 파일로 압축 풀기

[root@cloud1 ~]# tar xf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@cloud1 ~]# cd /usr/local/
[root@cloud1 local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql-5.7.33-linux-glibc2.12-x86_64  sbin  share  src
[root@cloud1 local]# mv mysql-5.7.33-linux-glibc2.12-x86_64/ mysql

권한 수정

[root@cloud1 local]# chown -R mysql.mysql mysql/
[root@cloud1 local]# ll | grep mysql
drwxr-xr-x  9 mysql mysql 129 May  2 03:05 mysql

환경 변수 추가

[root@cloud1 local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@cloud1 local]# source /etc/profile

데이터를 저장할 디렉터리 만들기
데이터베이스의 데이터 양이 비교적 많다그래서 좀 더 큰 곳을 골라라

[root@cloud1 local]# mkdir /opt/data
[root@cloud1 local]# chown -R mysql.mysql /opt/data/

데이터베이스 초기화

[root@cloud1 local]#  /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/
2021-05-02T07:25:16.580540Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-05-02T07:25:16.781000Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-05-02T07:25:16.803557Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-05-02T07:25:16.870950Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 8af2fb35-ab17-11eb-ae11-000c29c41136.
2021-05-02T07:25:16.872109Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-05-02T07:25:17.191958Z 0 [Warning] CA certificate ca.pem is self signed.
2021-05-02T07:25:17.322977Z 1 [Note] A temporary password is generated for root@zl: sATlUgnra0-l
 
 
 #마지막 줄의 코드를 파일에 저장하고, 예비로 남겨라
[root@cloud1 local]# echo "sATlUgnra0-l" > ~/mysql_passwd
[root@cloud1 local]# cat ~/mysql_passwd 
sATlUgnra0-l

프로필 생성

[root@cloud1 ~]# vim /etc/my.cnf 
[mysqld]
basedir = /usr/local/mysql #mysql 설치 디렉터리 지정
datadir = /opt/data        #데이터 저장 디렉터리 지정
socket = /tmp/mysql.sock   #소켓 저장소 디렉터리 지정
port = 3306 			   #포트 지정
pid-file = /opt/data/mysql.pid #PID 파일 저장 위치 지정
user = mysql 			  #MySQL에서 어떤 사용자로 서비스를 제공할지 지정합니다
skip-name-resolve

헤더 및 라이브러리 파일 설정

[root@cloud1 ~]ln -s /usr/local/mysql/include /usr/include/mysql
[root@cloud1 ~]vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@cloud1 ~]ldconfig

서버 시작 방법 만들기

[root@cloud1 local]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 
[root@cloud1 local]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql  #환경변수목록
datadir=/opt/data         #데이터 저장소 디렉터리
[root@cloud1 local]# service mysqld start
[root@cloud1 local]# chkconfig mysqld on
[root@cloud1 local]# chkconfig --list
Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

gcc-toolset-10-stap-server	0:off	1:off	2:off	3:off	4:off	5:off	6:off
gcc-toolset-10-systemtap	0:off	1:off	2:on	3:on	4:on	5:on	6:off
gcc-toolset-9-stap-server	0:off	1:off	2:off	3:off	4:off	5:off	6:off
gcc-toolset-9-systemtap	0:off	1:off	2:on	3:on	4:on	5:on	6:off
mysqld         	0:off	1:off	2:on	3:on	4:on	5:on	6:off

비밀번호 수정

//비밀번호 수정
//임시 비밀번호로 로그인하기
[root@z2 ~]# yum install -y ncurses-compat-libs
[root@zl ~]# /usr/local/mysql/bin/mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

//새 암호 설정
mysql> set password = password('123.com.');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql 로그인 방식 수정

[root@cloud1 ~]# vim ~/.my.cnf
[client]
user=root
password=123.com
[root@cloud1 ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.33 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

C3 php 설치
php 설치

[root@z3 ~]# yum install -y php* #centos8可安装php

php를 활성화하다

[root@z3 ~]# systemctl start php-fpm.service 
[root@z3 ~]# ss -antl
State  Recv-Q Send-Q Local Address:Port Peer Address:Port Process 
LISTEN 0      128          0.0.0.0:111       0.0.0.0:*            
LISTEN 0      32     192.168.122.1:53        0.0.0.0:*            
LISTEN 0      128          0.0.0.0:22        0.0.0.0:*            
LISTEN 0      5          127.0.0.1:631       0.0.0.0:*            
LISTEN 0      128             [::]:111          [::]:*            
LISTEN 0      128             [::]:22           [::]:*            
LISTEN 0      5              [::1]:631          [::]:*            
[root@z3 ~]# ps -aux | grep php
root        3818  0.1  2.8 549564 37932 ?        Ss   05:59   0:00 php-fpm: master process (/etc/php-fpm.conf)
apache      3819  0.0  1.6 565900 21704 ?        S    05:59   0:00 php-fpm: pool www
apache      3820  0.0  1.6 565900 21708 ?        S    05:59   0:00 php-fpm: pool www
apache      3821  0.0  1.6 565900 21708 ?        S    05:59   0:00 php-fpm: pool www
apache      3822  0.0  1.6 565900 21708 ?        S    05:59   0:00 php-fpm: pool www
apache      3823  0.0  1.6 565900 21708 ?        S    05:59   0:00 php-fpm: pool www
root        3830  0.0  0.0  12112  1040 pts/1    S+   05:59   0:00 grep --color=auto php
#php 프로세스가 있지만 php 포트가 없습니다

php 설정

[root@z3 ~]# vim /etc/php-fpm.d/www.conf
 38  listen = /run/php-fpm/www.sock 	#주석 취소
 39  listen = 0.0.0.0:9000          	#이 줄 추가
 64 ;listen.allowed_clients = 127.0.0.1 #주석 추가
[root@z3 ~]# mkdir -p /data/php
[root@z3 ~]# vim /data/php/index.php
<?php
        phpinfo();
?>
[root@z3 ~]# chown -R apache.apache /data/
[root@z3 ~]# systemctl restart php-fpm.service
[root@z3 ~]# ss -antl
State  Recv-Q Send-Q Local Address:Port Peer Address:Port Process 
LISTEN 0      128          0.0.0.0:111       0.0.0.0:*            
LISTEN 0      32     192.168.122.1:53        0.0.0.0:*            
LISTEN 0      128          0.0.0.0:22        0.0.0.0:* 
LISTEN 0	  128     			 *:80              *:*    
LISTEN 0      5          127.0.0.1:631       0.0.0.0:*            
LISTEN 0      128          0.0.0.0:9000      0.0.0.0:*            
LISTEN 0      128             [::]:111          [::]:*            
LISTEN 0      128             [::]:22           [::]:*            
LISTEN 0      5              [::1]:631          [::]:*

아파치 설정

[root@z1 ~]# vim /etc/httpd24/httpd.conf
120 LoadModule proxy_module modules/mod_proxy.so 			#120줄 주석 취소
124 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.	#124줄 주석 취소
203 ServerName 0.0.0.0.com:80								#이 조항은 이렇게 수정되었다
261     DirectoryIndex  index.php index.html				#중간에 index.php를 삽입합니다
397     AddType application/x-compress .Z
398     AddType application/x-gzip .gz .tgz
399     AddType application/x-httpd-php .php        		#이 줄 추가
400     AddType application/x-httpd-php-source .phps		#이 줄 추가
488 #Include /etc/httpd24/extra/httpd-vhosts.conf
489 Include /etc/httpd24/extra/vhosts.conf                  #이 항목 추가

#말미에 아래의 정보를 추가하다
<VirtualHost *:80>
    DocumentRoot "/data/php/" #파일 저장 경로
    ServerName www.zhanglei.com
    DirectoryIndex index.php
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/php/$1
    <Directory "/data/php/">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
[root@z1 ~]# mkdir -p /data/php
[root@z1 ~]# useradd apache
[root@z1 ~]# chown apache.apache -R /data        
[root@z1 ~]# [root@z3 ~]# vim /data/php/index.php
<?php
        phpinfo();
?>
[root@z1 ~]# apachectl restart

다중 시스템 배치 lamp
실험 환경

시스템 버전 ip 빌드 서비스 호스트 이름
centos 8       8192.168.80.21      아파치 c1
centos 8       192.168.80.22         mysqlc2
centos 8        192.168.80.23            phpc3

방화벽 닫기
호스트 3대 모두 종료(여기서 1개만)

[root@cloud1 ~]# setenforce 0
[root@cloud1 ~]# systemctl stop firewalld

실험 흐름
c1apache 설치
실험적인 사고 방식.
gcc, gcc++ 환경 먼저 설치
openssl-devel 설치 pcre-devel expat-devel 립툴
apr과 apr-utils 설치
apache 설치
환경 변수 편집
서비스를 개시하다
방화벽 닫기
실험 흐름
1단계: gcc 설치, gcc-c++

[root@cloud1 ~]# yum install -y gcc gcc-c++

2단계: openssl-devel pcre-devel expat-devel libtools 설치

[root@cloud1 ~]# yum install -y openssl-devel pcre-devel expat-devel libtool

3단계: APR 및 APR-utils 설치
다운로드 주소: http://archive.apache.org/dist/apr/

#xftp로 보내기/opt
[root@cloud1 opt]# ls
apr-1.6.3.tar.gz  apr-util-1.6.1.tar.gz
[root@cloud1 opt]# tar -xf apr-1.6.3.tar.gz 
[root@cloud1 opt]# tar -xf apr-util-1.6.1.tar.gz
[root@cloud1 opt]# cd apr-1.6.3/
[root@cloud1 apr-1.6.3]# vim configure
30976    #$RM "$cfgfile"  #30976 줄에 주석 추가
[root@cloud1 apr-1.6.3]# ./configure --prefix=/usr/local/apr
[root@cloud1 apr-1.6.3]# make && make install
[root@cloud1 apr-1.6.3]# cd /opt/apr-util-1.6.1/
[root@cloud1 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@cloud1 apr-util-1.6.1]# make & make install

4단계: 아파치 설치
다운로드 주소: http://httpd.apache.org/download.cgi

#xftp 전송/opt
[root@cloud1 opt]# tar xf httpd-2.4.46.tar.gz 
[root@cloud1 opt]# cd httpd-2.4.46/
[root@cloud1 httpd-2.4.46]# ./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
[root@cloud1 httpd-2.4.46]# make && make install

환경 변수 편집

[root@z1 yum.repos.d]# echo 'export PATH=/usr/local/apache/bin/:$PATH' > /etc/profile.d/apache.sh
[root@z1 yum.repos.d]# source /etc/profile.d/apache.sh

서비스를 개시하다

[root@z1 httpd-2.4.46]# apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fec4:1136. Set the 'ServerName' directive globally to suppress this message

6단계: 방화벽과 selinux 끄기

[root@cloud1 ~]# setenforce 0
[root@cloud1 ~]# systemctl stop firewalld

c2 mysql 설치
실험적인 사고 방식.
홈페이지에 가서 설치 패키지를 다운로드하다
서버에 xftp로 보내기위 (약략)
사용자 만들기
이진 파일을 압축 풀기
권한 수정
환경 변수 추가
저장 데이터 디렉터리 만들기
데이터베이스 초기화
프로필 생성
헤더 파일 및 라이브러리 파일
서버 시작 기록하기방식
비밀번호 수정
로그인 방식 수정,
실험 흐름
설치 패키지 다운로드

서버에 xftp( 약)
사용자 만들기

[root@cloud1 ~]# useradd -rMs /sbin/nologin mysql

지정한 파일로 압축 풀기

[root@cloud1 ~]# tar xf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@cloud1 ~]# cd /usr/local/
[root@cloud1 local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql-5.7.33-linux-glibc2.12-x86_64  sbin  share  src
[root@cloud1 local]# mv mysql-5.7.33-linux-glibc2.12-x86_64/ mysql

권한 수정

[root@cloud1 local]# chown -R mysql.mysql mysql/
[root@cloud1 local]# ll | grep mysql
drwxr-xr-x  9 mysql mysql 129 May  2 03:05 mysql

환경 변수 추가

[root@cloud1 local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@cloud1 local]# source /etc/profile

데이터를 저장할 디렉터리 만들기
데이터베이스의 데이터 양이 비교적 많다그래서 좀 더 큰 곳을 골라라

[root@cloud1 local]# mkdir /opt/data
[root@cloud1 local]# chown -R mysql.mysql /opt/data/

데이터베이스 초기화

[root@cloud1 local]#  /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/
2021-05-02T07:25:16.580540Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-05-02T07:25:16.781000Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-05-02T07:25:16.803557Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-05-02T07:25:16.870950Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 8af2fb35-ab17-11eb-ae11-000c29c41136.
2021-05-02T07:25:16.872109Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-05-02T07:25:17.191958Z 0 [Warning] CA certificate ca.pem is self signed.
2021-05-02T07:25:17.322977Z 1 [Note] A temporary password is generated for root@zl: sATlUgnra0-l
 
 
 #마지막 줄의 코드를 파일에 저장하고, 예비로 남겨라
[root@cloud1 local]# echo "sATlUgnra0-l" > ~/mysql_passwd
[root@cloud1 local]# cat ~/mysql_passwd 
sATlUgnra0-l

프로필 생성

[root@cloud1 ~]# vim /etc/my.cnf 
[mysqld]
basedir = /usr/local/mysql #mysql 설치 디렉터리 지정
datadir = /opt/data        #데이터 저장 디렉터리 지정
socket = /tmp/mysql.sock   #소켓 저장소 디렉터리 지정
port = 3306 			   #포트 지정
pid-file = /opt/data/mysql.pid #PID 파일 저장 위치 지정
user = mysql 			  #MySQL에서 어떤 사용자로 서비스를 제공할지 지정합니다
skip-name-resolve

헤더 및 라이브러리 파일 설정

[root@cloud1 ~]ln -s /usr/local/mysql/include /usr/include/mysql
[root@cloud1 ~]vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@cloud1 ~]ldconfig

서버 시작 방법 만들기

[root@cloud1 local]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 
[root@cloud1 local]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql  #환경변수목록
datadir=/opt/data         #데이터 저장소 디렉터리
[root@cloud1 local]# service mysqld start
[root@cloud1 local]# chkconfig mysqld on
[root@cloud1 local]# chkconfig --list
Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

gcc-toolset-10-stap-server	0:off	1:off	2:off	3:off	4:off	5:off	6:off
gcc-toolset-10-systemtap	0:off	1:off	2:on	3:on	4:on	5:on	6:off
gcc-toolset-9-stap-server	0:off	1:off	2:off	3:off	4:off	5:off	6:off
gcc-toolset-9-systemtap	0:off	1:off	2:on	3:on	4:on	5:on	6:off
mysqld         	0:off	1:off	2:on	3:on	4:on	5:on	6:off

비밀번호 수정

//비밀번호 수정
//임시 비밀번호로 로그인하기
[root@z2 ~]# yum install -y ncurses-compat-libs
[root@zl ~]# /usr/local/mysql/bin/mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

//새 암호 설정
mysql> set password = password('123.com.');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql 로그인 방식 수정

[root@cloud1 ~]# vim ~/.my.cnf
[client]
user=root
password=123.com
[root@cloud1 ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.33 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

C3 php 설치
php 설치

[root@z3 ~]# yum install -y php* #centos8可安装php

php를 활성화하다

[root@z3 ~]# systemctl start php-fpm.service 
[root@z3 ~]# ss -antl
State  Recv-Q Send-Q Local Address:Port Peer Address:Port Process 
LISTEN 0      128          0.0.0.0:111       0.0.0.0:*            
LISTEN 0      32     192.168.122.1:53        0.0.0.0:*            
LISTEN 0      128          0.0.0.0:22        0.0.0.0:*            
LISTEN 0      5          127.0.0.1:631       0.0.0.0:*            
LISTEN 0      128             [::]:111          [::]:*            
LISTEN 0      128             [::]:22           [::]:*            
LISTEN 0      5              [::1]:631          [::]:*            
[root@z3 ~]# ps -aux | grep php
root        3818  0.1  2.8 549564 37932 ?        Ss   05:59   0:00 php-fpm: master process (/etc/php-fpm.conf)
apache      3819  0.0  1.6 565900 21704 ?        S    05:59   0:00 php-fpm: pool www
apache      3820  0.0  1.6 565900 21708 ?        S    05:59   0:00 php-fpm: pool www
apache      3821  0.0  1.6 565900 21708 ?        S    05:59   0:00 php-fpm: pool www
apache      3822  0.0  1.6 565900 21708 ?        S    05:59   0:00 php-fpm: pool www
apache      3823  0.0  1.6 565900 21708 ?        S    05:59   0:00 php-fpm: pool www
root        3830  0.0  0.0  12112  1040 pts/1    S+   05:59   0:00 grep --color=auto php
#php 프로세스가 있지만 php 포트가 없습니다

php 설정

[root@z3 ~]# vim /etc/php-fpm.d/www.conf
 38  listen = /run/php-fpm/www.sock 	#주석 취소
 39  listen = 0.0.0.0:9000          	#이 줄 추가
 64 ;listen.allowed_clients = 127.0.0.1 #주석 추가
[root@z3 ~]# mkdir -p /data/php
[root@z3 ~]# vim /data/php/index.php
<?php
        phpinfo();
?>
[root@z3 ~]# chown -R apache.apache /data/
[root@z3 ~]# systemctl restart php-fpm.service
[root@z3 ~]# ss -antl
State  Recv-Q Send-Q Local Address:Port Peer Address:Port Process 
LISTEN 0      128          0.0.0.0:111       0.0.0.0:*            
LISTEN 0      32     192.168.122.1:53        0.0.0.0:*            
LISTEN 0      128          0.0.0.0:22        0.0.0.0:*            
LISTEN 0      5          127.0.0.1:631       0.0.0.0:*            
LISTEN 0      128          0.0.0.0:9000      0.0.0.0:*            
LISTEN 0      128             [::]:111          [::]:*            
LISTEN 0      128             [::]:22           [::]:*            
LISTEN 0      5              [::1]:631          [::]:*

아파치 설정

[root@z1 ~]# vim /etc/httpd24/httpd.conf
120 LoadModule proxy_module modules/mod_proxy.so 			#120줄 주석 취소
124 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.	#124줄 주석 취소
203 ServerName 0.0.0.0.com:80								#이 조항은 이렇게 수정되었다
261     DirectoryIndex  index.php index.html				#중간에 index.php를 삽입합니다
397     AddType application/x-compress .Z
398     AddType application/x-gzip .gz .tgz
399     AddType application/x-httpd-php .php        		#이 줄 추가
400     AddType application/x-httpd-php-source .phps		#이 줄 추가
488 #Include /etc/httpd24/extra/httpd-vhosts.conf
489 Include /etc/httpd24/extra/vhosts.conf                  #이 항목 추가

#말미에 아래의 정보를 추가하다
<VirtualHost *:80>
    DocumentRoot "/data/php/" #파일 저장 경로
    ServerName www.zhanglei.com
    DirectoryIndex index.php
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.80.23:9000/data/php/$1
    <Directory "/data/php/">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>
[root@z1 ~]# mkdir -p /data/php
[root@z1 ~]# useradd apache
[root@z1 ~]# chown apache.apache -R /data
root@z1 ~]# ls /data/php        #이 디렉터리는 비어 있고 아무것도 없습니다(php 그 호스트의 index.php 파일이 호출되었음을 증명합니다)
[root@z1 ~]#

반응형