CentOS 7 fastcgi 기반 lamp


실험 환경 CentOS 7, lamp(php-fpm)
요구: (1) 세 개의 호스트에서 분리한다.
(2) phpMyAdmin을 제공하는 가상 호스트다른 가상 호스트는 wordpress를 제공하는 데 사용된다.
         (3) xcache
계획 172.18.105.110에서 http 서버 실행
172.18.250.157 데이터베이스 실행
172.18.253.26 php-fpm 프로그램 실행
일을 잘하려면 먼저 그 기구를 이롭게 해야 한다
나는 DNS 두 대의 A 기록을 미리 만들어서 172.18.105.110에 대응하는 FQDN은 www1이다.stu05.com  www2.stu05.com
CA 서버도 미리 만들었어요.
Yum씨도 사용하실 수 있도록 준비되어 있고요.
1. 172.18.105.110에 yum install httpd - y 주:centos7 구축 http 기본값은 2.4
172.18.250.157yum install mariadb.서버 - y 설치 데이터베이스
172.18.253.26 yum install php-fpm php-mysql php-mbstring-y
이 때 php는 프로그램 독립 프로그램으로 실행됩니다
    
2. 172.18.105.110에서 센터 호스트의vim/etc/httpd/conf/httpd를 닫습니다.conf  #DocumentRoot "/var/www/html"
3. 172.18.105.110과 172.18.253.26에 http단 가상 호스트 사이트 디렉터리와 백엔드 php 동적 데이터 사이트 디렉터리를 설정하여 요청을 전송하기
  mkdir -pv/web/vhosts/www1
  mkdir -pv/web/vhosts/www2
4. 172.18.105.110에 FQDN 기반 가상 호스트vim/etc/httpd/conf.d/vhosts 구성
첫 번째 FQDN 기반 가상 호스트 정의
     DirectoryIndex index.php--------------php 실행의 기본 메인 페이지를 정의합니다
                                          http2.4 NameVirtualHost 명령이 제거된 FQND 기반 가상 호스트
        
                  ServerName www1.stu05.com
                  DocumentRoot  "/web/vhosts/www1"
ProxyRequests Off 양방향 에이전트 닫기
    ProxyPassMatch  ^/(.*\.php)$  fcgi://172.18.253.26:9000/web/vhosts/www1/$1  
주: http 서버는 방향 에이전트를 통해 cgi의 요청을 172.18.253.26 PHP 프로그램에 전송합니다
                     http2.4 루트 디렉토리에 대한 액세스 제어 필요
                      AllowOverride None
                      Options None
                      Require all granted 
               
           
보조 가상 호스트
 
                ServerName www2.stu05.com
                DocumentRoot  "/web/vhosts/www2"  
------wordpress 프로그램은 자동으로 www2에서 index를 찾을 수 있기 때문이다.php
                ProxyRequests Off
  ProxyPassMatch  ^/(.*\.php)$  fcgi://172.18.105.110:9000/web/vhosts/www2/wordpress/$1
참고: PHP에 전달할 때 액세스하는 절대 경로 사용
                                 
                        AllowOverride None
                        Options None
                       
                   
5. 172.18.253.26에서vim/etc/php-fpm.d/www.conf
listen = 172.18.253.26:9000php 서비스 프로그램은 외부에 접근할 수 있는 sokcet를 감청해야 한다
     listen.allowed_clients = 172.18.105.110 에서 허용되는 프런트엔드 http 액세스
6. 172.18.253.26에session 디렉터리를 만들고 php-fpm 프로세스를 실행하는 사용자가 이 디렉터리에 읽기와 쓰기 권한이 있는지 확인한다.
        # mkdir  /var/lib/php/session
        # chown apache.apache/var/lib/php/session 
7. php가 정상적인지vim/web/vhosts/www1과/web/vhosts/www1 테스트
   vim index.php
   
php 테스트 코드
        
            phpinfo();
        ?>
 
브라우저http://www1.stu05.com   http://www2.stu05.com
8. php와 mysql-server의 연결이 정상적인지 테스트
172.18.250.157에서 관리자로 mysql에 로그인하고 원격 로그인 사용자에게 권한을 부여합니다
        CREATE DATABASE wpdb; 데이터베이스 만들기
   (1) GRANT ALL ON testdb.* TO testuser@'172.18.%.%' IDENTIFIED BY 'testpass';
주: GRANT는 172.16.0/16 세그먼트에 있는 호스트가testuser를 통해 testdb의 모든 테이블에 원격으로 접근할 수 있도록 권한을 부여합니다
(2) FLUSH PRIVILEGES 새로 고침이 즉시 적용됨
보기 가능한 사용자: SELECT USER(),
(3) mysql 로그인을 닫을 때 사용자 이름의 반해
         vim/etc/my.cnf 프로필에 [mysqld] 뒤에 skip 추가name_resolve = ON
서비스 mysqld reload를 다시 로드합니다.
172.18.105.110 중vim/web/vhosts/www1과/web/vhosts/www1
index에 놓습니다.php 이후 실행http://172.18.105.110
     
        $conn = mysql_connect('172.16.100.67','testuser','testpass');
        if ($conn) 
            echo "OK";
        else
            echo "Failure";
        ?>
램 환경이 성공했어.
요약:
모든 소스 프로그램이 데이터베이스에 연결되어야 한다. 램 연결 데이터베이스 ok를 테스트하는 상황에서 원격 연결이라면 권한을 부여받은 원격 연결 사용자를 만들어야 한다.workdpress는 데이터베이스를 만들어야 할 뿐만 아니라 권한을 부여받은 원격 연결 사용자도 필요하다.
원격 호스트 로그인 데이터베이스 define('DB HOST','172.18.250.157');로컬 호스트 로그인 데이터베이스 define('DB HOST','127.0.0.1'); 
로컬 데이터베이스 루트 로그인 비밀번호 mysql -uroot -pxwj4611
로컬 데이터베이스 루트에 암호가 없으면 mysql
9. 첫 번째 가상 호스트가 wordpress를 실행한다
       
        cp  wordpress-4.3.1-zh_CN.zip /web/vhosts/www1/
          unzip wordpress-4.3.1-zh_CN.zip
          ln -sv wordpress-4.3.1-zh_CN  wordpress   cd /wordpress

    1、cp wp-config-sample.php   wp-config.php
2. mysql을 실행하거나 로컬 루트에서 mysql-uroot-pxwj4611을 실행하면 CREATE DATABASE wpdb를 실행합니다.데이터베이스를 만드는 대부분의 소스 오픈 프로그램은 자동으로 데이터베이스를 만듭니다
    3、GRANT ALL ON wpdb.* TO wpuser@'172.18.%.%' IDENTIFIED BY 'wppress'   
주: 이 소프트웨어에 사용자가 데이터베이스에 원격으로 연결할 수 있는 권한을 부여합니다. 만약에 로컬 연결 127.0.0.1이라면
    4、vim vp-config.php 편집 프로필
/**WordPress 데이터베이스 이름*/
          define('DB_NAME', 'wpdb');
/** MySQL 데이터베이스 사용자 이름*/
           define('DB_USER', 'wpuser');
/** MySQL 데이터베이스 암호*/
           define('DB_PASSWORD', 'wppasswd');
/** MySQL 호스트 */
           define('DB_HOST', '172.18.105.110'); 로컬 연결의 경우 loaclhost 또는 127.0.0.1
테스트:www1.stu05.com/wordpress 압력 테스트 ab-n 1000-c 100http://www2.stu05.com/wordpress/index.php- c 시뮬레이션의 병발수 - n 시뮬레이션의 총 요청수
로컬 테스트에서 대역폭을 고려하지 않았기 때문에 서버가 대역폭을 채우지 못했을 수도 있습니다.
Requests per second: 8.85 [#/sec](mean) 초당 처리 요청 수
9. 두 번째 가상 호스트에서 phpMyAdmin 실행
준비: cp phpMyAdmin-4.4.14.1-all-languages.zip/web/vhosts/www1/
unzip phpMyAdmin-4.4.14.1-all-languages.zip
ln -sv phpMyAdmin-4.4.14.1-all-languages pma 참고: 롤백 용이
데이터베이스에 연결된 후 권한을 부여받은 원격 링크를 미리 준비한 사용자가 필요합니다.
(1) mysql을 실행하거나 로컬 루트에 암호가 설정되어 있으면 mysql-uroot -pxwj4611
  (2)GRANT ALL ON wpdb.* TO myuser@'172.18.%.%' IDENTIFIED BY 'myuser'   
1、cp config.sample.inc.php  config.inc.php  
2、openssl ran -base64 15
3、vim   config.inc.php  
  $cfg['blowfish_secret'] = '46aJFLiLxmqO0qrdGqwx';/* YOU MUST FILL IN THIS FOR COOKIE AUTH! */-------랜덤으로 안에 붙여주세요.
  $cfg['Servers'][$i]['host'] = '172.18.250.157'; 데이터베이스를 가리키는 호스트에 원격 연결
테스트:www1.stu05.com/pma  
압력 테스트 ab-n 1000-c100http://www1.stu05.com/pma/index.php- c 시뮬레이션의 병발수 - n 시뮬레이션의 총 요청수
  
10, 172.18.253.26 호스트에 xcache 설치 컴파일
     # yum install php-devel
     # cd  xcache-3.2.0
     # phpize
     # ./configure --enable-xcache  --with-php-config=/usr/bin/php-config
     # make && make install
     # cp  xcache.ini  /etc/php.d/
systemctl restart php-fpm 다시 시작
11. phpMyAdmin에 https 가상 호스트를 제공한다.
       DirectoryIndex index.php
   
                ServerName www1.stu05.com
                DocumentRoot  "/web/vhosts/www1/myadmin"
                ProxyRequests Off
                ProxyPassMatch  ^/(.*\.php)$  fcgi://172.18.105.110:9000/web/vhosts/www1/myadmin/$1
SSLEngine on ssL 엔진 켜기
          SSLCertificateFile/etc/httpd/ssl/httpd.crt--------------인증서 위치
          SSLCertificateKeyFile/etc/httpd/ssl/httpd.key------------- 공개 키 위치
               
                     AllowOverride None
Options FollowSymLinks ------- 링크된 파일의 원본 파일에 액세스할 수 있음
                        Require all granted
               
           
다음 환경이 끝났어!

좋은 웹페이지 즐겨찾기